pub trait ReferenceExt: Sealed {
    // Required methods
    fn log_iter<'a, 's>(&'a self, store: &'s Store) -> Platform<'a, 's>;
    fn log_exists(&self, store: &Store) -> bool;
    fn peel_to_id_in_place(
        &mut self,
        store: &Store,
        find: &mut (dyn FnMut(ObjectId, &mut Vec<u8>) -> Result<Option<(Kind, &[u8])>, Box<dyn Error + Send + Sync>> + '_)
    ) -> Result<ObjectId, Error>;
    fn peel_to_id_in_place_packed(
        &mut self,
        store: &Store,
        find: &mut (dyn FnMut(ObjectId, &mut Vec<u8>) -> Result<Option<(Kind, &[u8])>, Box<dyn Error + Send + Sync>> + '_),
        packed: Option<&Buffer>
    ) -> Result<ObjectId, Error>;
    fn follow(&self, store: &Store) -> Option<Result<Reference, Error>>;
    fn follow_packed(
        &self,
        store: &Store,
        packed: Option<&Buffer>
    ) -> Option<Result<Reference, Error>>;
}
Expand description

A trait to extend Reference with functionality requiring a file::Store.

Required Methods§

source

fn log_iter<'a, 's>(&'a self, store: &'s Store) -> Platform<'a, 's>

A step towards obtaining forward or reverse iterators on reference logs.

source

fn log_exists(&self, store: &Store) -> bool

For details, see Reference::log_exists().

source

fn peel_to_id_in_place( &mut self, store: &Store, find: &mut (dyn FnMut(ObjectId, &mut Vec<u8>) -> Result<Option<(Kind, &[u8])>, Box<dyn Error + Send + Sync>> + '_) ) -> Result<ObjectId, Error>

source

fn peel_to_id_in_place_packed( &mut self, store: &Store, find: &mut (dyn FnMut(ObjectId, &mut Vec<u8>) -> Result<Option<(Kind, &[u8])>, Box<dyn Error + Send + Sync>> + '_), packed: Option<&Buffer> ) -> Result<ObjectId, Error>

For details, see Reference::peel_to_id_in_place(), with support for a known stable packed buffer.

source

fn follow(&self, store: &Store) -> Option<Result<Reference, Error>>

Follow this symbolic reference one level and return the ref it refers to.

Returns None if this is not a symbolic reference, hence the leaf of the chain.

source

fn follow_packed( &self, store: &Store, packed: Option<&Buffer> ) -> Option<Result<Reference, Error>>

Follow this symbolic reference one level and return the ref it refers to, possibly providing access to packed references for lookup if it contains the referent.

Returns None if this is not a symbolic reference, hence the leaf of the chain.

Implementors§