OsInterface

Trait OsInterface 

Source
pub trait OsInterface:
    Send
    + Sync
    + Sized
    + 'static {
    type RawMutex: ConstInit + RawMutex;
    type Notifier: NotifierInterface;
    type NotifyWaiter: NotifyWaiterInterface<Self>;
    type Instant: TickInstant;
    type Delay: DelayNs;

    const O: Self;

    // Required methods
    fn yield_thread();
    fn delay() -> Self::Delay;
    fn notify() -> (Self::Notifier, Self::NotifyWaiter);

    // Provided methods
    fn yield_task() { ... }
    fn mutex<T>(d: T) -> Mutex<Self, T> { ... }
}
Expand description

The interface for different operating systems.

We use the mutex-traits crate to provide mutex functionality. You can implement your own mutex by implementing the RawMutex trait from the mutex-traits crate.

Required Associated Constants§

Source

const O: Self

It’s used to avoid writing foo::<OS, _, _, _>(...)

Required Associated Types§

Required Methods§

Source

fn yield_thread()

Source

fn delay() -> Self::Delay

Source

fn notify() -> (Self::Notifier, Self::NotifyWaiter)

Provided Methods§

Source

fn yield_task()

Source

fn mutex<T>(d: T) -> Mutex<Self, T>

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§