Skip to main content

PublishNamespaceStateMachine

Struct PublishNamespaceStateMachine 

Source
pub struct PublishNamespaceStateMachine {
    state: PublishNamespaceState,
}
Expand description

State machine for PUBLISH_NAMESPACE flow. Idle -> Pending -> Active -> Done.

Fields§

§state: PublishNamespaceState

Implementations§

Source§

impl PublishNamespaceStateMachine

Source

pub fn new() -> Self

Creates a new machine in PublishNamespaceState::Idle.

Source

pub fn state(&self) -> PublishNamespaceState

Returns the current state of the publish-namespace flow.

Source

pub fn on_publish_namespace_sent(&mut self) -> Result<(), NamespaceError>

Idle -> Pending.

Source

pub fn on_publish_namespace_ok(&mut self) -> Result<(), NamespaceError>

Pending -> Active.

Source

pub fn on_publish_namespace_error(&mut self) -> Result<(), NamespaceError>

Pending -> Done.

Source

pub fn on_publish_namespace_done(&mut self) -> Result<(), NamespaceError>

Active -> Done (publisher withdrawing).

Source

pub fn on_publish_namespace_cancel(&mut self) -> Result<(), NamespaceError>

Active -> Done (subscriber cancelling).

Source§

impl PublishNamespaceStateMachine

The same transitions, named for the end the advertisement arrives at.

An announcement this endpoint accepts passes through the states in the same order as one it makes, with every message going the other way: the PUBLISH_NAMESPACE arrives instead of leaving, the answer leaves instead of arriving, the withdrawal arrives and the cancellation leaves. Sharing the transitions and not the names is what lets a refusal say which event was refused, rather than naming the mirror image of it.

Source

pub fn on_publish_namespace_received(&mut self) -> Result<(), NamespaceError>

Idle -> Pending (PUBLISH_NAMESPACE received from the peer).

Source

pub fn on_publish_namespace_ok_sent(&mut self) -> Result<(), NamespaceError>

Pending -> Active (REQUEST_OK sent, accepting the announcement).

Source

pub fn on_publish_namespace_error_sent(&mut self) -> Result<(), NamespaceError>

Pending -> Done (REQUEST_ERROR sent, refusing the announcement).

Source

pub fn on_publish_namespace_done_received( &mut self, ) -> Result<(), NamespaceError>

Active -> Done (PUBLISH_NAMESPACE_DONE received, the peer withdrawing).

Source

pub fn on_publish_namespace_cancel_sent(&mut self) -> Result<(), NamespaceError>

Active -> Done (PUBLISH_NAMESPACE_CANCEL sent, revoking an acceptance).

Active is the acceptance: it is the state an announcement reaches by being answered REQUEST_OK and no other way, which is why a cancellation of one never answered is refused here rather than sent.

Trait Implementations§

Source§

impl Default for PublishNamespaceStateMachine

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more