Skip to main content

Protocol

Struct Protocol 

Source
pub struct Protocol<W> { /* private fields */ }
Available on crate feature live only.
Expand description

The core live API protocol.

Implementations§

Source§

impl<W> Protocol<W>
where W: AsyncWriteExt + Unpin,

Source

pub fn new(sender: W) -> Self

Creates a new instance of the live API protocol that will send raw API messages to sender.

Source

pub async fn authenticate<R>( &mut self, recver: &mut R, key: &ApiKey, dataset: &str, options: SessionOptions<'_>, ) -> Result<String>

Conducts CRAM authentication with the live gateway. Returns the session ID.

§Errors

This function returns an error if the gateway fails to respond or the authentication request is rejected.

§Cancel safety

This method is not cancellation safe. If this method is used in a tokio::select! statement and another branch completes first, the authentication may have been only partially sent, resulting in the gateway rejecting the authentication and closing the connection.

Source

pub async fn subscribe(&mut self, sub: &Subscription) -> Result<()>

Sends one or more subscription messages for sub depending on the number of symbols.

§Errors

This function returns an error if it’s unable to communicate with the gateway.

§Cancel safety

This method is not cancellation safe. If this method is used in a tokio::select! statement and another branch completes first, the subscription may have been partially sent, resulting in the gateway rejecting the subscription, sending an error, and closing the connection.

Source

pub async fn start_session(&mut self) -> Result<()>

Sends a start session message to the live gateway.

§Errors

This function returns an error if it’s unable to communicate with the gateway.

§Cancel safety

This method is not cancellation safe. If this method is used in a tokio::select! statement and another branch completes first, the live gateway may only receive a partial message, resulting in it sending an error and closing the connection.

Source

pub async fn shutdown(&mut self) -> Result<()>

Shuts down the inner writer.

§Errors

This function returns an error if the shut down did not complete successfully.

Source

pub fn into_inner(self) -> W

Consumes the protocol instance and returns the inner sender.

Auto Trait Implementations§

§

impl<W> Freeze for Protocol<W>
where W: Freeze,

§

impl<W> RefUnwindSafe for Protocol<W>
where W: RefUnwindSafe,

§

impl<W> Send for Protocol<W>
where W: Send,

§

impl<W> Sync for Protocol<W>
where W: Sync,

§

impl<W> Unpin for Protocol<W>
where W: Unpin,

§

impl<W> UnsafeUnpin for Protocol<W>
where W: UnsafeUnpin,

§

impl<W> UnwindSafe for Protocol<W>
where W: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more