A nested decode buffer that owns its data.
Reexport needed by derive.
Trait that allows zero-copy read of value-references from slices in LE format.
Trait that allows deserializing objects from a buffer.
Trait that allows zero-copy write of value-references to slices in LE format.
Most types will be encoded without any possibility of error. The trait is used to provide these implementations. This is currently not a substitute for implementing a proper TopEncode.
Trait that allows appending bytes. Used especially by the NestedEncode trait to output data.
Trait that allows zero-copy read of values from an underlying API in big endian format.
Trait that abstracts away an underlying API for a top-level object deserializer. The underlying API can provide pre-parsed i64/u64 or pre-bundled boxed slices.
Specifies objects that can receive the result of a TopEncode computation. in principle from NestedEncode performed on nested items.
Use to transfer objects from one generic type to another, without the compiler being able to determine whether or not the two types are the same. The cast is statically dispatched.
Handles both signed and unsigned of any length. No generics here, because we want the executable binary as small as possible
Convenience method, to avoid having to specify type when calling
Especially useful in the macros.
Also checks that the entire slice was used.
The input doesn’t need to be mutable because we are not changing the underlying data.
Convenience function for getting an object nested-encoded to a Vec
Top-decodes the result using the NestedDecode implementation.
Top-decodes the result using the NestedDecode implementation. Uses the fast-exit mechanism in case of error.
Quick encoding of a type that never fails on encoding.
Adds number to output buffer. No argument generics here, because we want the executable binary as small as possible. Smaller types need to be converted to u64 before using this function. TODO: there might be a quicker version of this using transmute + reverse bytes.