format

package
v0.0.19 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 6, 2023 License: GPL-3.0 Imports: 8 Imported by: 31

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrFormatConversionMarshal   = errors.New("format conversion error")
	ErrFormatConversionUnmarshal = errors.New("format conversion error")
)
View Source
var (
	ErrGhastly = errors.New("ghastly")
	ErrHaunter = errors.New("haunter")
	ErrGengar  = errors.New("gengar")
	ErrBasic   = errors.New("error")
)

Functions

func Convert

func Convert[V1 any, V2 any](
	v V1,
	v1 Format[V1],
	v2 Format[V2],
) (V2, error)

assuming byte compatibility, i.e. bytes <-> proto, string <-> json

Types

type Base64Format

type Base64Format struct {
}

func (Base64Format) Default

func (helper Base64Format) Default() string

func (Base64Format) Marshal

func (helper Base64Format) Marshal(value string) ([]byte, error)

func (Base64Format) Unmarshal

func (helper Base64Format) Unmarshal(value []byte) (string, error)

type BytesFormat

type BytesFormat struct {
}

func (BytesFormat) Default

func (helper BytesFormat) Default() []byte

func (BytesFormat) Marshal

func (helper BytesFormat) Marshal(value []byte) ([]byte, error)

func (BytesFormat) Unmarshal

func (helper BytesFormat) Unmarshal(value []byte) ([]byte, error)

type Format

type Format[T any] interface {
	Default() T
	Marshal(T) ([]byte, error)
	Unmarshal([]byte) (T, error)
}

bytes format

func Base64

func Base64() Format[string]

func Bytes

func Bytes() Format[[]byte]

func Gengar added in v0.0.12

func Gengar() Format[string]

func Json

func Json[T any]() Format[T]

func Protobuf

func Protobuf[T proto.Message]() Format[T]

func Protojson added in v0.0.12

func Protojson[T proto.Message]() Format[T]

func String

func String() Format[string]

func Yaml

func Yaml[T any]() Format[T]

type GengarFormat added in v0.0.12

type GengarFormat struct {
}

because gengar likes to play pranks. for unit testing broken format results

func (GengarFormat) Default added in v0.0.12

func (helper GengarFormat) Default() string

func (GengarFormat) Marshal added in v0.0.12

func (helper GengarFormat) Marshal(value string) ([]byte, error)

func (GengarFormat) Unmarshal added in v0.0.12

func (helper GengarFormat) Unmarshal(value []byte) (string, error)

type JsonFormat

type JsonFormat[T any] struct{}

func (JsonFormat[T]) Default

func (helper JsonFormat[T]) Default() T

func (JsonFormat[T]) Marshal

func (helper JsonFormat[T]) Marshal(value T) ([]byte, error)

func (JsonFormat[T]) Unmarshal

func (helper JsonFormat[T]) Unmarshal(value []byte) (T, error)

type ProtobufFormat

type ProtobufFormat[T proto.Message] struct{}

func (ProtobufFormat[T]) Default

func (helper ProtobufFormat[T]) Default() T

func (ProtobufFormat[T]) Marshal

func (helper ProtobufFormat[T]) Marshal(value T) ([]byte, error)

func (ProtobufFormat[T]) Unmarshal

func (helper ProtobufFormat[T]) Unmarshal(value []byte) (T, error)

type ProtojsonFormat added in v0.0.12

type ProtojsonFormat[T proto.Message] struct{}

func (ProtojsonFormat[T]) Default added in v0.0.12

func (helper ProtojsonFormat[T]) Default() T

func (ProtojsonFormat[T]) Marshal added in v0.0.12

func (helper ProtojsonFormat[T]) Marshal(value T) ([]byte, error)

func (ProtojsonFormat[T]) Unmarshal added in v0.0.12

func (helper ProtojsonFormat[T]) Unmarshal(value []byte) (T, error)

type StringFormat

type StringFormat struct {
}

func (StringFormat) Default

func (helper StringFormat) Default() string

func (StringFormat) Marshal

func (helper StringFormat) Marshal(value string) ([]byte, error)

func (StringFormat) Unmarshal

func (helper StringFormat) Unmarshal(value []byte) (string, error)

type YamlFormat

type YamlFormat[T any] struct{}

func (YamlFormat[T]) Default

func (helper YamlFormat[T]) Default() T

func (YamlFormat[T]) Marshal

func (helper YamlFormat[T]) Marshal(value T) ([]byte, error)

func (YamlFormat[T]) Unmarshal

func (helper YamlFormat[T]) Unmarshal(value []byte) (T, error)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL