pub struct ProtocolMachineKernel;Expand description
Canonical cooperative kernel entrypoints.
Implementations§
Source§impl ProtocolMachineKernel
impl ProtocolMachineKernel
Sourcepub fn select_ready_eligible<FProgress, FEligible>(
scheduler: &mut Scheduler,
has_progress: FProgress,
is_eligible: FEligible,
) -> Option<usize>
pub fn select_ready_eligible<FProgress, FEligible>( scheduler: &mut Scheduler, has_progress: FProgress, is_eligible: FEligible, ) -> Option<usize>
Select a ready coroutine using kernel-owned scheduler policy semantics.
has_progress models policy-relevant progress state, while
is_eligible is a runtime/driver eligibility gate (e.g. paused role,
lane/session wave constraints). Ineligible candidates are rescheduled.
Sourcepub fn step_round<M: KernelMachine>(
machine: &mut M,
handler: &dyn EffectHandler,
n: usize,
) -> Result<StepResult, ProtocolMachineError>
pub fn step_round<M: KernelMachine>( machine: &mut M, handler: &dyn EffectHandler, n: usize, ) -> Result<StepResult, ProtocolMachineError>
Execute one scheduler round through the canonical kernel path.
§Errors
Returns a ProtocolMachineError if a coroutine faults.
Sourcepub fn run_concurrent<M: KernelMachine>(
machine: &mut M,
handler: &dyn EffectHandler,
max_rounds: usize,
concurrency: usize,
) -> Result<RunStatus, ProtocolMachineError>
pub fn run_concurrent<M: KernelMachine>( machine: &mut M, handler: &dyn EffectHandler, max_rounds: usize, concurrency: usize, ) -> Result<RunStatus, ProtocolMachineError>
Run until completion/stuck or max_rounds is reached via the kernel.
§Errors
Returns a ProtocolMachineError if any coroutine faults.
Sourcepub fn run<M: KernelMachine>(
machine: &mut M,
handler: &dyn EffectHandler,
max_steps: usize,
) -> Result<RunStatus, ProtocolMachineError>
pub fn run<M: KernelMachine>( machine: &mut M, handler: &dyn EffectHandler, max_steps: usize, ) -> Result<RunStatus, ProtocolMachineError>
Run with single-lane cooperative scheduling via the kernel.
§Errors
Returns a ProtocolMachineError if any coroutine faults.
Trait Implementations§
Source§impl Clone for ProtocolMachineKernel
impl Clone for ProtocolMachineKernel
Source§fn clone(&self) -> ProtocolMachineKernel
fn clone(&self) -> ProtocolMachineKernel
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for ProtocolMachineKernel
impl Debug for ProtocolMachineKernel
Source§impl Default for ProtocolMachineKernel
impl Default for ProtocolMachineKernel
Source§fn default() -> ProtocolMachineKernel
fn default() -> ProtocolMachineKernel
Returns the “default value” for a type. Read more
impl Copy for ProtocolMachineKernel
Auto Trait Implementations§
impl Freeze for ProtocolMachineKernel
impl RefUnwindSafe for ProtocolMachineKernel
impl Send for ProtocolMachineKernel
impl Sync for ProtocolMachineKernel
impl Unpin for ProtocolMachineKernel
impl UnsafeUnpin for ProtocolMachineKernel
impl UnwindSafe for ProtocolMachineKernel
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> CheckedAs for T
impl<T> CheckedAs for T
Source§fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
fn checked_as<Dst>(self) -> Option<Dst>where
T: CheckedCast<Dst>,
Casts the value.
Source§impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
impl<Src, Dst> CheckedCastFrom<Src> for Dstwhere
Src: CheckedCast<Dst>,
Source§fn checked_cast_from(src: Src) -> Option<Dst>
fn checked_cast_from(src: Src) -> Option<Dst>
Casts the value.
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Src, Dst> LosslessTryInto<Dst> for Srcwhere
Dst: LosslessTryFrom<Src>,
impl<Src, Dst> LosslessTryInto<Dst> for Srcwhere
Dst: LosslessTryFrom<Src>,
Source§fn lossless_try_into(self) -> Option<Dst>
fn lossless_try_into(self) -> Option<Dst>
Performs the conversion.
Source§impl<Src, Dst> LossyInto<Dst> for Srcwhere
Dst: LossyFrom<Src>,
impl<Src, Dst> LossyInto<Dst> for Srcwhere
Dst: LossyFrom<Src>,
Source§fn lossy_into(self) -> Dst
fn lossy_into(self) -> Dst
Performs the conversion.
Source§impl<T> OverflowingAs for T
impl<T> OverflowingAs for T
Source§fn overflowing_as<Dst>(self) -> (Dst, bool)where
T: OverflowingCast<Dst>,
fn overflowing_as<Dst>(self) -> (Dst, bool)where
T: OverflowingCast<Dst>,
Casts the value.
Source§impl<Src, Dst> OverflowingCastFrom<Src> for Dstwhere
Src: OverflowingCast<Dst>,
impl<Src, Dst> OverflowingCastFrom<Src> for Dstwhere
Src: OverflowingCast<Dst>,
Source§fn overflowing_cast_from(src: Src) -> (Dst, bool)
fn overflowing_cast_from(src: Src) -> (Dst, bool)
Casts the value.
Source§impl<T> SaturatingAs for T
impl<T> SaturatingAs for T
Source§fn saturating_as<Dst>(self) -> Dstwhere
T: SaturatingCast<Dst>,
fn saturating_as<Dst>(self) -> Dstwhere
T: SaturatingCast<Dst>,
Casts the value.
Source§impl<Src, Dst> SaturatingCastFrom<Src> for Dstwhere
Src: SaturatingCast<Dst>,
impl<Src, Dst> SaturatingCastFrom<Src> for Dstwhere
Src: SaturatingCast<Dst>,
Source§fn saturating_cast_from(src: Src) -> Dst
fn saturating_cast_from(src: Src) -> Dst
Casts the value.
Source§impl<T> StrictAs for T
impl<T> StrictAs for T
Source§fn strict_as<Dst>(self) -> Dstwhere
T: StrictCast<Dst>,
fn strict_as<Dst>(self) -> Dstwhere
T: StrictCast<Dst>,
Casts the value.
Source§impl<Src, Dst> StrictCastFrom<Src> for Dstwhere
Src: StrictCast<Dst>,
impl<Src, Dst> StrictCastFrom<Src> for Dstwhere
Src: StrictCast<Dst>,
Source§fn strict_cast_from(src: Src) -> Dst
fn strict_cast_from(src: Src) -> Dst
Casts the value.
Source§impl<T> UnwrappedAs for T
impl<T> UnwrappedAs for T
Source§fn unwrapped_as<Dst>(self) -> Dstwhere
T: UnwrappedCast<Dst>,
fn unwrapped_as<Dst>(self) -> Dstwhere
T: UnwrappedCast<Dst>,
Casts the value.
Source§impl<Src, Dst> UnwrappedCastFrom<Src> for Dstwhere
Src: UnwrappedCast<Dst>,
impl<Src, Dst> UnwrappedCastFrom<Src> for Dstwhere
Src: UnwrappedCast<Dst>,
Source§fn unwrapped_cast_from(src: Src) -> Dst
fn unwrapped_cast_from(src: Src) -> Dst
Casts the value.
Source§impl<T> WrappingAs for T
impl<T> WrappingAs for T
Source§fn wrapping_as<Dst>(self) -> Dstwhere
T: WrappingCast<Dst>,
fn wrapping_as<Dst>(self) -> Dstwhere
T: WrappingCast<Dst>,
Casts the value.
Source§impl<Src, Dst> WrappingCastFrom<Src> for Dstwhere
Src: WrappingCast<Dst>,
impl<Src, Dst> WrappingCastFrom<Src> for Dstwhere
Src: WrappingCast<Dst>,
Source§fn wrapping_cast_from(src: Src) -> Dst
fn wrapping_cast_from(src: Src) -> Dst
Casts the value.