Documentation
¶
Overview ¶
Package encoding provides safe, atomic utility methods for encoding/saving to disk and loading from disk/decoding of data in common formats.
Index ¶
- Constants
- func DecodeBase62(value string) ([]byte, error)
- func EncodeBase62(value []byte) string
- func LoadAndUnmarshal(path string, unmarshal func([]byte) error) error
- func LoadAndUnmarshalProtobuf(path string, message proto.Message) error
- func LoadAndUnmarshalTOML(path string, value interface{}) error
- func LoadAndUnmarshalYAML(path string, value interface{}) error
- func MarshalAndSave(path string, marshal func() ([]byte, error)) error
- func MarshalAndSaveProtobuf(path string, message proto.Message) error
- type ProtobufDecoder
- type ProtobufEncoder
Constants ¶
const (
// Base62Alphabet is the alphabet used for Base62 encoding.
Base62Alphabet = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
)
Variables ¶
This section is empty.
Functions ¶
func DecodeBase62 ¶ added in v0.10.2
DecodeBase62 performs Base62 decoding.
func EncodeBase62 ¶ added in v0.10.2
EncodeBase62 performs Base62 encoding.
func LoadAndUnmarshal ¶ added in v0.10.0
LoadAndUnmarshal provides the underlying loading and unmarshaling functionality for the encoding package. It reads the data at the specified path and then invokes the specified unmarshaling callback (usually a closure) to decode the data.
func LoadAndUnmarshalProtobuf ¶
LoadAndUnmarshalProtobuf loads data from the specified path and decodes it into the specified Protocol Buffers message.
func LoadAndUnmarshalTOML ¶
LoadAndUnmarshalTOML loads data from the specified path and decodes it into the specified structure.
func LoadAndUnmarshalYAML ¶ added in v0.10.0
LoadAndUnmarshalYAML loads data from the specified path and decodes it into the specified structure.
func MarshalAndSave ¶ added in v0.10.0
MarshalAndSave provide the underlying marshaling and saving functionality for the encoding package. It invokes the specified marshaling callback (usually a closure) and writes the result atomically to the specified path. The data is saved with read/write permissions for the user only.
Types ¶
type ProtobufDecoder ¶ added in v0.10.0
type ProtobufDecoder struct {
// contains filtered or unexported fields
}
ProtobufDecoder is a stream decoder for Protocol Buffers messages. For performance reasons, this type wraps the underlying stream in a buffering reader, which means that the decoder should persist for the lifetime of the stream (since there's no way to know how much data has been read from the stream).
func NewProtobufDecoder ¶ added in v0.10.0
func NewProtobufDecoder(reader io.Reader) *ProtobufDecoder
NewProtobufDecoder creates a new Protocol Buffers stream decoder.
type ProtobufEncoder ¶ added in v0.10.0
type ProtobufEncoder struct {
// contains filtered or unexported fields
}
ProtobufEncoder is a stream encoder for Protocol Buffers messages.
func NewProtobufEncoder ¶ added in v0.10.0
func NewProtobufEncoder(writer io.Writer) *ProtobufEncoder
NewProtobufEncoder creates a new Protocol Buffers stream encoder.
func (*ProtobufEncoder) Encode ¶ added in v0.10.0
func (e *ProtobufEncoder) Encode(message proto.Message) error
Encode encodes a length-prefixed Protocol Buffers message into the encoder's internal buffer and writes this data to the underlying stream.
func (*ProtobufEncoder) EncodeWithoutFlush ¶ added in v0.10.0
func (e *ProtobufEncoder) EncodeWithoutFlush(message proto.Message) error
EncodeWithoutFlush encodes a length-prefixed Protocol Buffers message into the encoder's internal buffer, but does not write this data to the underlying stream.
func (*ProtobufEncoder) Flush ¶ added in v0.10.0
func (e *ProtobufEncoder) Flush() error
Flush writes the contents of the encoder's internal buffer, if any, to the underlying stream.