pub struct SubscriptionStateMachine {
state: SubscriptionState,
}Expand description
Pure state machine for a MoQT subscription (draft-10). Transitions: Idle → Subscribing → Active → Done.
Fields§
§state: SubscriptionStateImplementations§
Source§impl SubscriptionStateMachine
impl SubscriptionStateMachine
Sourcepub fn new() -> Self
pub fn new() -> Self
Creates a new state machine in the SubscriptionState::Idle state.
Sourcepub fn state(&self) -> SubscriptionState
pub fn state(&self) -> SubscriptionState
Returns the current state of the subscription.
Sourcepub fn on_subscribe_sent(&mut self) -> Result<(), SubscriptionError>
pub fn on_subscribe_sent(&mut self) -> Result<(), SubscriptionError>
Idle → Subscribing (SUBSCRIBE sent).
Sourcepub fn on_subscribe_ok(&mut self) -> Result<(), SubscriptionError>
pub fn on_subscribe_ok(&mut self) -> Result<(), SubscriptionError>
Subscribing → Active (SUBSCRIBE_OK received).
Sourcepub fn on_subscribe_error(&mut self) -> Result<(), SubscriptionError>
pub fn on_subscribe_error(&mut self) -> Result<(), SubscriptionError>
Subscribing → Done (SUBSCRIBE_ERROR received).
Sourcepub fn on_unsubscribe(&mut self) -> Result<(), SubscriptionError>
pub fn on_unsubscribe(&mut self) -> Result<(), SubscriptionError>
Active → Done (UNSUBSCRIBE sent).
Sourcepub fn on_subscribe_update(&mut self) -> Result<(), SubscriptionError>
pub fn on_subscribe_update(&mut self) -> Result<(), SubscriptionError>
Active → Active (SUBSCRIBE_UPDATE sent/received — self-transition).
Sourcepub fn on_subscribe_done(&mut self) -> Result<(), SubscriptionError>
pub fn on_subscribe_done(&mut self) -> Result<(), SubscriptionError>
Active → Done (SUBSCRIBE_DONE received — publisher finished).
Trait Implementations§
Auto Trait Implementations§
impl Freeze for SubscriptionStateMachine
impl RefUnwindSafe for SubscriptionStateMachine
impl Send for SubscriptionStateMachine
impl Sync for SubscriptionStateMachine
impl Unpin for SubscriptionStateMachine
impl UnsafeUnpin for SubscriptionStateMachine
impl UnwindSafe for SubscriptionStateMachine
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