Skip to main content

PrepublicationRealtimeFrame

Struct PrepublicationRealtimeFrame 

Source
pub struct PrepublicationRealtimeFrame<T, C, H>{ /* private fields */ }
Expand description

Scheduler transition which gates publication on exact completion and host observation.

Core schedulers call TransitionOutput::is_complete before committing the associated semantic-state branch. This wrapper returns true only after the native completion has validated and the family-blind observer has produced and cached the host output. Therefore an observation failure follows the scheduler’s ordinary failed-transition path and cannot publish the branch. The cached output is consumed only from the transition returned after commit.

Implementations§

Source§

impl<T, C, H> PrepublicationRealtimeFrame<T, C, H>

Source

pub fn new(submitted: SubmittedRealtimeFrame<T, C>, observer: H) -> Self

Binds one submitted native frame to its mandatory prepublication observer.

Source

pub fn into_host_output( self, ) -> Result<H::Output, RealtimeHostOutputUnavailable<H::Error>>

Consumes the cached host output after the scheduler returns this committed transition.

Calling this before TransitionOutput::is_complete succeeds reports that observation is still pending. A failed observation retains its original error for stable diagnostics.

Trait Implementations§

Source§

impl<T, C, H> DistributedTransitionOutput for PrepublicationRealtimeFrame<T, C, H>

Source§

fn encode_distributed_output(&self, output: &mut Vec<u32>) -> Result<(), String>

Appends every portable output field in stable semantic order.
Source§

impl<T, C, H> TransitionOutput for PrepublicationRealtimeFrame<T, C, H>
where C: Completion, C::Error: 'static, H: RealtimeFrameHostObserver<T>,

Source§

type Error = RealtimePrepublicationError<<C as Completion>::Error, <H as RealtimeFrameHostObserver<T>>::Error>

Completion observation error.
Source§

fn is_complete(&self) -> Result<bool, Self::Error>

Nonblocking exact completion observation.
Source§

fn retained_resources(&self) -> usize

Explicitly retained resource count.
Source§

fn backend_name(&self) -> Option<String>

Stable backend name used only for capability telemetry.
Source§

fn physically_preemptible(&self) -> bool

Whether already executing work can be physically interrupted.

Auto Trait Implementations§

§

impl<T, C, H> !Freeze for PrepublicationRealtimeFrame<T, C, H>

§

impl<T, C, H> !RefUnwindSafe for PrepublicationRealtimeFrame<T, C, H>

§

impl<T, C, H> !Sync for PrepublicationRealtimeFrame<T, C, H>

§

impl<T, C, H> Send for PrepublicationRealtimeFrame<T, C, H>
where SubmittedRealtimeFrame<T, C>: Send, RefCell<HostObservationState<H, T>>: Send,

§

impl<T, C, H> Unpin for PrepublicationRealtimeFrame<T, C, H>
where SubmittedRealtimeFrame<T, C>: Unpin, RefCell<HostObservationState<H, T>>: Unpin,

§

impl<T, C, H> UnsafeUnpin for PrepublicationRealtimeFrame<T, C, H>
where SubmittedRealtimeFrame<T, C>: UnsafeUnpin, RefCell<HostObservationState<H, T>>: UnsafeUnpin,

§

impl<T, C, H> UnwindSafe for PrepublicationRealtimeFrame<T, C, H>
where SubmittedRealtimeFrame<T, C>: UnwindSafe, RefCell<HostObservationState<H, T>>: UnwindSafe,

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<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
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.