Struct PerCore

Source
pub struct PerCore<T, C: Cores, const CORE_COUNT: usize> { /* private fields */ }
Expand description

A type which allows values to be stored per CPU core. Only the value associated with the current CPU core can be accessed.

To use this type you must first implement the Cores trait for your platform.

C::core_index() must always return a value less than CORE_COUNT or there will be a runtime panic.

Implementations§

Source§

impl<T, C: Cores, const CORE_COUNT: usize> PerCore<T, C, CORE_COUNT>

Source

pub const fn new(values: [T; CORE_COUNT]) -> Self

Creates a new set of per-core values.

Source

pub fn get(&self) -> &T

Gets a shared reference to the value for the current CPU core.

Trait Implementations§

Source§

impl<T: Send, C: Cores, const CORE_COUNT: usize> Sync for PerCore<ExceptionLock<T>, C, CORE_COUNT>

Auto Trait Implementations§

§

impl<T, C, const CORE_COUNT: usize> Freeze for PerCore<T, C, CORE_COUNT>
where T: Freeze,

§

impl<T, C, const CORE_COUNT: usize> RefUnwindSafe for PerCore<T, C, CORE_COUNT>

§

impl<T, C, const CORE_COUNT: usize> Send for PerCore<T, C, CORE_COUNT>
where T: Send, C: Send,

§

impl<T, C, const CORE_COUNT: usize> !Sync for PerCore<T, C, CORE_COUNT>

§

impl<T, C, const CORE_COUNT: usize> Unpin for PerCore<T, C, CORE_COUNT>
where T: Unpin, C: Unpin,

§

impl<T, C, const CORE_COUNT: usize> UnwindSafe for PerCore<T, C, CORE_COUNT>
where T: UnwindSafe, C: UnwindSafe,

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.