Skip to main content

BufferRingStaticExample

Struct BufferRingStaticExample 

Source
pub struct BufferRingStaticExample<T, S> { /* private fields */ }
Available on crate features _docs_examples only.
Expand description

🗃️ A static ring buffer over contiguous storage, made with buffer_ring!.


📍 data/layout/buffer


§Methods

Implementations§

Source§

impl<T, S> BufferRingStaticExample<T, S>

Common methods.

Source

pub const fn len(&self) -> NonValueU8<{ u8::MAX }>

Returns the number of elements currently stored in the ring.

Source

pub const fn len_prim(&self) -> u8

Returns the number of elements currently stored in the ring.

Source

pub const fn is_empty(&self) -> bool

Returns true if the ring contains no elements.

Source§

impl<T, const CAP: usize> BufferRingStaticExample<T, [T; CAP]>

Fully initialized ring array.

§Invariants

  • All CAP slots always contain a valid T.
  • len controls logical membership, not initialization.
  • head is the physical start of the logical range.
  • The tail is derived as (head + len) % CAP.
  • Dropping the ring drops all CAP stored values.

§Consequences

  • Pushing can overwrite inactive initialized slots.
  • Popping by value needs Copy, Clone, or a replacement value.
  • Shrinking len does not drop elements immediately.
Source

pub const CAP: NonValueU8<{ u8::MAX }>

The fixed capacity of the ring as the index type.

Source

pub const CAP_PRIM: u8

The fixed capacity of the ring as the primitive type.

Source

pub const fn new(array: [T; CAP]) -> Self

Creates an empty ring from already initialized storage.

Source

pub const fn new_init() -> Self
where T: ConstInit,

Creates an empty ring initialized with T::INIT.

Source

pub const fn from_array_empty(array: [T; CAP]) -> Self

Creates an empty ring from already initialized storage.

Source

pub const fn from_array_full(array: [T; CAP]) -> Self

Creates a full ring from already initialized storage.

Source

pub fn from_array_ring( array: [T; CAP], head: NonValueU8<{ u8::MAX }>, len: NonValueU8<{ u8::MAX }>, ) -> Option<Self>

Creates a ring from an array and explicit ring state.

Returns None if:

  • len > CAP
  • head >= CAP while len > 0
Source

pub fn from_array_ring_prim(array: [T; CAP], head: u8, len: u8) -> Option<Self>

Primitive-index variant of from_array_ring.

Source

pub fn from_slice_clone(src: &[T], init: T) -> Option<Self>
where T: Clone,

Creates a ring by cloning all elements from src, after initializing the remaining capacity with init.

Source

pub const fn from_slice_copy(src: &[T], init: T) -> Option<Self>
where T: Copy,

Creates a ring by copying all elements from src, after initializing the remaining capacity with init.

Source

pub const fn capacity(&self) -> NonValueU8<{ u8::MAX }>

Returns the fixed capacity of the ring.

Source

pub const fn capacity_prim(&self) -> u8

Returns the fixed capacity of the ring.

Source

pub const fn remaining_capacity(&self) -> NonValueU8<{ u8::MAX }>

Returns the number of additional elements that fit within the current capacity.

Source

pub const fn remaining_capacity_prim(&self) -> u8

Returns the number of additional elements that fit within the current capacity.

Source

pub const fn is_full(&self) -> bool

Returns true if the ring has reached its capacity.

Source

pub const fn clear(&mut self)

Sets the logical length to zero.

Does not drop elements. The array remains fully initialized.

Source

pub const fn truncate(&mut self, new_len: NonValueU8<{ u8::MAX }>)

Sets the logical length to min(new_len, len).

If new_len >= len, this is a no-op.

Source

pub const fn truncate_prim(&mut self, new_len: u8) -> Result<(), InvalidValue>

Primitive-index variant of truncate.

Source

pub fn push_back(&mut self, value: T) -> Result<(), T>

Appends a value to the back of the ring.

Returns Err(value) if the ring is full.

Source

pub const fn push_back_copy(&mut self, value: T) -> Result<(), T>
where T: Copy,

Appends a copy of value to the back of the ring.

Returns Err(value) if the ring is full.

Source

pub fn push_back_slice(&mut self, src: &[T]) -> usize
where T: Clone,

Appends as many cloned elements from src as fit at the back.

Elements keep their slice order.

Source

pub const fn push_back_slice_copy(&mut self, src: &[T]) -> usize
where T: Copy,

Appends as many copied elements from src as fit at the back.

Elements keep their slice order.

Source

pub const fn push_back_slice_copy_exact( &mut self, src: &[T], ) -> Result<(), usize>
where T: Copy,

Appends all copied elements from src, or none if insufficient capacity.

Returns Err(remaining_capacity) if not enough space is available.

Source

pub fn push_front(&mut self, value: T) -> Result<(), T>

Prepends a value to the front of the ring.

Returns Err(value) if the ring is full.

Source

pub const fn push_front_copy(&mut self, value: T) -> Result<(), T>
where T: Copy,

Prepends a copy of value to the front of the ring.

Returns Err(value) if the ring is full.

Source

pub fn push_front_slice(&mut self, src: &[T]) -> usize
where T: Clone,

Prepends as many cloned elements from src as fit at the front.

Elements keep their slice order. If the ring contains [10, 20], then pushing [1, 2, 3] to the front makes the logical order [1, 2, 3, 10, 20].

Source

pub const fn push_front_slice_copy(&mut self, src: &[T]) -> usize
where T: Copy,

Prepends as many copied elements from src as fit at the front.

Elements keep their slice order. If the ring contains [10, 20], then pushing [1, 2, 3] to the front makes the logical order [1, 2, 3, 10, 20].

Source

pub const fn push_front_slice_copy_exact( &mut self, src: &[T], ) -> Result<(), usize>
where T: Copy,

Prepends all copied elements from src, or none if insufficient capacity.

Returns Err(remaining_capacity) if not enough space is available.

Source

pub fn pop_front_clone(&mut self) -> Option<T>
where T: Clone,

Removes and returns a cloned value from the front of the ring.

Source

pub const fn pop_front_copy(&mut self) -> Option<T>
where T: Copy,

Removes and returns a copied value from the front of the ring.

Source

pub fn pop_front_with(&mut self, replacement: T) -> Option<T>

Removes and returns a value from the front, replacing its storage slot with replacement.

Source

pub fn pop_front_default(&mut self) -> Option<T>
where T: Default,

Removes and returns a value from the front, replacing its storage slot with T::default().

Source

pub const fn pop_front_copy_with(&mut self, replacement: T) -> Option<T>
where T: Copy,

Removes and returns a copied value from the front, replacing its storage slot with replacement.

Source

pub const fn pop_front_init(&mut self) -> Option<T>
where T: ConstInit + Copy,

Removes and returns a copied value from the front, replacing its storage slot with T::INIT.

Source

pub fn pop_back_clone(&mut self) -> Option<T>
where T: Clone,

Removes and returns a cloned value from the back of the ring.

Source

pub const fn pop_back_copy(&mut self) -> Option<T>
where T: Copy,

Removes and returns a copied value from the back of the ring.

Source

pub fn pop_back_with(&mut self, replacement: T) -> Option<T>

Removes and returns a value from the back, replacing its storage slot with replacement.

Source

pub fn pop_back_default(&mut self) -> Option<T>
where T: Default,

Removes and returns a value from the back, replacing its storage slot with T::default().

Source

pub const fn pop_back_copy_with(&mut self, replacement: T) -> Option<T>
where T: Copy,

Removes and returns a copied value from the back, replacing its storage slot with replacement.

Source

pub const fn pop_back_init(&mut self) -> Option<T>
where T: ConstInit + Copy,

Removes and returns a copied value from the back, replacing its storage slot with T::INIT.

Source

pub const fn peek_front(&self) -> Option<&T>

