Skip to main content

ObjectSource

Trait ObjectSource 

Source
pub trait ObjectSource {
    // Required methods
    fn get_tree(&self, hash: &ContentHash) -> Result<Option<Tree>, HeddleError>;
    fn get_state(&self, id: &StateId) -> Result<Option<State>, HeddleError>;
    fn get_blob(&self, hash: &ContentHash) -> Result<Option<Blob>, HeddleError>;

    // Provided methods
    fn decoded_blob_len(
        &self,
        hash: &ContentHash,
    ) -> Result<Option<u64>, HeddleError> { ... }
    fn get_blob_bytes(
        &self,
        hash: &ContentHash,
    ) -> Result<Option<Bytes>, HeddleError> { ... }
}
Expand description

Read-only object access needed by object graph walkers.

Required Methods§

Provided Methods§

Source

fn decoded_blob_len( &self, hash: &ContentHash, ) -> Result<Option<u64>, HeddleError>

Uncompressed byte length without requiring content.

The default falls back to Self::get_blob. Stores that can answer from a header or index should override this so blame can reject an oversized blob before materializing it.

Source

fn get_blob_bytes( &self, hash: &ContentHash, ) -> Result<Option<Bytes>, HeddleError>

Zero-copy variant of get_blob.

Dyn Compatibility§

This trait is dyn compatible.

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

Implementors§