Skip to main content

Crate object_rainbow

Crate object_rainbow 

Source

Re-exports§

pub use self::enumkind::Enum;

Modules§

enumkind
hashed
incr_byte_niche
length_prefixed
numeric
partial_byte_tag
zero_terminated

Macros§

anyhow
Construct an ad-hoc error from a string or existing non-anyhow error value.
assert_impl
error_consistency
Construct Error::Consistency.
error_fetch
Construct Error::Fetch.
error_operation
Construct Error::Operation.
error_parse
Construct Error::Parse.

Structs§

Address
Address within a PointInput.
Hash
Valid [Hash]. Has restrictions on its byte layout (e.g. cannot be all zeroes);
InlineExtra
Parses Extra, then provides it to T’s parser.
Input
NicheForUnsized
Special Niche to force use of a tag without any padding.
NoNiche
[MaybeNiche] asserting that V is a fake niche.
ObjectHashes
ObjectMarker
OneNiche
Niche filled with 0xFF bytes.
OptionalHash
Option<Hash> but more explicitly represented as [u8; HASH_SIZE].
ReflessInput
SomeNiche
[MaybeNiche] asserting that T is a true niche.
Tags
ZeroNiche
Niche filled with 0x00 bytes.
ZeroNoNiche
Already occupied/unusable byte representation filled with 0x00 bytes.

Enums§

Error
Errors encountered during fetching an object. Mostly related to parsing.

Constants§

HASH_SIZE
SHA-256 hash size in bytes.

Traits§

AsAny
Trait for contextually using Any. Can itself be implemented for non-'static and ?Sized types, and is dyn-compatible.
Equivalent
Implemented if both types have the exact same layout. This implies having the same MaybeHasNiche::MnArray.
ExtraFor
This Extra can be used to parse T via ParseSliceExtra::parse_slice_extra.
Fetch
FetchBytes
FullHash
Inline
InlineOutput
Marker trait indicating that ToOutput result cannot be extended (no value, when represented as a Vec<u8>, may be a prefix of another value).
ListHashes
MaybeHasNiche
This might contain a valid Niche.
Niche
True or fake (placeholder) niche.
Object
Output
Parse
This can be parsed by consuming the whole rest of the input.
ParseInline
This can be parsed from an input, after which we can correctly parse something else.
ParseInput
ParseSlice
ParseSliceExtra
ParseSliceRefless
PointInput
PointVisitor
RainbowIterator
ReflessInline
ReflessObject
Resolve
Something that can resolve Addresses to ByteNodes.
Singular
SingularFetch
Size
SizeExt
Tagged
ToOutput
Values of this type can be uniquely represented as a Vec<u8>.
Topological
Topology
Traversible

Type Aliases§

ByteNode
Returned by Resolve and FetchBytes. Represents traversal through the object graph.
FailFuture
Fallible future type yielding either T or Error.
Node
Result
Default output for fallible functions.
TopoVec

Derive Macros§

Enum
InlineOutput
ListHashes
MaybeHasNiche
Parse
ParseAsInline
ParseInline
Size
Tagged
ToOutput
Topological