pub enum StateRequest {
Start(Rpc<(), ()>),
Stop(Rpc<(), ()>),
Reset(FailableRpc<(), ()>),
Save(FailableRpc<(), Option<SavedStateBlob>>),
Restore(FailableRpc<SavedStateBlob, ()>),
PostRestore(FailableRpc<(), ()>),
Inspect(Deferred),
}
Expand description
A state change request.
Variants§
Start(Rpc<(), ()>)
Start asynchronous operations.
Stop(Rpc<(), ()>)
Stop asynchronous operations.
Reset(FailableRpc<(), ()>)
Reset a stopped unit to initial state.
Save(FailableRpc<(), Option<SavedStateBlob>>)
Save state of a stopped unit.
Restore(FailableRpc<SavedStateBlob, ()>)
Restore state of a stopped unit.
PostRestore(FailableRpc<(), ()>)
Perform any post-restore actions.
Sent after all dependencies have been restored but before starting.
Inspect(Deferred)
Inspect state.
Implementations§
Source§impl StateRequest
impl StateRequest
Sourcepub async fn apply_with_concurrent_inspects<'a, T>(
self,
unit: &mut &'a T,
recv: &mut Receiver<StateRequest>,
)
pub async fn apply_with_concurrent_inspects<'a, T>( self, unit: &mut &'a T, recv: &mut Receiver<StateRequest>, )
Runs this state request against unit
, polling recv
for incoming
inspect requests and applying them while any state transition is in
flight.
For this to work, your state unit T
should implement StateUnit
for
&'_ T
.
Panics if a state transition arrives on recv
while this one is being
processed. This would indicate a contract violation with StateUnits
.
Trait Implementations§
Source§impl Debug for StateRequest
impl Debug for StateRequest
Source§impl DefaultEncoding for StateRequest
impl DefaultEncoding for StateRequest
Source§type Encoding = OneofEncoder
type Encoding = OneofEncoder
The encoding to use for the serialization. Read more
Source§impl<'encoding> OneofDecode<'encoding, Resource> for StateRequest
impl<'encoding> OneofDecode<'encoding, Resource> for StateRequest
Source§fn read_variant(
item: &mut InplaceOption<'_, Self>,
n: u32,
field: FieldReader<'encoding, '_, Resource>,
) -> Result<()>
fn read_variant( item: &mut InplaceOption<'_, Self>, n: u32, field: FieldReader<'encoding, '_, Resource>, ) -> Result<()>
Read the specified variant from the reader.
Source§impl OneofEncode<Resource> for StateRequest
impl OneofEncode<Resource> for StateRequest
Source§fn write_variant(self, writer: MessageWriter<'_, '_, Resource>)
fn write_variant(self, writer: MessageWriter<'_, '_, Resource>)
Write the variant to the writer.
Source§fn compute_variant_size(&mut self, sizer: MessageSizer<'_>)
fn compute_variant_size(&mut self, sizer: MessageSizer<'_>)
Compute the size of the variant.
Auto Trait Implementations§
impl Freeze for StateRequest
impl !RefUnwindSafe for StateRequest
impl Send for StateRequest
impl Sync for StateRequest
impl Unpin for StateRequest
impl !UnwindSafe for StateRequest
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> MeshField for Twhere
T: DefaultEncoding,
<T as DefaultEncoding>::Encoding: FieldEncode<T, Resource> + for<'a> FieldDecode<'a, T, Resource> + Send + Sync,
impl<T> MeshField for Twhere
T: DefaultEncoding,
<T as DefaultEncoding>::Encoding: FieldEncode<T, Resource> + for<'a> FieldDecode<'a, T, Resource> + Send + Sync,
type Encoding = <T as DefaultEncoding>::Encoding
Source§impl<T> MeshPayload for Twhere
T: DefaultEncoding + Any + Send + 'static,
<T as DefaultEncoding>::Encoding: MessageEncode<T, Resource> + for<'a> MessageDecode<'a, T, Resource> + FieldEncode<T, Resource> + for<'a> FieldDecode<'a, T, Resource> + Send + Sync,
impl<T> MeshPayload for Twhere
T: DefaultEncoding + Any + Send + 'static,
<T as DefaultEncoding>::Encoding: MessageEncode<T, Resource> + for<'a> MessageDecode<'a, T, Resource> + FieldEncode<T, Resource> + for<'a> FieldDecode<'a, T, Resource> + Send + Sync,
type Encoding = <T as DefaultEncoding>::Encoding
Source§impl<T> SerializeMessage for Twhere
T: 'static + MeshPayload + Send,
impl<T> SerializeMessage for Twhere
T: 'static + MeshPayload + Send,
Source§fn compute_message_size(&mut self, sizer: MessageSizer<'_>)
fn compute_message_size(&mut self, sizer: MessageSizer<'_>)
Computes the message size, as in
MessageEncode::compute_message_size
.Source§fn write_message(self, writer: MessageWriter<'_, '_, Resource>)
fn write_message(self, writer: MessageWriter<'_, '_, Resource>)
Writes the message, as in
MessageEncode::write_message
.Source§fn extract(self) -> <T as SerializeMessage>::Concrete
fn extract(self) -> <T as SerializeMessage>::Concrete
Extract the concrete message.