Skip to main content

Crate object_rainbow

Crate object_rainbow 

Source

Re-exports§

pub use self::enumkind::Enum;

Modules§

enumkind
hashed
incr_byte_niche
inline_extra
length_prefixed
map_extra
numeric
object_marker
parse_extra
partial_byte_tag
tuple_extra
without_header
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.
DiffHashes
Hash
Valid [Hash]. Has restrictions on its byte layout (e.g. cannot be all zeroes);
Input
Mangled
NicheForUnsized
Special Niche to force use of a tag without any padding.
NoNiche
[MaybeNiche] asserting that V is a fake niche.
ObjectHashes
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.
DefaultHash
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

Attribute Macros§

derive_for_wrapped

Derive Macros§

Enum
InlineOutput
ListHashes
MaybeHasNiche
Parse
ParseAsInline
ParseInline
Size
Tagged
ToOutput
Topological