Returns a reference to the front element without removing it.

Source

pub const fn peek_mut_front(&mut self) -> Option<&mut T>

Returns an exclusive reference to the front element without removing it.

Source

pub const fn peek_back(&self) -> Option<&T>

Returns a reference to the back element without removing it.

Source

pub const fn peek_mut_back(&mut self) -> Option<&mut T>

Returns an exclusive reference to the back element without removing it.

Source

pub const fn get(&self, index: NonValueU8<{ u8::MAX }>) -> Option<&T>

Returns a shared reference to the element at logical index.

Source

pub const fn get_prim(&self, index: u8) -> Result<Option<&T>, InvalidValue>

Primitive-index variant of get.

Source

pub const fn get_mut( &mut self, index: NonValueU8<{ u8::MAX }>, ) -> Option<&mut T>

Returns an exclusive reference to the element at logical index.

Source

pub const fn get_mut_prim( &mut self, index: u8, ) -> Result<Option<&mut T>, InvalidValue>

Primitive-index variant of get_mut.

Source

pub fn take_with( &mut self, index: NonValueU8<{ u8::MAX }>, replacement: T, ) -> Option<T>

Takes the value at logical index, replacing it with replacement.

Does not change the logical length.

Source

pub fn take_with_prim( &mut self, index: u8, replacement: T, ) -> Result<Option<T>, InvalidValue>

Primitive-index variant of take_with.

Source

pub fn take_default(&mut self, index: NonValueU8<{ u8::MAX }>) -> Option<T>
where T: Default,

Takes the value at logical index, replacing it with T::default().

Does not change the logical length.

Source

pub fn take_default_prim( &mut self, index: u8, ) -> Result<Option<T>, InvalidValue>
where T: Default,

Primitive-index variant of take_default.

Source

pub const fn take_copy_with( &mut self, index: NonValueU8<{ u8::MAX }>, replacement: T, ) -> Option<T>
where T: Copy,

Takes a copied value at logical index, replacing it with replacement.

Does not change the logical length.

Source

pub const fn take_copy_with_prim( &mut self, index: u8, replacement: T, ) -> Result<Option<T>, InvalidValue>
where T: Copy,

Primitive-index variant of take_copy_with.

Source

pub const fn take_init(&mut self, index: NonValueU8<{ u8::MAX }>) -> Option<T>
where T: ConstInit,

Takes the value at logical index, replacing it with T::INIT.

Does not change the logical length.

Source

pub const fn take_init_prim( &mut self, index: u8, ) -> Result<Option<T>, InvalidValue>
where T: ConstInit,

Primitive-index variant of take_init.

Source

pub fn swap_remove_with( &mut self, index: NonValueU8<{ u8::MAX }>, replacement: T, ) -> Option<T>

Removes and returns the value at logical index, filling the gap with the logical back element and replacing the old back slot with replacement.

Decrements len. Does not preserve order.

Source

pub fn swap_remove_with_prim( &mut self, index: u8, replacement: T, ) -> Result<Option<T>, InvalidValue>

Primitive-index variant of swap_remove_with.

Source

pub fn swap_remove_default( &mut self, index: NonValueU8<{ u8::MAX }>, ) -> Option<T>
where T: Default,

Removes and returns the value at logical index, replacing the old back slot with T::default().

Decrements len. Does not preserve order.

Source

pub fn swap_remove_default_prim( &mut self, index: u8, ) -> Result<Option<T>, InvalidValue>
where T: Default,

Primitive-index variant of swap_remove_default.

Source

pub const fn swap_remove_copy( &mut self, index: NonValueU8<{ u8::MAX }>, ) -> Option<T>
where T: Copy,

Removes and returns a copied value at logical index, filling the gap with the logical back element.

Decrements len. Does not preserve order.

The vacated physical back slot is left unchanged but outside the active logical range.

Source

pub const fn swap_remove_copy_prim( &mut self, index: u8, ) -> Result<Option<T>, InvalidValue>
where T: Copy,

