enumer/gqlgen.go

27 lines
640 B
Go

package main
// Arguments to format are:
// [1]: type name
const gqlgenMethods = `
// MarshalGQL implements the graphql.Marshaler interface for %[1]s
func (i %[1]s) MarshalGQL(w io.Writer) {
fmt.Fprint(w, strconv.Quote(i.String()))
}
// UnmarshalGQL implements the graphql.Unmarshaler interface for %[1]s
func (i *%[1]s) UnmarshalGQL(value interface{}) error {
str, ok := value.(string)
if !ok {
return fmt.Errorf("%[1]s should be a string, got %%T", value)
}
var err error
*i, err = %[1]sString(str)
return err
}
`
func (g *Generator) buildGQLGenMethods(runs [][]Value, typeName string) {
g.Printf(gqlgenMethods, typeName)
}