Trait ApplicationObject

Source
pub trait ApplicationObject:
    Send
    + Sync
    + Debug {
Show 16 methods // Required methods fn id(&self) -> &SharedObjectId; fn type_name(&self) -> &'static str; fn is_valid<'life0, 'life1, 'async_trait>( &'life0 self, message: &'life1 SharedMessage, ) -> Pin<Box<dyn Future<Output = Result<bool>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn add_message<'life0, 'async_trait>( &'life0 mut self, message: SharedMessage, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn is_merkleized(&self) -> bool; fn get_latest_digest<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<String>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn has_digest<'life0, 'life1, 'async_trait>( &'life0 self, digest: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<bool>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn is_valid_digest<'life0, 'life1, 'async_trait>( &'life0 self, digest: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<bool>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn add_digest<'life0, 'async_trait>( &'life0 mut self, digest: String, ) -> Pin<Box<dyn Future<Output = Result<bool>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn gossip_messages<'life0, 'life1, 'async_trait>( &'life0 self, digest: Option<&'life1 str>, ) -> Pin<Box<dyn Future<Output = Result<Vec<SharedMessage>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn get_messages_since_digest<'life0, 'life1, 'async_trait>( &'life0 self, digest: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<Vec<SharedMessage>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn get_state<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<Value>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn reset<'life0, 'async_trait>( &'life0 mut self, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait; fn clone_box(&self) -> Box<dyn ApplicationObject>; fn as_any(&self) -> &dyn Any; fn as_any_mut(&mut self) -> &mut dyn Any;
}
Expand description

Enhanced shared object trait with application-specific functionality

Required Methods§

Source

fn id(&self) -> &SharedObjectId

Get the object’s unique identifier

Source

fn type_name(&self) -> &'static str

Get the object’s type name

Source

fn is_valid<'life0, 'life1, 'async_trait>( &'life0 self, message: &'life1 SharedMessage, ) -> Pin<Box<dyn Future<Output = Result<bool>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Validate if a message is valid for this object

Source

fn add_message<'life0, 'async_trait>( &'life0 mut self, message: SharedMessage, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Add a validated message to the object

Source

fn is_merkleized(&self) -> bool

Check if this object supports merkleized synchronization

Source

fn get_latest_digest<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<String>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Get the latest state digest

Source

fn has_digest<'life0, 'life1, 'async_trait>( &'life0 self, digest: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<bool>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Check if object has a specific digest

Source

fn is_valid_digest<'life0, 'life1, 'async_trait>( &'life0 self, digest: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<bool>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Validate if a digest is valid

Source

fn add_digest<'life0, 'async_trait>( &'life0 mut self, digest: String, ) -> Pin<Box<dyn Future<Output = Result<bool>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Add a digest to the object

Source

fn gossip_messages<'life0, 'life1, 'async_trait>( &'life0 self, digest: Option<&'life1 str>, ) -> Pin<Box<dyn Future<Output = Result<Vec<SharedMessage>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Get messages for gossip protocol

Source

fn get_messages_since_digest<'life0, 'life1, 'async_trait>( &'life0 self, digest: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<Vec<SharedMessage>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Get messages since a specific digest

Source

fn get_state<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<Value>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Get the current state as JSON

Source

fn reset<'life0, 'async_trait>( &'life0 mut self, ) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Reset the object to initial state

Source

fn clone_box(&self) -> Box<dyn ApplicationObject>

Clone the object

Source

fn as_any(&self) -> &dyn Any

Get reference as Any for downcasting

Source

fn as_any_mut(&mut self) -> &mut dyn Any

Get mutable reference as Any for downcasting

Implementors§