[−][src]Struct buttplug::client::ButtplugClientMessageFuturePair
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: ButtplugCurrentSpecClientMessage
waker: ButtplugFutureStateShared<ButtplugInternalClientMessageResult>
Implementations
impl ButtplugClientMessageFuturePair
[src]
pub fn new(
msg: ButtplugCurrentSpecClientMessage,
waker: ButtplugFutureStateShared<ButtplugInternalClientMessageResult>
) -> Self
[src]
msg: ButtplugCurrentSpecClientMessage,
waker: ButtplugFutureStateShared<ButtplugInternalClientMessageResult>
) -> Self
Auto Trait Implementations
impl RefUnwindSafe for ButtplugClientMessageFuturePair
impl Send for ButtplugClientMessageFuturePair
impl Sync for ButtplugClientMessageFuturePair
impl Unpin for ButtplugClientMessageFuturePair
impl UnwindSafe for ButtplugClientMessageFuturePair
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T> GetTypeId for T where
T: Any,
[src]
T: Any,
impl<T> Instrument for T
[src]
fn instrument(self, span: Span) -> Instrumented<Self>
[src]
fn in_current_span(self) -> Instrumented<Self>
[src]
impl<T> Instrument for T
[src]
fn instrument(self, span: Span) -> Instrumented<Self>
[src]
fn in_current_span(self) -> Instrumented<Self>
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
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]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,
fn vzip(self) -> V
impl<T> WithSubscriber for T
[src]
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
[src]
S: Into<Dispatch>,