identity_iota_interaction::types::storage

Trait ChildObjectResolver

pub trait ChildObjectResolver {
    // Required methods
    fn read_child_object(
        &self,
        parent: &ObjectID,
        child: &ObjectID,
        child_version_upper_bound: SequenceNumber,
    ) -> Result<Option<Object>, IotaError>;
    fn get_object_received_at_version(
        &self,
        owner: &ObjectID,
        receiving_object_id: &ObjectID,
        receive_object_at_version: SequenceNumber,
        epoch_id: u64,
    ) -> Result<Option<Object>, IotaError>;
}
Expand description

An abstraction of the (possibly distributed) store for objects. This API only allows for the retrieval of objects, not any state changes

Required Methods§

fn read_child_object( &self, parent: &ObjectID, child: &ObjectID, child_version_upper_bound: SequenceNumber, ) -> Result<Option<Object>, IotaError>

child must have an ObjectOwner ownership equal to owner.

fn get_object_received_at_version( &self, owner: &ObjectID, receiving_object_id: &ObjectID, receive_object_at_version: SequenceNumber, epoch_id: u64, ) -> Result<Option<Object>, IotaError>

receiving_object_id must have an AddressOwner ownership equal to owner. get_object_received_at_version must be the exact version at which the object will be received, and it cannot have been previously received at that version. NB: An object not existing at that version, and not having valid access to the object will be treated exactly the same and Ok(None) must be returned.

Implementations on Foreign Types§

§

impl ChildObjectResolver for InMemoryTestStore

§

fn read_child_object( &self, parent: &ObjectID, child: &ObjectID, child_version_upper_bound: SequenceNumber, ) -> Result<Option<Object>, IotaError>

§

fn get_object_received_at_version( &self, owner: &ObjectID, receiving_object_id: &ObjectID, receive_object_at_version: SequenceNumber, epoch_id: u64, ) -> Result<Option<Object>, IotaError>

§

impl ChildObjectResolver for TemporaryStore<'_>

§

fn read_child_object( &self, parent: &ObjectID, child: &ObjectID, child_version_upper_bound: SequenceNumber, ) -> Result<Option<Object>, IotaError>

§

fn get_object_received_at_version( &self, owner: &ObjectID, receiving_object_id: &ObjectID, receive_object_at_version: SequenceNumber, epoch_id: u64, ) -> Result<Option<Object>, IotaError>

§

impl<S> ChildObjectResolver for &S

§

fn read_child_object( &self, parent: &ObjectID, child: &ObjectID, child_version_upper_bound: SequenceNumber, ) -> Result<Option<Object>, IotaError>

§

fn get_object_received_at_version( &self, owner: &ObjectID, receiving_object_id: &ObjectID, receive_object_at_version: SequenceNumber, epoch_id: u64, ) -> Result<Option<Object>, IotaError>

§

impl<S> ChildObjectResolver for &mut S

§

fn read_child_object( &self, parent: &ObjectID, child: &ObjectID, child_version_upper_bound: SequenceNumber, ) -> Result<Option<Object>, IotaError>

§

fn get_object_received_at_version( &self, owner: &ObjectID, receiving_object_id: &ObjectID, receive_object_at_version: SequenceNumber, epoch_id: u64, ) -> Result<Option<Object>, IotaError>

§

impl<S> ChildObjectResolver for Arc<S>

§

fn read_child_object( &self, parent: &ObjectID, child: &ObjectID, child_version_upper_bound: SequenceNumber, ) -> Result<Option<Object>, IotaError>

§

fn get_object_received_at_version( &self, owner: &ObjectID, receiving_object_id: &ObjectID, receive_object_at_version: SequenceNumber, epoch_id: u64, ) -> Result<Option<Object>, IotaError>

Implementors§