Primitive-index variant of swap_remove_copy.

Source

pub const fn swap_remove_copy_with( &mut self, index: NonValueU8<{ u8::MAX }>, replacement: T, ) -> Option<T>
where T: Copy,

Removes and returns a copied value at logical index, filling the gap with the logical back element and replacing the old back slot with replacement.

Decrements len. Does not preserve order.

Source

pub const fn swap_remove_copy_with_prim( &mut self, index: u8, replacement: T, ) -> Result<Option<T>, InvalidValue>
where T: Copy,

Primitive-index variant of swap_remove_copy_with.

Source

pub const fn swap_remove_init( &mut self, index: NonValueU8<{ u8::MAX }>, ) -> Option<T>
where T: ConstInit + Copy,

Removes and returns a copied value at logical index, replacing the old back slot with T::INIT.

Decrements len. Does not preserve order.

Source

pub const fn swap_remove_init_prim( &mut self, index: u8, ) -> Result<Option<T>, InvalidValue>
where T: ConstInit + Copy,

Primitive-index variant of swap_remove_init.

Source

pub fn as_slices(&self) -> (&[T], &[T])

Returns the active logical range as two slices.

The first slice starts at head. The second slice is non-empty only when the active range wraps around the end of storage.

Source

pub fn as_mut_slices(&mut self) -> (&mut [T], &mut [T])

Returns the active logical range as two mutable slices.

The first slice starts at head. The second slice is non-empty only when the active range wraps around the end of storage.

Source

pub fn iter(&self) -> impl Iterator<Item = &T>

Iterates over the active elements in logical order.

Source

pub fn iter_mut(&mut self) -> impl Iterator<Item = &mut T>

Iterates mutably over the active elements in logical order.

Source

pub fn visit_each<F>(&self, f: F)
where for<'v> F: Fn(&'v T),

Visits each active element without exposing borrow identity.

Source

pub fn visit_each_mut<F>(&mut self, f: F)
where for<'v> F: Fn(&'v mut T),

Visits each active element mutably without exposing borrow identity.

Source

pub fn visit_slices<F, R>(&self, f: F) -> R
where for<'v> F: FnOnce(&'v [T], &'v [T]) -> R,

Visits the active logical range as two shared slices.

Source

pub fn visit_mut_slices<F, R>(&mut self, f: F) -> R
where for<'v> F: FnOnce(&'v mut [T], &'v mut [T]) -> R,

Visits the active logical range as two exclusive slices.

Source§

impl<T, const CAP: usize> BufferRingStaticExample<T, [Option<T>; CAP]>

Ring buffer backed by [Option<T>; CAP].

§Invariants

  • len <= CAP.
  • If len == 0, head == 0.
  • If len > 0, head < CAP.
  • The occupied logical range 0 .. len maps through (head + logical_index) % CAP.
  • Occupied physical slots are Some(T).
  • Unoccupied physical slots are None.

§Notes

  • Option<T> is used to control occupancy and dropping, not sparsity.
  • tail is derived as (head + len) % CAP.
Source

pub const CAP: NonValueU8<{ u8::MAX }>

The fixed capacity of the ring as the index type.

Source

pub const CAP_PRIM: u8

The fixed capacity of the ring as the primitive type.

Source

pub const fn new() -> Self

Creates an empty ring.

Source

pub fn from_array_ring( array: [Option<T>; CAP], head: NonValueU8<{ u8::MAX }>, len: NonValueU8<{ u8::MAX }>, ) -> Option<Self>

Creates a ring from an array of options and explicit ring state.

Returns None if the occupied slots do not match head and len.

Source

pub fn from_array_ring_prim( array: [Option<T>; CAP], head: u8, len: u8, ) -> Option<Self>

Primitive-index variant of from_array_ring.

Returns None if the occupied slots do not match head and len, or if any of the given primitive values are invalid.

Source

pub fn from_array_linear(array: [Option<T>; CAP]) -> Option<Self>

