Skip to main content

Object

Trait Object 

Source
pub trait Object: Sized {
    const TYPE: ObjectType;

    // Required methods
    fn encode_body(&self) -> Result<Vec<u8>>;
    fn decode_body(bytes: &[u8]) -> Result<Self>;

    // Provided method
    fn id(&self) -> Result<Hash> { ... }
}
Expand description

A storable, content-addressed object.

Required Associated Constants§

Source

const TYPE: ObjectType

This object’s wire type.

Required Methods§

Source

fn encode_body(&self) -> Result<Vec<u8>>

Canonical byte encoding that is hashed and (after compression) stored.

Source

fn decode_body(bytes: &[u8]) -> Result<Self>

Reconstruct an object from its canonical body bytes.

Provided Methods§

Source

fn id(&self) -> Result<Hash>

Content address of this object: BLAKE3(encode_body()).

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§

Source§

impl Object for Blob

Source§

const TYPE: ObjectType = ObjectType::Blob

Source§

impl Object for Tree

Source§

const TYPE: ObjectType = ObjectType::Tree