Skip to content

Setting: arg

arg:context:regex REGEX

arg:context:regex REGEX can be defined as CLI argument, conversion comment or method comment. This setting is inheritable. Default unset.

arg:context:regex allows you define a regex that automatically defines arguments as context if the name matches.

go
package example

import "time"

// goverter:converter
// goverter:arg:context:regex .+Format
// goverter:extend FormatTime
type Converter interface {
	Convert(source map[string]Input, dateFormat string) map[string]Output
}

func FormatTime(t time.Time, dateFormat string) string {
	return t.Format(dateFormat)
}

type Input struct {
	Name      string
	CreatedAt time.Time
}
type Output struct {
	Name      string
	CreatedAt string
}
go
// Code generated by github.com/jmattheis/goverter, DO NOT EDIT.
//go:build !goverter

package generated

import regex "github.com/jmattheis/goverter/example/context/regex"

type ConverterImpl struct{}

func (c *ConverterImpl) Convert(source map[string]regex.Input, context string) map[string]regex.Output {
	var mapStringExampleOutput map[string]regex.Output
	if source != nil {
		mapStringExampleOutput = make(map[string]regex.Output, len(source))
		for key, value := range source {
			mapStringExampleOutput[key] = c.exampleInputToExampleOutput(value, context)
		}
	}
	return mapStringExampleOutput
}
func (c *ConverterImpl) exampleInputToExampleOutput(source regex.Input, context string) regex.Output {
	var exampleOutput regex.Output
	exampleOutput.Name = source.Name
	exampleOutput.CreatedAt = regex.FormatTime(source.CreatedAt, context)
	return exampleOutput
}