jmattheis / goverter

Generate type-safe Go converters by simply defining an interface
https://goverter.jmattheis.de/
MIT License
496 stars 46 forks source link

It is possible to extend with goverter interface as a whole? #159

Closed pavetok closed 3 weeks ago

pavetok commented 3 weeks ago

Have you read the project documentation?

Describe your question I have multiple converters in different packages. How can I reuse them?

Source code

package foo

type Input1 struct {}
type Output1 struct {}

// goverter:converter
type Converter interface {
    Convert(Input1) Output1
}
package bar

type Input2 struct {
    Name foo.Input1
}
type Output2 struct {
    Name foo.Output1
}

// goverter:converter
// goverter:extend foo:Converter
type Converter interface {
    Convert(Input2) Output2
}
jmattheis commented 3 weeks ago

When using https://goverter.jmattheis.de/guide/format#variables-to-assign-variable you could goverter:extend all variables from the other converter via regex e.g. goverter:extend otherpackage:.*. But otherwise this is not easily possible.

pavetok commented 3 weeks ago

It works! Thanks for the great tool!