Module fuel_core_storage::codec
source · Expand description
The module contains the traits for encoding and decoding the types(a.k.a Codec). It implements common codecs and encoders, but it is always possible to define own codecs.
Modules§
- The module contains the implementation of the
Manual
codec. The codec allows the definition of manual implementation for specific types that don’t follow any patterns from other codecs. Anyone can implement a codec like that, and it’s more of an example of how it can be done for foreign types. - The module contains the implementation of the
Postcard
codec. Any type that implementsserde::Serialize
andserde::Deserialize
can use thePostcard
codec to be encoded/decoded into/from bytes. Theserde
serialization and deserialization add their own overhead, so this codec shouldn’t be used for simple types. - The module contains the implementation of the
Postcard
codec. The codec is used for types that can be represented by an array. It includes all primitive types and types that are arrays inside or could be represented by arrays. - The module contains the implementation of the
Raw
codec. The codec is used for types that are already represented by bytes and can be deserialized into bytes-based objects.
Traits§
- The trait decodes the type from the bytes.
- The trait encodes the type to the bytes and passes it to the
Encoder
, which stores it and provides a reference to it. That allows gives more flexibility and more performant encoding, allowing the use of slices and arrays instead of vectors in some cases. Since theEncoder
returnsCow<[u8]>
, it is always possible to take ownership of the serialized value. - The trait is usually implemented by the encoder that stores serialized objects.