pub struct SubscribeNamespaceStateMachine {
state: SubscribeNamespaceState,
}Expand description
State machine for SUBSCRIBE_NAMESPACE flow. Idle -> Pending -> Active -> Done.
Fields§
§state: SubscribeNamespaceStateImplementations§
Source§impl SubscribeNamespaceStateMachine
impl SubscribeNamespaceStateMachine
Sourcepub fn on_subscribe_namespace_received(&mut self) -> Result<(), NamespaceError>
pub fn on_subscribe_namespace_received(&mut self) -> Result<(), NamespaceError>
Idle -> Pending (SUBSCRIBE_NAMESPACE received from the peer).
Sourcepub fn on_subscribe_namespace_ok_sent(&mut self) -> Result<(), NamespaceError>
pub fn on_subscribe_namespace_ok_sent(&mut self) -> Result<(), NamespaceError>
Pending -> Active (REQUEST_OK written on the peer’s stream).
Sourcepub fn on_subscribe_namespace_error_sent(
&mut self,
) -> Result<(), NamespaceError>
pub fn on_subscribe_namespace_error_sent( &mut self, ) -> Result<(), NamespaceError>
Pending -> Done (REQUEST_ERROR written on the peer’s stream).
Source§impl SubscribeNamespaceStateMachine
impl SubscribeNamespaceStateMachine
Sourcepub fn new() -> Self
pub fn new() -> Self
Creates a new machine in SubscribeNamespaceState::Idle.
Sourcepub fn state(&self) -> SubscribeNamespaceState
pub fn state(&self) -> SubscribeNamespaceState
Returns the current state of the subscribe-namespace flow.
Sourcepub fn on_subscribe_namespace_sent(&mut self) -> Result<(), NamespaceError>
pub fn on_subscribe_namespace_sent(&mut self) -> Result<(), NamespaceError>
Idle -> Pending.
Sourcepub fn on_subscribe_namespace_ok(&mut self) -> Result<(), NamespaceError>
pub fn on_subscribe_namespace_ok(&mut self) -> Result<(), NamespaceError>
Pending -> Active.
Sourcepub fn on_subscribe_namespace_error(&mut self) -> Result<(), NamespaceError>
pub fn on_subscribe_namespace_error(&mut self) -> Result<(), NamespaceError>
Pending -> Done.
Sourcepub fn on_request_cancelled(&mut self) -> Result<(), NamespaceError>
pub fn on_request_cancelled(&mut self) -> Result<(), NamespaceError>
Pending | Active -> Done, Done -> Done (this request’s stream was cancelled).
This draft has no UNSUBSCRIBE_NAMESPACE message. Section 3.3.1: “Once a request stream has been opened, the request MAY be cancelled by either endpoint.”
Idle is refused, on the other half of the same sentence: nothing has
been written, so there is no stream to terminate. Done stays Done —
nothing finishes a request stream’s send half on the ordinary path, so a
caller that walks away from a request that has already ended still
resets the stream, and that reset is an ordinary end rather than a
fault.