Struct AtomicOptionRefArray

Source
pub struct AtomicOptionRefArray<T> { /* private fields */ }
Expand description

An array of references in which elements may be updated and retrieved atomically.

This is a Rust interpretation of AtomicReferenceArray from Java.

Implementations§

Source§

impl<T> AtomicOptionRefArray<T>

Source

pub fn new(len: usize) -> Self

Constructs a new array with the specified length. All values will be None.

Source

pub fn new_with<U: IntoOptionArc<T>>(len: usize, f: impl Fn(usize) -> U) -> Self

Constructs a new array with the specified length. Uses the given function to construct each value.

Source

pub fn len(&self) -> usize

Returns the number of elements in the array.

Source

pub fn is_empty(&self) -> bool

Returns true if the array has a length of 0.

Source

pub fn load(&self, index: usize) -> Option<Arc<T>>

Loads and returns a reference to an value at the given position or None if the value at the index is not set.

Panics if index is out of bounds.

Source

pub fn store(&self, index: usize, value: impl IntoOptionArc<T>)

Stores the value at the given position.

Panics if index is out of bounds.

Source

pub fn swap(&self, index: usize, value: impl IntoOptionArc<T>) -> Option<Arc<T>>

Swaps the value at the given position, returning the previous value.

Panics if index is out of bounds.

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

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.