go-yaml/option.go

58 lines
1.4 KiB
Go
Raw Normal View History

package yaml
import "io"
2019-10-21 01:29:32 +09:00
// DecodeOption functional option type for Decoder
type DecodeOption func(d *Decoder) error
2019-10-21 01:29:32 +09:00
// ReferenceReaders pass to Decoder that reference to anchor defined by passed readers
func ReferenceReaders(readers ...io.Reader) DecodeOption {
return func(d *Decoder) error {
d.referenceReaders = append(d.referenceReaders, readers...)
return nil
}
}
2019-10-21 01:29:32 +09:00
// ReferenceFiles pass to Decoder that reference to anchor defined by passed files
func ReferenceFiles(files ...string) DecodeOption {
return func(d *Decoder) error {
d.referenceFiles = files
return nil
}
}
2019-10-21 01:29:32 +09:00
// ReferenceDirs pass to Decoder that reference to anchor defined by files under the passed dirs
func ReferenceDirs(dirs ...string) DecodeOption {
return func(d *Decoder) error {
d.referenceDirs = dirs
return nil
}
}
2019-10-21 01:29:32 +09:00
// RecursiveDir search yaml file recursively from passed dirs by ReferenceDirs option
func RecursiveDir(isRecursive bool) DecodeOption {
return func(d *Decoder) error {
d.isRecursiveDir = isRecursive
return nil
}
}
2019-10-19 18:28:36 +09:00
// Validator set StructValidator instance to Decoder
func Validator(v StructValidator) DecodeOption {
return func(d *Decoder) error {
d.validator = v
return nil
}
}
2019-10-21 01:29:32 +09:00
// EncodeOption functional option type for Encoder
2019-10-19 18:28:36 +09:00
type EncodeOption func(e *Encoder) error
2019-10-21 01:29:32 +09:00
// Indent change indent number
2019-10-19 18:28:36 +09:00
func Indent(spaces int) EncodeOption {
return func(e *Encoder) error {
e.indent = spaces
return nil
}
}