|
package grammars |
|
|
|
type GrammarOption struct { |
|
PropOrder string |
|
Prefix string |
|
MaybeArray bool |
|
DisableParallelNewLines bool |
|
MaybeString bool |
|
NoMixedFreeString bool |
|
ExpectStringsAfterJSON bool |
|
|
|
FunctionName string |
|
SchemaType SchemaConverterType |
|
} |
|
|
|
func (o *GrammarOption) Apply(options ...func(*GrammarOption)) { |
|
for _, l := range options { |
|
l(o) |
|
} |
|
} |
|
|
|
var EnableMaybeArray = func(o *GrammarOption) { |
|
o.MaybeArray = true |
|
} |
|
|
|
var DisableParallelNewLines = func(o *GrammarOption) { |
|
o.DisableParallelNewLines = true |
|
} |
|
|
|
var EnableMaybeString = func(o *GrammarOption) { |
|
o.MaybeString = true |
|
} |
|
|
|
var NoMixedFreeString func(*GrammarOption) = func(o *GrammarOption) { |
|
o.NoMixedFreeString = true |
|
} |
|
|
|
|
|
var ExpectStringsAfterJSON func(*GrammarOption) = func(o *GrammarOption) { |
|
o.ExpectStringsAfterJSON = true |
|
} |
|
|
|
func SetPrefix(suffix string) func(*GrammarOption) { |
|
return func(o *GrammarOption) { |
|
o.Prefix = suffix |
|
} |
|
} |
|
|
|
func SetPropOrder(order string) func(*GrammarOption) { |
|
return func(o *GrammarOption) { |
|
o.PropOrder = order |
|
} |
|
} |
|
|
|
func WithSchemaType(schemaType SchemaConverterType) func(*GrammarOption) { |
|
return func(o *GrammarOption) { |
|
o.SchemaType = schemaType |
|
} |
|
} |
|
|
|
func WithFunctionName(name string) func(*GrammarOption) { |
|
return func(o *GrammarOption) { |
|
o.FunctionName = name |
|
} |
|
} |
|
|