package scale
import "github.com/centrifuge/go-substrate-rpc-client/v4/scale"
Index ¶
- func Reverse(b []byte)
- func ToKeyedVec(value interface{}, prependKey []byte) ([]byte, error)
- type Decodeable
- type Decoder
- func NewDecoder(reader io.Reader) *Decoder
- func (pd Decoder) Decode(target interface{}) error
- func (pd Decoder) DecodeIntoReflectValue(target reflect.Value) error
- func (pd Decoder) DecodeOption(hasValue *bool, valuePointer interface{}) error
- func (pd Decoder) DecodeUintCompact() (*big.Int, error)
- func (pd Decoder) Read(bytes []byte) error
- func (pd Decoder) ReadOneByte() (byte, error)
- type Encodeable
- type Encoder
- func NewEncoder(writer io.Writer) *Encoder
- func (pe Encoder) Encode(value interface{}) error
- func (pe Encoder) EncodeOption(hasValue bool, value interface{}) error
- func (pe Encoder) EncodeUintCompact(v big.Int) error
- func (pe Encoder) PushByte(b byte) error
- func (pe Encoder) Write(bytes []byte) error
- type OptionBool
Functions ¶
func Reverse ¶
func Reverse(b []byte)
Reverse reverses bytes in place (manipulates the underlying array)
func ToKeyedVec ¶
ToKeyedVec replicates the behaviour of Rust's to_keyed_vec helper.
Types ¶
type Decodeable ¶
type Decodeable interface { // ParityDecode populates this structure from a stream (overwriting the current contents), return false on failure Decode(decoder Decoder) error }
Decodeable is an interface that defines a custom encoding rules for a data type. Should be defined for pointers to structs. See OptionBool for an example implementation.
type Decoder ¶
type Decoder struct {
// contains filtered or unexported fields
}
Decoder is a wraper around a Reader that allows decoding data items from a stream.
func NewDecoder ¶
func (Decoder) Decode ¶
Decode takes a pointer to a decodable value and populates it from the stream.
func (Decoder) DecodeIntoReflectValue ¶
DecodeIntoReflectValue populates a writable reflect.Value from the stream
func (Decoder) DecodeOption ¶
DecodeOption decodes a optionally available value into a boolean presence field and a value.
func (Decoder) DecodeUintCompact ¶
DecodeUintCompact decodes a compact-encoded integer. See EncodeUintCompact method.
func (Decoder) Read ¶
Read reads bytes from a stream into a buffer
func (Decoder) ReadOneByte ¶
ReadOneByte reads a next byte from the stream. Named so to avoid a linter warning about a clash with io.ByteReader.ReadByte
type Encodeable ¶
type Encodeable interface { // ParityEncode encodes and write this structure into a stream Encode(encoder Encoder) error }
Encodeable is an interface that defines a custom encoding rules for a data type. Should be defined for structs (not pointers to them). See OptionBool for an example implementation.
type Encoder ¶
type Encoder struct {
// contains filtered or unexported fields
}
Encoder is a wrapper around a Writer that allows encoding data items to a stream. Allows passing encoding options
func NewEncoder ¶
func (Encoder) Encode ¶
Encode a value to the stream.
func (Encoder) EncodeOption ¶
EncodeOption stores optionally present value to the stream.
func (Encoder) EncodeUintCompact ¶
EncodeUintCompact writes an unsigned integer to the stream using the compact encoding. A typical usage is storing the length of a collection. Definition of compact encoding: 0b00 00 00 00 / 00 00 00 00 / 00 00 00 00 / 00 00 00 00
xx xx xx 00 (0 ... 2**6 - 1) (u8) yL yL yL 01 / yH yH yH yL (2**6 ... 2**14 - 1) (u8, u16) low LH high zL zL zL 10 / zM zM zM zL / zM zM zM zM / zH zH zH zM (2**14 ... 2**30 - 1) (u16, u32) low LMMH high nn nn nn 11 [ / zz zz zz zz ]{4 + n} (2**30 ... 2**536 - 1) (u32, u64, u128, U256, U512, U520) straight LE-encoded
Rust implementation: see impl<'a> Encode for CompactRef<'a, u64>
func (Encoder) PushByte ¶
PushByte writes a single byte to an encoder.
func (Encoder) Write ¶
Write several bytes to the encoder.
type OptionBool ¶
type OptionBool struct {
// contains filtered or unexported fields
}
OptionBool is a structure that can store a boolean or a missing value. Note that encoding rules are slightly different from other "Option" fields.
func NewOptionBool ¶
func NewOptionBool(value bool) OptionBool
NewOptionBool creates an OptionBool with a value.
func NewOptionBoolEmpty ¶
func NewOptionBoolEmpty() OptionBool
NewOptionBoolEmpty creates an OptionBool without a value.
func (*OptionBool) Decode ¶
func (o *OptionBool) Decode(decoder Decoder) error
ParityDecode implements decoding for OptionBool as per Rust implementation.
func (OptionBool) Encode ¶
func (o OptionBool) Encode(encoder Encoder) error
ParityEncode implements encoding for OptionBool as per Rust implementation.
Source Files ¶
- Version
- v4.2.1 (latest)
- Published
- Dec 5, 2023
- Platform
- linux/amd64
- Imports
- 9 packages
- Last checked
- 1 week ago –
Tools for package owners.