Creates a ring from an array of options with a linear prefix layout.

The ring head is 0, and the logical length is inferred as the index of the first None.

Returns None if a Some appears after the first None.

Source

pub fn from_slice_clone(src: &[T]) -> Option<Self>
where T: Clone,

Creates a ring by cloning all elements from src.

Source

pub const fn from_slice_copy(src: &[T]) -> Option<Self>
where T: Copy,

Creates a ring by copying all elements from src.

Source

pub fn from_array_clone<const N: usize>(src: [T; N]) -> Option<Self>
where T: Clone,

Creates a ring by cloning all elements from an array.

Source

pub const fn from_array_copy<const N: usize>(src: [T; N]) -> Option<Self>
where T: Copy,

Creates a ring by copying all elements from an array.

Source

pub const fn capacity(&self) -> NonValueU8<{ u8::MAX }>

Returns the fixed capacity of the ring.

Source

pub const fn capacity_prim(&self) -> u8

Returns the fixed capacity of the ring.

Source

pub const fn remaining_capacity(&self) -> NonValueU8<{ u8::MAX }>

Returns the number of additional elements that fit within the current capacity.

Source

pub const fn remaining_capacity_prim(&self) -> u8

Returns the number of additional elements that fit within the current capacity.

Source

pub const fn is_full(&self) -> bool

Returns true if the ring has reached its capacity.

Source

pub fn clear(&mut self)

Clears the ring, dropping all elements.

Source

pub fn truncate(&mut self, new_len: NonValueU8<{ u8::MAX }>)

Truncates the ring to new_len, dropping elements from the back.

If new_len >= len, this is a no-op.

Source

pub fn push_back(&mut self, value: T) -> Result<(), T>

Appends a value to the back of the ring.

Returns Err(value) if the ring is full.

Source

pub const fn push_back_copy(&mut self, value: T) -> Result<(), T>
where T: Copy,

Appends a copy of value to the back of the ring.

Returns Err(value) if the ring is full.

Source

pub fn push_back_slice(&mut self, src: &[T]) -> usize
where T: Clone,

Appends as many elements cloned from src as fit at the back of the ring.

Elements keep their slice order. After pushing [a, b, c], c becomes the logical back element.

Source

pub const fn push_back_slice_copy(&mut self, src: &[T]) -> usize
where T: Copy,

Appends as many elements copied from src as fit at the back of the ring.

Elements keep their slice order. After pushing [a, b, c], c becomes the logical back element.

Source

pub const fn push_back_slice_copy_exact( &mut self, src: &[T], ) -> Result<(), usize>
where T: Copy,

Appends all copied from src at the back of the ring, or none if insufficient capacity.

Returns Err(remaining_capacity) if not enough space is available.

Elements keep their slice order. After pushing [a, b, c], c becomes the logical back element.

Source

pub fn push_front(&mut self, value: T) -> Result<(), T>

Prepends a value to the front of the ring.

Returns Err(value) if the ring is full.

Source

pub const fn push_front_copy(&mut self, value: T) -> Result<(), T>
where T: Copy,

Prepends a copy of value to the front of the ring.

Returns Err(value) if the ring is full.

Source

pub fn push_front_slice(&mut self, src: &[T]) -> usize
where T: Clone,

Prepends as many elements cloned from src as fit.

Elements keep their slice order. If the ring contains [10, 20], then pushing [1, 2, 3] to the front makes the logical order [1, 2, 3, 10, 20].

Returns the number of elements prepended.

Source

pub const fn push_front_slice_copy(&mut self, src: &[T]) -> usize
where T: Copy,

Prepends as many copied elements from src as fit.

Elements keep their slice order. If the ring contains [10, 20], then pushing [1, 2, 3] to the front makes the logical order [1, 2, 3, 10, 20].

Returns the number of elements prepended.

Source

pub const fn push_front_slice_copy_exact( &mut self, src: &[T], ) -> Result<(), usize>
where T: Copy,

Prepends all copied elements from src, or none if insufficient capacity.

