Documentation
¶
Overview ¶
Package datas provides a collection of data marshaling and unmarshaling interfaces and functions. These interfaces and functions provide a flexible and extensible way to work with structured data in Go, whether it is being serialized to a byte slice, written to an IO stream, or both. In addition to these interfaces, this package also provides a number of useful functions for working with data in Go, including functions for encoding and decoding data using common serialization formats like JSON and XML.
Example ¶
package main import ( "fmt" "github.com/Prastiwar/Go-flow/datas" ) func main() { var serializer datas.Marshaler = datas.Json() type Data struct { Foo string `json:"foo"` } testData := Data{Foo: "success"} b, err := serializer.Marshal(testData) if err != nil { panic(err) } fmt.Println(string(b)) }
Output: {"foo":"success"}
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ByteFormatter ¶
type ByteFormatter interface { Marshaler Unmarshaler }
ByteFormatter is an interface that combines Marshaler and Unmarshaler into a single interface for working with byte slices.
type ByteIOFormatter ¶
type ByteIOFormatter interface { ByteFormatter IOFormatter }
ByteIOFormatter is an interface that combines ByteFormatter and IOFormatter into a single interface for working with both byte slices and IO streams.
func Json ¶
func Json() ByteIOFormatter
Json returns a ByteIOFormatter for encoding and decoding data in JSON format. The returned ByteIOFormatter is implemented using the encoding/json package from the Go standard library.
func Xml ¶
func Xml() ByteIOFormatter
Xml returns a ByteIOFormatter for encoding and decoding data in XML format. The returned ByteIOFormatter is implemented using the encoding/xml package from the Go standard library.
type IOFormatter ¶
type IOFormatter interface { WriterMarshaler ReaderUnmarshaler }
IOFormatter is an interface that combines WriterMarshaler and ReaderUnmarshaler into a single interface for working with IO streams.
type Marshaler ¶
type Marshaler interface { // Marshal returns a byte slice representation of the provided value. // An error is returned if the value cannot be marshaled. Marshal(v any) ([]byte, error) }
Marshaler is an interface for types that can marshal any value to a byte slice.
type MarshalerFunc ¶
WriterMarshalerFunc is a function type that can be used as a Marshaler.
type ReaderUnmarshaler ¶
type ReaderUnmarshaler interface { // UnmarshalFrom reads data from the given io.Reader and populates the given value with it. // An error is returned if the data cannot be unmarshaled, or if reading from the io.Reader fails. UnmarshalFrom(r io.Reader, v any) error }
ReaderUnmarshaler is an interface for types that can unmarshal data from an io.Reader into a value.
type ReaderUnmarshalerFunc ¶
ReaderUnmarshalerFunc is a function type that can be used as a ReaderUnmarshaler.
func (ReaderUnmarshalerFunc) UnmarshalFrom ¶
func (f ReaderUnmarshalerFunc) UnmarshalFrom(r io.Reader, v any) error
type Unmarshaler ¶
type Unmarshaler interface { // Unmarshal populates the given value with data from the byte slice. // An error is returned if the value cannot be unmarshaled. Unmarshal(data []byte, v any) error }
Unmarshaler is an interface for types that can unmarshal a byte slice to any value.
type UnmarshalerFunc ¶
UnmarshalerFunc is a function type that can be used as a Unmarshaler.
type WriterMarshaler ¶
type WriterMarshaler interface { // MarshalTo writes a byte slice representation of the provided value to the given io.Writer. // An error is returned if the value cannot be marshaled, or if writing to the io.Writer fails. MarshalTo(w io.Writer, v any) error }
WriterMarshaler is an interface for types that can marshal any value to an io.Writer.