Trait yrs::sync::protocol::Protocol

source ·
pub trait Protocol {
    // Provided methods
    fn start<E: Encoder>(
        &self,
        awareness: &Awareness,
        encoder: &mut E
    ) -> Result<(), Error> { ... }
    fn handle_sync_step1(
        &self,
        awareness: &Awareness,
        sv: StateVector
    ) -> Result<Option<Message>, Error> { ... }
    fn handle_sync_step2(
        &self,
        awareness: &mut Awareness,
        update: Update
    ) -> Result<Option<Message>, Error> { ... }
    fn handle_update(
        &self,
        awareness: &mut Awareness,
        update: Update
    ) -> Result<Option<Message>, Error> { ... }
    fn handle_auth(
        &self,
        _awareness: &Awareness,
        deny_reason: Option<String>
    ) -> Result<Option<Message>, Error> { ... }
    fn handle_awareness_query(
        &self,
        awareness: &Awareness
    ) -> Result<Option<Message>, Error> { ... }
    fn handle_awareness_update(
        &self,
        awareness: &mut Awareness,
        update: AwarenessUpdate
    ) -> Result<Option<Message>, Error> { ... }
    fn missing_handle(
        &self,
        _awareness: &mut Awareness,
        tag: u8,
        _data: Vec<u8>
    ) -> Result<Option<Message>, Error> { ... }
}
Expand description

Trait implementing a y-sync protocol. The default implementation can be found in DefaultProtocol, but its implementation steps can be potentially changed by the user if necessary.

Provided Methods§

source

fn start<E: Encoder>( &self, awareness: &Awareness, encoder: &mut E ) -> Result<(), Error>

To be called whenever a new connection has been accepted. Returns an encoded list of messages to be send back to initiator. This binary may contain multiple messages inside, stored one after another.

source

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: &mut 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: &mut 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>

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>

Returns an AwarenessUpdate which is a serializable representation of a current awareness instance.

source

fn handle_awareness_update( &self, awareness: &mut 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.

source

fn missing_handle( &self, _awareness: &mut Awareness, tag: u8, _data: Vec<u8> ) -> Result<Option<Message>, Error>

Y-sync protocol enables to extend its own settings with custom handles. These can be implemented here. By default it returns an Error::Unsupported.

Object Safety§

This trait is not object safe.

Implementors§