Elements keep their slice order. Returns Err(remaining_capacity) if not enough space is available.

Source

pub fn pop_front(&mut self) -> Option<T>

Removes and returns a value from the front of the ring.

Source

pub const fn pop_front_copy(&mut self) -> Option<T>
where T: Copy,

Removes and returns a copy from the front of the ring.

Source

pub fn pop_back(&mut self) -> Option<T>

Removes and returns a value from the back of the ring.

Source

pub const fn pop_back_copy(&mut self) -> Option<T>
where T: Copy,

Removes and returns a copy from the back of the ring.

Source

pub const fn peek_front(&self) -> Option<&T>

Returns a reference to the front element without removing it.

Source

pub fn peek_mut_front(&mut self) -> Option<&mut T>

Returns an exclusive reference to the front element without removing it.

Source

pub const fn peek_back(&self) -> Option<&T>

Returns a reference to the back element without removing it.

Source

pub fn peek_mut_back(&mut self) -> Option<&mut T>

Returns an exclusive reference to the back element without removing it.

Source

pub const fn get(&self, index: NonValueU8<{ u8::MAX }>) -> Option<&T>

Returns a shared reference to the element at logical index.

Source

pub const fn get_prim(&self, index: u8) -> Result<Option<&T>, InvalidValue>

Primitive-index variant of get.

Source

pub const fn get_mut( &mut self, index: NonValueU8<{ u8::MAX }>, ) -> Option<&mut T>

Returns an exclusive reference to the element at logical index.

Source

pub const fn get_mut_prim( &mut self, index: u8, ) -> Result<Option<&mut T>, InvalidValue>

Primitive-index variant of get_mut.

Source

pub fn swap_remove(&mut self, index: NonValueU8<{ u8::MAX }>) -> Option<T>

Removes and returns the value at logical index, filling the gap with the logical back element.

Decrements len. Does not preserve order.

Source

pub fn swap_remove_prim(&mut self, index: u8) -> Result<Option<T>, InvalidValue>

Primitive-index variant of swap_remove.

Source

pub const fn swap_remove_copy( &mut self, index: NonValueU8<{ u8::MAX }>, ) -> Option<T>
where T: Copy,

Removes and returns a copy of the value at logical index, filling the gap with the logical back element.

Decrements len. Does not preserve order.

Source

pub fn swap_remove_copy_prim( &mut self, index: u8, ) -> Result<Option<T>, InvalidValue>
where T: Copy,

Primitive-index variant of swap_remove_copy.

Source

pub fn as_slices(&self) -> (&[Option<T>], &[Option<T>])

Returns the active logical range as two option slices.

The first slice starts at head. The second slice is non-empty only when the active range wraps around the end of storage.

Source

pub fn as_mut_slices(&mut self) -> (&mut [Option<T>], &mut [Option<T>])

Returns the active logical range as two mutable option slices.

The first slice starts at head. The second slice is non-empty only when the active range wraps around the end of storage.

Source

pub fn iter(&self) -> impl Iterator<Item = &T>

Iterates over the initialized elements in logical order.

Source

pub fn iter_mut(&mut self) -> impl Iterator<Item = &mut T>

Iterates mutably over the initialized elements in logical order.

Source

pub fn visit_each<F>(&self, f: F)
where for<'v> F: Fn(&'v T),

Visits each initialized element without exposing borrow identity.

Source

pub fn visit_each_mut<F>(&mut self, f: F)
where for<'v> F: Fn(&'v mut T),

Visits each initialized element mutably without exposing borrow identity.

Source

pub fn visit_slices<F, R>(&self, f: F) -> R
where for<'v> F: FnOnce(&'v [Option<T>], &'v [Option<T>]) -> R,

Visits the active logical range as two shared option slices.

Source

pub fn visit_mut_slices<F, R>(&mut self, f: F) -> R
where for<'v> F: FnOnce(&'v mut [Option<T>], &'v mut [Option<T>]) -> R,

