Documentation
¶
Overview ¶
Example ¶
type Person struct {
FirstName string `json:"firstName"`
LastName string `json:"lastName"`
Age int `json:"age"`
}
decoder := NewJSONWriterDecoder[Person]("Person", func(p *Person) error {
if p.FirstName == "" {
return ErrFailedCheck
}
return nil
})
samplePerson := &Person{FirstName: "Tony", LastName: "Stark", Age: 53}
buf := new(bytes.Buffer)
_ = json.NewEncoder(buf).Encode(samplePerson)
_, _ = decoder.ReadFrom(buf)
p, err := decoder.Decode()
if err != nil {
panic(err)
}
decodedPerson, ok := p.(*Person)
if !ok {
panic("invalid type")
}
fmt.Printf("%s %s %d", decodedPerson.FirstName, decodedPerson.LastName, decodedPerson.Age)
Output: Tony Stark 53
Index ¶
Examples ¶
Constants ¶
View Source
const GenericFileType string = "Generic"
Variables ¶
View Source
var ErrEncoding = errors.New("encoding error")
View Source
var ErrFailedCheck = errors.New("object field check failed")
View Source
var ErrIO = errors.New("input/output error")
Functions ¶
This section is empty.
Types ¶
type AsyncDecoder ¶
func NewAsyncDecoder ¶
func NewAsyncDecoder(decs ...WriterDecoder) *AsyncDecoder
func (*AsyncDecoder) Decode ¶
func (d *AsyncDecoder) Decode() (any, error)
func (*AsyncDecoder) DecodeFrom ¶
func (d *AsyncDecoder) DecodeFrom(r io.Reader) (any, error)
func (*AsyncDecoder) FileType ¶
func (d *AsyncDecoder) FileType() string
FileType MUST be run after Decode to get the filetype, otherwise it will return '?'
func (*AsyncDecoder) WithDecoders ¶
func (d *AsyncDecoder) WithDecoders(decs ...WriterDecoder) *AsyncDecoder
type JSONWriterDecoder ¶
func NewJSONWriterDecoder ¶
func NewJSONWriterDecoder[T any](fileType string, check func(*T) error) *JSONWriterDecoder[T]
func (*JSONWriterDecoder[T]) Decode ¶
func (d *JSONWriterDecoder[T]) Decode() (any, error)
func (*JSONWriterDecoder[T]) DecodeFrom ¶
func (d *JSONWriterDecoder[T]) DecodeFrom(r io.Reader) (any, error)
func (*JSONWriterDecoder[T]) FileType ¶
func (d *JSONWriterDecoder[T]) FileType() string
type WriterDecoder ¶
type YAMLWriterDecoder ¶
func NewYAMLWriterDecoder ¶
func NewYAMLWriterDecoder[T any](fileType string, check func(*T) error) *YAMLWriterDecoder[T]
func (*YAMLWriterDecoder[T]) Decode ¶
func (d *YAMLWriterDecoder[T]) Decode() (any, error)
func (*YAMLWriterDecoder[T]) DecodeFrom ¶
func (d *YAMLWriterDecoder[T]) DecodeFrom(r io.Reader) (any, error)
func (*YAMLWriterDecoder[T]) FileType ¶
func (d *YAMLWriterDecoder[T]) FileType() string
Click to show internal directories.
Click to hide internal directories.