[][src]Struct buttplug::client::ButtplugClientMessageFuturePair

pub struct ButtplugClientMessageFuturePair {
    pub msg: ButtplugCurrentSpecClientMessage,
    pub waker: ButtplugFutureStateShared<ButtplugInternalClientMessageResult>,
}

Future state for messages sent from the client that expect a server response.

When a message is sent from the client and expects a response from the server, we'd like to know when that response arrives, and usually we'll want to wait for it. We can do so by creating a future that will be resolved when a response is received from the server.

To do this, we build a ButtplugFuture, then take its waker and pass it along with the message we send to the connector, using the ButtplugClientMessageFuturePair type. We can then expect the connector to get the response from the server, match it with our message (using something like the [ClientConnectorMessageSorter][crate::connector::ClientConnectorMessageSorter]), and set the reply in the waker we've sent along. This will resolve the future we're waiting on and allow us to continue execution.

Fields

msg: ButtplugCurrentSpecClientMessagewaker: ButtplugFutureStateShared<ButtplugInternalClientMessageResult>

Implementations

impl ButtplugClientMessageFuturePair[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T> GetTypeId for T where
    T: Any
[src]

impl<T> Instrument for T[src]

impl<T> Instrument for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>, 

impl<T> WithSubscriber for T[src]