Visits the active logical range as two exclusive option slices.

Trait Implementations§

Source§

impl<T: Clone, S: Clone> Clone for BufferRingStaticExample<T, S>

Source§

fn clone(&self) -> BufferRingStaticExample<T, S>

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<T: Copy, S: Copy> Copy for BufferRingStaticExample<T, S>

Source§

impl<T: Debug, S: Debug> Debug for BufferRingStaticExample<T, S>

Source§

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

Formats the value using the given formatter. Read more
Source§

impl<T, const CAP: usize> Default for BufferRingStaticExample<T, [Option<T>; CAP]>

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl<T: Eq, S: Eq> Eq for BufferRingStaticExample<T, S>

Source§

impl<T: Hash, S: Hash> Hash for BufferRingStaticExample<T, S>

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl<T: Ord, S: Ord> Ord for BufferRingStaticExample<T, S>

Source§

fn cmp(&self, other: &BufferRingStaticExample<T, S>) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 (const: unstable) · Source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 (const: unstable) · Source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 (const: unstable) · Source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized,

Restrict a value to a certain interval. Read more
Source§

impl<T: PartialEq, S: PartialEq> PartialEq for BufferRingStaticExample<T, S>

Source§

fn eq(&self, other: &BufferRingStaticExample<T, S>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<T: PartialOrd, S: PartialOrd> PartialOrd for BufferRingStaticExample<T, S>

Source§

fn partial_cmp(&self, other: &BufferRingStaticExample<T, S>) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 (const: unstable) · Source§

fn lt(&self, other: &Rhs) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 (const: unstable) · Source§

fn le(&self, other: &Rhs) -> bool

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 (const: unstable) · Source§

fn gt(&self, other: &Rhs) -> bool

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 (const: unstable) · Source§

fn ge(&self, other: &Rhs) -> bool

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
Source§

impl<T, S> StructuralPartialEq for BufferRingStaticExample<T, S>

Auto Trait Implementations§

§

impl<T, S> Freeze for BufferRingStaticExample<T, S>
where S: Freeze,

§

impl<T, S> RefUnwindSafe for BufferRingStaticExample<T, S>

§

impl<T, S> Send for BufferRingStaticExample<T, S>
where S: Send, T: Send,

§

impl<T, S> Sync for BufferRingStaticExample<T, S>
where S: Sync, T: Sync,

§

impl<T, S> Unpin for BufferRingStaticExample<T, S>
where S: Unpin, T: Unpin,

§

impl<T, S> UnsafeUnpin for BufferRingStaticExample<T, S>
where S: UnsafeUnpin,

§

impl<T, S> UnwindSafe for BufferRingStaticExample<T, S>
where S: UnwindSafe, T: 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> AnyExt for T
where T: Any + ?Sized,

Source§

fn type_id() -> TypeId

Returns the TypeId of Self. Read more
Source§

fn type_of(&self) -> TypeId

Returns the TypeId of self. Read more
Source§

fn type_name(&self) -> &'static str

Returns the type name of self. Read more
Source§

fn type_is<T: 'static>(&self) -> bool

Returns true if Self is of type T. Read more
Source§

fn type_hash(&self) -> u64

Returns a deterministic hash of the TypeId of Self.
Source§

fn type_hash_with<H: Hasher>(&self, hasher: H) -> u64

Returns a deterministic hash of the TypeId of Self using a custom hasher.
Source§

fn as_any_ref(&self) -> &dyn Any
where Self: Sized,

Upcasts &self as &dyn Any. Read more
Source§

fn as_any_mut(&mut self) -> &mut dyn Any
where Self: Sized,

Upcasts &mut self as &mut dyn Any. Read more
Source§

fn as_any_box(self: Box<Self>) -> Box<dyn Any>
where Self: Sized,

Available on crate feature alloc only.
Upcasts Box<self> as Box<dyn Any>. Read more
Source§

fn downcast_ref<T: 'static>(&self) -> Option<&T>

Available on crate feature unsafe_layout and non-crate feature safe_code only.
Returns some shared reference to the inner value if it is of type T. Read more
Source§

fn downcast_mut<T: 'static>(&mut self) -> Option<&mut T>

Available on crate feature unsafe_layout and non-crate feature safe_code only.
Returns some exclusive reference to the inner value if it is of type T. 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> ByteSized for T

Source§

const BYTE_ALIGN: usize = _

The alignment of this type in bytes.
Source§

const BYTE_SIZE: usize = _

The size of this type in bytes.
Source§

fn byte_align(&self) -> usize

Returns the alignment of this type in bytes.
Source§

fn byte_size(&self) -> usize

Returns the size of this type in bytes. Read more
Source§

fn ptr_size_ratio(&self) -> [usize; 2]

Returns the size ratio between Ptr::BYTES and BYTE_SIZE. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Hook for T

Source§

fn hook<F>(self, f: F) -> Self
where F: FnOnce(&mut Self),

Hooks a mutation step into the value and returns it. Read more
Source§

fn tap<F>(self, f: F) -> Self
where F: FnOnce(&Self),

Taps into the value for observation and returns it unchanged. Read more
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> MemExt for T
where T: ?Sized,

Source§

const NEEDS_DROP: bool = _

Know whether dropping values of this type matters, in compile-time.
Source§

fn mem_align_of<T>() -> usize

Returns the minimum alignment of the type in bytes. Read more
Source§

fn mem_align_of_val(&self) -> usize

Returns the alignment of the pointed-to value in bytes. Read more
Source§

fn mem_size_of<T>() -> usize

Returns the size of a type in bytes. Read more
Source§

fn mem_size_of_val(&self) -> usize

Returns the size of the pointed-to value in bytes. Read more
Source§

fn mem_copy(&self) -> Self
where Self: Copy,

Bitwise-copies a value. Read more
Source§

fn mem_needs_drop(&self) -> bool

Returns true if dropping values of this type matters. Read more
Source§

fn mem_drop(self)
where Self: Sized,

Drops self by running its destructor. Read more
Source§

fn mem_forget(self)
where Self: Sized,

Forgets about self without running its destructor. Read more
Source§

fn mem_replace(&mut self, other: Self) -> Self
where Self: Sized,

Replaces self with other, returning the previous value of self. Read more
Source§

fn mem_take(&mut self) -> Self
where Self: Default,

Replaces self with its default value, returning the previous value of self. Read more
Source§

fn mem_swap(&mut self, other: &mut Self)
where Self: Sized,

Swaps the value of self and other without deinitializing either one. Read more
Source§

unsafe fn mem_zeroed<T>() -> T

Available on crate feature unsafe_layout only.
Returns the value of type T represented by the all-zero byte-pattern. Read more
Source§

unsafe fn mem_transmute_copy<Src, Dst>(src: &Src) -> Dst

Available on crate feature unsafe_layout only.
Returns the value of type T represented by the all-zero byte-pattern. Read more
Source§

fn mem_as_bytes(&self) -> &[u8]
where Self: Sync + Unpin,

Available on crate feature unsafe_slice only.
View a Sync + Unpin self as &[u8]. Read more
Source§

fn mem_as_bytes_mut(&mut self) -> &mut [u8]
where Self: Sync + Unpin,

Available on crate feature unsafe_slice only.
View a Sync + Unpin self as &mut [u8]. Read more
Source§

impl<T, R> Morph<R> for T
where T: ?Sized,

Source§

fn morph<F>(self, f: F) -> R
where F: FnOnce(Self) -> R, Self: Sized,

Morphs the value into a new one and returns it. Read more
Source§

fn morph_ref<F>(&self, f: F) -> R
where F: FnOnce(&Self) -> R,

Morphs the value by shared reference and returns the result. Read more
Source§

fn morph_mut<F>(&mut self, f: F) -> R
where F: FnOnce(&mut Self) -> R,

Morphs the value by exclusive reference and returns the result. Read more
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. 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.