pub trait Idx: Copy + Add<Output = Self> + AddAssign + Sub<Output = Self> + Div<Output = Self> + Mul<Output = Self> + Ord + Debug + Send + Sum + Sync + Sized + 'static {
type RangeIter: Iterator<Item = Self>;
type RangeInclusiveIter: Iterator<Item = Self>;
// Required methods
fn new(idx: usize) -> Self;
fn zero() -> Self;
fn index(self) -> usize;
fn range(self, end: Self) -> Self::RangeIter;
fn range_inclusive(self, end: Self) -> Self::RangeInclusiveIter;
fn parse(bytes: &[u8]) -> (Self, usize);
fn fetch_add(this: &Atomic<Self>, val: Self, order: Ordering) -> Self;
// Provided method
fn get_and_increment(this: &Atomic<Self>, order: Ordering) -> Self { ... }
}
Required Associated Types§
Required Methods§
fn new(idx: usize) -> Self
fn zero() -> Self
fn index(self) -> usize
fn range(self, end: Self) -> Self::RangeIter
fn range_inclusive(self, end: Self) -> Self::RangeInclusiveIter
fn parse(bytes: &[u8]) -> (Self, usize)
fn fetch_add(this: &Atomic<Self>, val: Self, order: Ordering) -> Self
Provided Methods§
fn get_and_increment(this: &Atomic<Self>, order: Ordering) -> Self
Object Safety§
This trait is not object safe.