Runtime

Struct Runtime 

Source
pub struct Runtime { /* private fields */ }
Expand description

Runtime environment with automatic backend detection and fallback.

The runtime automatically detects the best available backend and provides information about the current environment for optimization guidance.

Implementations§

Source§

impl Runtime

Source

pub fn auto_detect() -> Result<Self>

Create a new runtime with automatic backend detection.

This method probes the system for io_uring availability and selects the best available backend. If io_uring is not available, it falls back to epoll (on Linux) or stub implementation (on other platforms).

§Returns

A runtime configured with the optimal backend for the current environment.

§Example
use safer_ring::runtime::Runtime;

let runtime = Runtime::auto_detect()?;
println!("Using backend: {}", runtime.backend().description());
Source

pub fn with_backend(backend: Backend) -> Result<Self>

Create a runtime with a specific backend.

This bypasses automatic detection and forces the use of a specific backend. Use this when you want to test fallback behavior or have specific requirements.

§Arguments
  • backend - The backend to use
§Example
use safer_ring::runtime::{Runtime, Backend};

// Force epoll backend for testing
let runtime = Runtime::with_backend(Backend::Epoll)?;
Source

pub fn backend(&self) -> Backend

Get the active backend.

Source

pub fn environment(&self) -> &EnvironmentInfo

Get environment information.

Source

pub fn is_cloud_environment(&self) -> bool

Check if running in a cloud environment.

Source

pub fn performance_guidance(&self) -> Vec<&'static str>

Get performance guidance for the current environment.

Trait Implementations§

Source§

impl Debug for Runtime

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

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, 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.