Skip to main content

ObjectStore

Trait ObjectStore 

Source
pub trait ObjectStore {
    // Required methods
    fn get_object(&self, object_id: &ObjectID) -> Option<Object>;
    fn get_object_by_key(
        &self,
        object_id: &ObjectID,
        version: VersionNumber,
    ) -> Option<Object>;

    // Provided methods
    fn load_implicitly_read_system_object(
        &self,
        object_id: &ObjectID,
        version: ConsensusObjectVersion,
    ) -> Option<Object> { ... }
    fn multi_get_objects(&self, object_ids: &[ObjectID]) -> Vec<Option<Object>> { ... }
    fn multi_get_objects_by_key(
        &self,
        object_keys: &[ObjectKey],
    ) -> Vec<Option<Object>> { ... }
}

Required Methods§

Source

fn get_object(&self, object_id: &ObjectID) -> Option<Object>

Source

fn get_object_by_key( &self, object_id: &ObjectID, version: VersionNumber, ) -> Option<Object>

Provided Methods§

Source

fn load_implicitly_read_system_object( &self, object_id: &ObjectID, version: ConsensusObjectVersion, ) -> Option<Object>

Load an implicitly read system object at the given version. Returns None if the store no longer has that version. Below is the default implementation that works for all the store except the main store, which is implemented in the writeback cache.

Source

fn multi_get_objects(&self, object_ids: &[ObjectID]) -> Vec<Option<Object>>

Source

fn multi_get_objects_by_key( &self, object_keys: &[ObjectKey], ) -> Vec<Option<Object>>

Implementations on Foreign Types§

Source§

impl ObjectStore for &[Object]

Source§

fn get_object(&self, object_id: &ObjectID) -> Option<Object>

Source§

fn get_object_by_key( &self, object_id: &ObjectID, version: VersionNumber, ) -> Option<Object>

Source§

impl ObjectStore for BTreeMap<ObjectID, (ObjectRef, Object, WriteKind)>

Source§

fn get_object(&self, object_id: &ObjectID) -> Option<Object>

Source§

fn get_object_by_key( &self, object_id: &ObjectID, version: VersionNumber, ) -> Option<Object>

Source§

impl ObjectStore for BTreeMap<ObjectID, Object>

Source§

fn get_object(&self, object_id: &ObjectID) -> Option<Object>

Source§

fn get_object_by_key( &self, object_id: &ObjectID, version: VersionNumber, ) -> Option<Object>

Source§

impl<T: ObjectStore + ?Sized> ObjectStore for &T

Source§

fn get_object(&self, object_id: &ObjectID) -> Option<Object>

Source§

fn load_implicitly_read_system_object( &self, object_id: &ObjectID, version: ConsensusObjectVersion, ) -> Option<Object>

Source§

fn get_object_by_key( &self, object_id: &ObjectID, version: VersionNumber, ) -> Option<Object>

Source§

fn multi_get_objects(&self, object_ids: &[ObjectID]) -> Vec<Option<Object>>

Source§

fn multi_get_objects_by_key( &self, object_keys: &[ObjectKey], ) -> Vec<Option<Object>>

Source§

impl<T: ObjectStore + ?Sized> ObjectStore for Box<T>

Source§

fn get_object(&self, object_id: &ObjectID) -> Option<Object>

Source§

fn load_implicitly_read_system_object( &self, object_id: &ObjectID, version: ConsensusObjectVersion, ) -> Option<Object>

Source§

fn get_object_by_key( &self, object_id: &ObjectID, version: VersionNumber, ) -> Option<Object>

Source§

fn multi_get_objects(&self, object_ids: &[ObjectID]) -> Vec<Option<Object>>

Source§

fn multi_get_objects_by_key( &self, object_keys: &[ObjectKey], ) -> Vec<Option<Object>>

Source§

impl<T: ObjectStore + ?Sized> ObjectStore for Arc<T>

Source§

fn get_object(&self, object_id: &ObjectID) -> Option<Object>

Source§

fn load_implicitly_read_system_object( &self, object_id: &ObjectID, version: ConsensusObjectVersion, ) -> Option<Object>

Source§

fn get_object_by_key( &self, object_id: &ObjectID, version: VersionNumber, ) -> Option<Object>

Source§

fn multi_get_objects(&self, object_ids: &[ObjectID]) -> Vec<Option<Object>>

Source§

fn multi_get_objects_by_key( &self, object_keys: &[ObjectKey], ) -> Vec<Option<Object>>

Implementors§