[−][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
[src]
impl Send for ButtplugClientMessageFuturePair
[src]
impl Sync for ButtplugClientMessageFuturePair
[src]
impl Unpin for ButtplugClientMessageFuturePair
[src]
impl UnwindSafe for ButtplugClientMessageFuturePair
[src]
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,
pub 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]
pub fn instrument(self, span: Span) -> Instrumented<Self>
[src]
pub fn in_current_span(self) -> Instrumented<Self>
[src]
impl<T> Instrument for T
[src]
pub fn instrument(self, span: Span) -> Instrumented<Self>
[src]
pub 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.
pub 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.
pub 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>,
pub fn vzip(self) -> V
impl<T> WithSubscriber for T
[src]
pub fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
[src]
S: Into<Dispatch>,