TaskManager

Trait TaskManager 

Source
pub trait TaskManager {
    type Marshall: ExecutorMarshall;
    type TaskIterator<'a>: Iterator<Item = (Pin<&'a mut dyn FusedFutureWithWakeStatus<Output = ()>>, &'static Self::Marshall)>
       where Self: 'a;

    // Required methods
    fn get_task(
        &mut self,
        i: usize,
    ) -> Option<(Pin<&mut dyn FusedFutureWithWakeStatus<Output = ()>>, &'static Self::Marshall)>;
    fn sleep_task(&mut self, i: usize);
    fn sleep_all(&mut self);
    fn tasks<'a>(&'a mut self) -> Self::TaskIterator<'a>;
}

Required Associated Types§

Source

type Marshall: ExecutorMarshall

Source

type TaskIterator<'a>: Iterator<Item = (Pin<&'a mut dyn FusedFutureWithWakeStatus<Output = ()>>, &'static Self::Marshall)> where Self: 'a

Required Methods§

Source

fn get_task( &mut self, i: usize, ) -> Option<(Pin<&mut dyn FusedFutureWithWakeStatus<Output = ()>>, &'static Self::Marshall)>

Source

fn sleep_task(&mut self, i: usize)

Source

fn sleep_all(&mut self)

Source

fn tasks<'a>(&'a mut self) -> Self::TaskIterator<'a>

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl<'a, const N: usize, Marshall: ExecutorMarshall> TaskManager for ArrayTaskManager<'a, N, Marshall>

Source§

type Marshall = Marshall

Source§

type TaskIterator<'b> = ArrayTaskManagerIter<'b, 'a, N, Marshall> where Self: 'b