meta/interface.go

84 lines
1.8 KiB
Go

package meta
type Reader interface {
ReadInt8(v *int8, field string) error
ReadInt16(v *int16, field string) error
ReadInt32(v *int32, field string) error
ReadInt64(v *int64, field string) error
ReadUint8(v *uint8, field string) error
ReadUint16(v *uint16, field string) error
ReadUint32(v *uint32, field string) error
ReadUint64(v *uint64, field string) error
ReadBool(v *bool, field string) error
ReadFloat32(v *float32, field string) error
ReadFloat64(v *float64, field string) error
ReadString(v *string, field string) error
ReadBytes(v *[]byte, field string) error
BeginContainer(field string) error
EndContainer() error
ContainerSize() (int, error)
IsContainerAssoc() (bool, error)
Skip() error
TryReadMask() (bool, FieldsMask, error)
}
type Writer interface {
WriteInt8(v int8, field string) error
WriteInt16(v int16, field string) error
WriteInt32(v int32, field string) error
WriteInt64(v int64, field string) error
WriteUint8(v uint8, field string) error
WriteUint16(v uint16, field string) error
WriteUint32(v uint32, field string) error
WriteUint64(v uint64, field string) error
WriteBool(v bool, field string) error
WriteFloat32(v float32, field string) error
WriteFloat64(v float64, field string) error
WriteString(v string, field string) error
WriteBytes(v []byte, field string) error
BeginContainer(length int, field string) error
BeginAssocContainer(length int, field string) error
EndContainer() error
}
type Class interface {
ClassId() uint32
ClassName() string
}
type Readable interface {
Reset()
Read(Reader) error
ReadFields(Reader) error
}
type Writable interface {
Write(Writer) error
WriteFields(Writer) error
}
type Struct interface {
Class
Readable
Writable
}
type Bitmasked interface {
FieldChanged(index uint64) bool
SetFieldChanged(index uint64)
HasChangedFields() bool
FieldsMask() FieldsMask
}