pub struct DefaultProtocol;Expand description
A default implementation of y-sync Protocol.
Trait Implementations§
Source§impl AsyncProtocol for DefaultProtocol
impl AsyncProtocol for DefaultProtocol
Source§fn start<'life0, 'life1, 'async_trait, E>(
&'life0 self,
awareness: &'life1 Awareness,
) -> Pin<Box<dyn Future<Output = Result<SmallVec<[Message; 1]>, Error>> + 'async_trait>>where
E: Encoder + 'async_trait,
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn start<'life0, 'life1, 'async_trait, E>(
&'life0 self,
awareness: &'life1 Awareness,
) -> Pin<Box<dyn Future<Output = Result<SmallVec<[Message; 1]>, Error>> + 'async_trait>>where
E: Encoder + 'async_trait,
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
To be called whenever a new connection has been accepted. Returns a list of
messages to be sent back to initiator.
Source§fn handle<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
awareness: &'life1 Awareness,
data: &'life2 [u8],
) -> Pin<Box<dyn Future<Output = Result<SmallVec<[Message; 1]>, Error>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn handle<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
awareness: &'life1 Awareness,
data: &'life2 [u8],
) -> Pin<Box<dyn Future<Output = Result<SmallVec<[Message; 1]>, Error>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Y-sync protocol message handler.
Source§fn handle_message<'life0, 'life1, 'async_trait>(
&'life0 self,
awareness: &'life1 Awareness,
message: Message,
) -> Pin<Box<dyn Future<Output = Result<Option<Message>, Error>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn handle_message<'life0, 'life1, 'async_trait>(
&'life0 self,
awareness: &'life1 Awareness,
message: Message,
) -> Pin<Box<dyn Future<Output = Result<Option<Message>, Error>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Handles incoming y-sync Message within the context of current awareness structure.
Returns an optional reply message that should be sent back to message sender.
Source§fn handle_sync_step1<'life0, 'life1, 'async_trait>(
&'life0 self,
awareness: &'life1 Awareness,
sv: StateVector,
) -> Pin<Box<dyn Future<Output = Result<Option<Message>, Error>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn handle_sync_step1<'life0, 'life1, 'async_trait>(
&'life0 self,
awareness: &'life1 Awareness,
sv: StateVector,
) -> Pin<Box<dyn Future<Output = Result<Option<Message>, Error>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Y-sync protocol sync-step-1 - given a StateVector of a remote side, calculate missing
updates. Returns a sync-step-2 message containing a calculated update.
Source§fn handle_sync_step2<'life0, 'life1, 'async_trait>(
&'life0 self,
awareness: &'life1 Awareness,
update: Update,
) -> Pin<Box<dyn Future<Output = Result<Option<Message>, Error>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn handle_sync_step2<'life0, 'life1, 'async_trait>(
&'life0 self,
awareness: &'life1 Awareness,
update: Update,
) -> Pin<Box<dyn Future<Output = Result<Option<Message>, Error>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Handle reply for a sync-step-1 send from this replica previously. By default just apply
an update to current
awareness document instance.Source§fn handle_update<'life0, 'life1, 'async_trait>(
&'life0 self,
awareness: &'life1 Awareness,
update: Update,
) -> Pin<Box<dyn Future<Output = Result<Option<Message>, Error>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn handle_update<'life0, 'life1, 'async_trait>(
&'life0 self,
awareness: &'life1 Awareness,
update: Update,
) -> Pin<Box<dyn Future<Output = Result<Option<Message>, Error>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Handle continuous update send from the client. By default just apply an update to a current
awareness document instance.Source§fn handle_auth<'life0, 'life1, 'async_trait>(
&'life0 self,
_awareness: &'life1 Awareness,
deny_reason: Option<String>,
) -> Pin<Box<dyn Future<Output = Result<Option<Message>, Error>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn handle_auth<'life0, 'life1, 'async_trait>(
&'life0 self,
_awareness: &'life1 Awareness,
deny_reason: Option<String>,
) -> Pin<Box<dyn Future<Output = Result<Option<Message>, Error>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Handle authorization message. By default if reason for auth denial has been provided,
send back Error::PermissionDenied.
Source§fn handle_awareness_query<'life0, 'life1, 'async_trait>(
&'life0 self,
awareness: &'life1 Awareness,
) -> Pin<Box<dyn Future<Output = Result<Option<Message>, Error>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn handle_awareness_query<'life0, 'life1, 'async_trait>(
&'life0 self,
awareness: &'life1 Awareness,
) -> Pin<Box<dyn Future<Output = Result<Option<Message>, Error>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Returns an AwarenessUpdate which is a serializable representation of a current
awareness
instance.Source§fn handle_awareness_update<'life0, 'life1, 'async_trait>(
&'life0 self,
awareness: &'life1 Awareness,
update: AwarenessUpdate,
) -> Pin<Box<dyn Future<Output = Result<Option<Message>, Error>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn handle_awareness_update<'life0, 'life1, 'async_trait>(
&'life0 self,
awareness: &'life1 Awareness,
update: AwarenessUpdate,
) -> Pin<Box<dyn Future<Output = Result<Option<Message>, Error>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Reply to awareness query or just incoming AwarenessUpdate, where current
awareness
instance is being updated with incoming data.Source§fn missing_handle<'life0, 'life1, 'async_trait>(
&'life0 self,
_awareness: &'life1 Awareness,
tag: u8,
_data: Vec<u8>,
) -> Pin<Box<dyn Future<Output = Result<Option<Message>, Error>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn missing_handle<'life0, 'life1, 'async_trait>(
&'life0 self,
_awareness: &'life1 Awareness,
tag: u8,
_data: Vec<u8>,
) -> Pin<Box<dyn Future<Output = Result<Option<Message>, Error>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Y-sync protocol enables to extend its own settings with custom handles. These can be
implemented here. By default it returns an Error::Unsupported.
Source§impl Clone for DefaultProtocol
impl Clone for DefaultProtocol
Source§fn clone(&self) -> DefaultProtocol
fn clone(&self) -> DefaultProtocol
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for DefaultProtocol
impl Debug for DefaultProtocol
Source§impl Default for DefaultProtocol
impl Default for DefaultProtocol
Source§fn default() -> DefaultProtocol
fn default() -> DefaultProtocol
Returns the “default value” for a type. Read more
Source§impl Protocol for DefaultProtocol
impl Protocol for DefaultProtocol
Source§fn start<E>(&self, awareness: &Awareness, encoder: &mut E) -> Result<(), Error>where
E: Encoder,
fn start<E>(&self, awareness: &Awareness, encoder: &mut E) -> Result<(), Error>where
E: Encoder,
To be called whenever a new connection has been accepted. Returns an encoded list of
messages to be sent back to initiator. This binary may contain multiple messages inside,
stored one after another.
Source§fn handle(
&self,
awareness: &Awareness,
data: &[u8],
) -> Result<SmallVec<[Message; 1]>, Error>
fn handle( &self, awareness: &Awareness, data: &[u8], ) -> Result<SmallVec<[Message; 1]>, Error>
Y-sync protocol message handler.
Source§fn handle_message(
&self,
awareness: &Awareness,
message: Message,
) -> Result<Option<Message>, Error>
fn handle_message( &self, awareness: &Awareness, message: Message, ) -> Result<Option<Message>, Error>
Handles incoming y-sync Message within the context of current awareness structure.
Returns an optional reply message that should be sent back to message sender.
Source§fn handle_sync_step1(
&self,
awareness: &Awareness,
sv: StateVector,
) -> Result<Option<Message>, Error>
fn handle_sync_step1( &self, awareness: &Awareness, sv: StateVector, ) -> Result<Option<Message>, Error>
Y-sync protocol sync-step-1 - given a StateVector of a remote side, calculate missing
updates. Returns a sync-step-2 message containing a calculated update.
Source§fn handle_sync_step2(
&self,
awareness: &Awareness,
update: Update,
) -> Result<Option<Message>, Error>
fn handle_sync_step2( &self, awareness: &Awareness, update: Update, ) -> Result<Option<Message>, Error>
Handle reply for a sync-step-1 send from this replica previously. By default just apply
an update to current
awareness document instance.Source§fn handle_update(
&self,
awareness: &Awareness,
update: Update,
) -> Result<Option<Message>, Error>
fn handle_update( &self, awareness: &Awareness, update: Update, ) -> Result<Option<Message>, Error>
Handle continuous update send from the client. By default just apply an update to a current
awareness document instance.Source§fn handle_auth(
&self,
_awareness: &Awareness,
deny_reason: Option<String>,
) -> Result<Option<Message>, Error>
fn handle_auth( &self, _awareness: &Awareness, deny_reason: Option<String>, ) -> Result<Option<Message>, Error>
Handle authorization message. By default if reason for auth denial has been provided,
send back Error::PermissionDenied.
Source§fn handle_awareness_query(
&self,
awareness: &Awareness,
) -> Result<Option<Message>, Error>
fn handle_awareness_query( &self, awareness: &Awareness, ) -> Result<Option<Message>, Error>
Returns an AwarenessUpdate which is a serializable representation of a current
awareness
instance.Source§fn handle_awareness_update(
&self,
awareness: &Awareness,
update: AwarenessUpdate,
) -> Result<Option<Message>, Error>
fn handle_awareness_update( &self, awareness: &Awareness, update: AwarenessUpdate, ) -> Result<Option<Message>, Error>
Reply to awareness query or just incoming AwarenessUpdate, where current
awareness
instance is being updated with incoming data.impl Copy for DefaultProtocol
Auto Trait Implementations§
impl Freeze for DefaultProtocol
impl RefUnwindSafe for DefaultProtocol
impl Send for DefaultProtocol
impl Sync for DefaultProtocol
impl Unpin for DefaultProtocol
impl UnwindSafe for DefaultProtocol
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more