Runtime

Struct Runtime 

Source
pub struct Runtime<const P: usize = 10, const NUM_SEGS_P2: usize = 8, const BLOCKING_P: usize = 8, const BLOCKING_NUM_SEGS_P2: usize = 5> { /* private fields */ }

Implementations§

Source§

impl<const P: usize, const NUM_SEGS_P2: usize, const BLOCKING_P: usize, const BLOCKING_NUM_SEGS_P2: usize> Runtime<P, NUM_SEGS_P2, BLOCKING_P, BLOCKING_NUM_SEGS_P2>

Source

pub fn spawn<F, T>(&self, future: F) -> Result<JoinHandle<T>, SpawnError>
where F: IntoFuture<Output = T> + Send + 'static, F::IntoFuture: Future<Output = T> + Send + 'static, T: Send + 'static,

Spawns an asynchronous task on the executor, returning an awaitable join handle.

This is the primary method for scheduling async work on the executor. The spawned task will be executed by one of the executor’s worker threads.

§Arguments
  • future: The future to execute. Can be any type that implements IntoFuture.
§Returns
  • Ok(JoinHandle<T>): A join handle that implements Future<Output = T>
  • Err(SpawnError): Error if spawning fails
§Example
use maniac::runtime::Executor;
let rt = manic::runtime::new_multi_threaded();
let handle = rt.spawn(async {
    // Your async code here
    42
})?;

// Await the result
// let result = handle.await;
Source

pub fn spawn_blocking<F, T>( &self, future: F, ) -> Result<JoinHandle<T>, SpawnError>
where F: IntoFuture<Output = T> + Send + 'static, F::IntoFuture: Future<Output = T> + Send + 'static, T: Send + 'static,

Spawns a blocking task on the blocking executor, returning an awaitable join handle.

This is the primary method for scheduling async work on the executor. The spawned task will be executed by one of the executor’s worker threads.

§Arguments
  • future: The future to execute. Can be any type that implements IntoFuture.
§Returns
  • Ok(JoinHandle<T>): A join handle that implements Future<Output = T>
  • Err(SpawnError): Error if spawning fails
§Example
let handle = executor.spawn(async {
    // Your async code here
    42
})?;

// Await the result
// let result = handle.await;

Auto Trait Implementations§

§

impl<const P: usize, const NUM_SEGS_P2: usize, const BLOCKING_P: usize, const BLOCKING_NUM_SEGS_P2: usize> Freeze for Runtime<P, NUM_SEGS_P2, BLOCKING_P, BLOCKING_NUM_SEGS_P2>

§

impl<const P: usize = 10, const NUM_SEGS_P2: usize = 8, const BLOCKING_P: usize = 8, const BLOCKING_NUM_SEGS_P2: usize = 5> !RefUnwindSafe for Runtime<P, NUM_SEGS_P2, BLOCKING_P, BLOCKING_NUM_SEGS_P2>

§

impl<const P: usize, const NUM_SEGS_P2: usize, const BLOCKING_P: usize, const BLOCKING_NUM_SEGS_P2: usize> Send for Runtime<P, NUM_SEGS_P2, BLOCKING_P, BLOCKING_NUM_SEGS_P2>

§

impl<const P: usize, const NUM_SEGS_P2: usize, const BLOCKING_P: usize, const BLOCKING_NUM_SEGS_P2: usize> Sync for Runtime<P, NUM_SEGS_P2, BLOCKING_P, BLOCKING_NUM_SEGS_P2>

§

impl<const P: usize, const NUM_SEGS_P2: usize, const BLOCKING_P: usize, const BLOCKING_NUM_SEGS_P2: usize> Unpin for Runtime<P, NUM_SEGS_P2, BLOCKING_P, BLOCKING_NUM_SEGS_P2>

§

impl<const P: usize = 10, const NUM_SEGS_P2: usize = 8, const BLOCKING_P: usize = 8, const BLOCKING_NUM_SEGS_P2: usize = 5> !UnwindSafe for Runtime<P, NUM_SEGS_P2, BLOCKING_P, BLOCKING_NUM_SEGS_P2>

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<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> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

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.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V