serialization

package
v0.0.0-...-55c251c Latest Latest
Warning

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

Go to latest
Published: May 24, 2022 License: MIT Imports: 8 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func IsArrayMeta

func IsArrayMeta(meta FabricSerializationType) bool

func IsBaseMeta

func IsBaseMeta(meta, base FabricSerializationType) bool

func IsEmptyMeta

func IsEmptyMeta(meta FabricSerializationType) bool

func Marshal

func Marshal(v interface{}) ([]byte, error)

func Unmarshal

func Unmarshal(data []byte, v interface{}) error

Types

type CustomMarshaler

type CustomMarshaler interface {
	Marshal(Encoder) error
	Unmarshal(FabricSerializationType, Decoder) error
}

type Decoder

type Decoder interface {
	ReadTypeMeta() (FabricSerializationType, error)
	ReadBinary(interface{}) error
	ReadCompressedUInt32() (uint32, error)
}

type Encoder

type Encoder interface {
	WriteTypeMeta(FabricSerializationType) error
	WriteBinary(interface{}) error
	WriteCompressedUInt32(uint32) error
}

type FabricSerializationType

type FabricSerializationType uint8
const (
	FabricSerializationTypeEmptyValueBit FabricSerializationType = 0x40 // 0b0100 0000 - This bit set means the value is empty
	FabricSerializationTypeArray         FabricSerializationType = 0x80 // 0b1000 0000 - This bit set indicates an array
	FabricSerializationTypeBaseTypeMask  FabricSerializationType = 0x0F // 0b0000 1111
	FabricSerializationTypeBoolFalseFlag FabricSerializationType = 0x30 // 0b0011 0000

	FabricSerializationTypeObject  FabricSerializationType = 0x00
	FabricSerializationTypePointer FabricSerializationType = 0x01

	FabricSerializationTypeBool      FabricSerializationType = 0x02
	FabricSerializationTypeBoolTrue  FabricSerializationType = FabricSerializationTypeBool
	FabricSerializationTypeBoolFalse FabricSerializationType = FabricSerializationTypeBool | FabricSerializationTypeBoolFalseFlag

	FabricSerializationTypeChar  FabricSerializationType = 0x03
	FabricSerializationTypeUChar FabricSerializationType = 0x04

	FabricSerializationTypeShort  FabricSerializationType = 0x05
	FabricSerializationTypeUShort FabricSerializationType = 0x06
	FabricSerializationTypeInt32  FabricSerializationType = 0x07
	FabricSerializationTypeUInt32 FabricSerializationType = 0x08
	FabricSerializationTypeInt64  FabricSerializationType = 0x09
	FabricSerializationTypeUInt64 FabricSerializationType = 0x0A

	FabricSerializationTypeDouble FabricSerializationType = 0x0B
	FabricSerializationTypeGuid   FabricSerializationType = 0x0C

	FabricSerializationTypeWString FabricSerializationType = 0x0D

	FabricSerializationTypeByteArrayNoCopy FabricSerializationType = 0x0E | FabricSerializationTypeArray

	FabricSerializationTypeScopeBegin FabricSerializationType = 0x1F
	FabricSerializationTypeScopeEnd   FabricSerializationType = 0x2F
	FabricSerializationTypeObjectEnd  FabricSerializationType = 0x3F

	FabricSerializationTypeNotAMeta FabricSerializationType = 0xFF
)

func (FabricSerializationType) String

func (i FabricSerializationType) String() string

type GUID

type GUID struct {
	Data1 uint32
	Data2 uint16
	Data3 uint16
	Data4 [8]byte
}

func GUIDFromString

func GUIDFromString(s string) (GUID, error)

https://github.com/microsoft/go-winio/blob/3fe4fa31662f6ede2353d913e93907b8e096e0b6/pkg/guid/guid.go#L56 FromString parses a string containing a GUID and returns the GUID. The only format currently supported is the `xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx` format.

func MustNewGuidV4

func MustNewGuidV4() GUID

func NewGuidV4

func NewGuidV4() (GUID, error)

https://github.com/microsoft/go-winio/blob/3fe4fa31662f/pkg/guid/guid.go NewGuidV4 returns a new version 4 (pseudorandom) GUID, as defined by RFC 4122.

func (GUID) IsEmpty

func (g GUID) IsEmpty() bool

func (*GUID) Marshal

func (g *GUID) Marshal(s Encoder) error

func (GUID) String

func (g GUID) String() string

func (*GUID) Unmarshal

func (g *GUID) Unmarshal(meta FabricSerializationType, s Decoder) error

Jump to

Keyboard shortcuts

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