Trait graph::prelude::Idx

source ·
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§

source

type RangeIter: Iterator<Item = Self>

source

type RangeInclusiveIter: Iterator<Item = Self>

Required Methods§

source

fn new(idx: usize) -> Self

source

fn zero() -> Self

source

fn index(self) -> usize

source

fn range(self, end: Self) -> Self::RangeIter

source

fn range_inclusive(self, end: Self) -> Self::RangeInclusiveIter

source

fn parse(bytes: &[u8]) -> (Self, usize)

source

fn fetch_add(this: &Atomic<Self>, val: Self, order: Ordering) -> Self

Provided Methods§

source

fn get_and_increment(this: &Atomic<Self>, order: Ordering) -> Self

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl Idx for i8

source§

fn new(idx: usize) -> i8

source§

fn zero() -> i8

source§

fn index(self) -> usize

§

type RangeIter = Range<i8>

source§

fn range(self, end: i8) -> <i8 as Idx>::RangeIter

§

type RangeInclusiveIter = RangeInclusive<i8>

source§

fn range_inclusive(self, end: i8) -> <i8 as Idx>::RangeInclusiveIter

source§

fn parse(bytes: &[u8]) -> (i8, usize)

source§

fn fetch_add(this: &Atomic<i8>, val: i8, order: Ordering) -> i8

source§

impl Idx for i16

source§

fn new(idx: usize) -> i16

source§

fn zero() -> i16

source§

fn index(self) -> usize

§

type RangeIter = Range<i16>

source§

fn range(self, end: i16) -> <i16 as Idx>::RangeIter

§

type RangeInclusiveIter = RangeInclusive<i16>

source§

fn range_inclusive(self, end: i16) -> <i16 as Idx>::RangeInclusiveIter

source§

fn parse(bytes: &[u8]) -> (i16, usize)

source§

fn fetch_add(this: &Atomic<i16>, val: i16, order: Ordering) -> i16

source§

impl Idx for i32

source§

fn new(idx: usize) -> i32

source§

fn zero() -> i32

source§

fn index(self) -> usize

§

type RangeIter = Range<i32>

source§

fn range(self, end: i32) -> <i32 as Idx>::RangeIter

§

type RangeInclusiveIter = RangeInclusive<i32>

source§

fn range_inclusive(self, end: i32) -> <i32 as Idx>::RangeInclusiveIter

source§

fn parse(bytes: &[u8]) -> (i32, usize)

source§

fn fetch_add(this: &Atomic<i32>, val: i32, order: Ordering) -> i32

source§

impl Idx for i64

source§

fn new(idx: usize) -> i64

source§

fn zero() -> i64

source§

fn index(self) -> usize

§

type RangeIter = Range<i64>

source§

fn range(self, end: i64) -> <i64 as Idx>::RangeIter

§

type RangeInclusiveIter = RangeInclusive<i64>

source§

fn range_inclusive(self, end: i64) -> <i64 as Idx>::RangeInclusiveIter

source§

fn parse(bytes: &[u8]) -> (i64, usize)

source§

fn fetch_add(this: &Atomic<i64>, val: i64, order: Ordering) -> i64

source§

impl Idx for isize

source§

impl Idx for u8

source§

fn new(idx: usize) -> u8

source§

fn zero() -> u8

source§

fn index(self) -> usize

§

type RangeIter = Range<u8>

source§

fn range(self, end: u8) -> <u8 as Idx>::RangeIter

§

type RangeInclusiveIter = RangeInclusive<u8>

source§

fn range_inclusive(self, end: u8) -> <u8 as Idx>::RangeInclusiveIter

source§

fn parse(bytes: &[u8]) -> (u8, usize)

source§

fn fetch_add(this: &Atomic<u8>, val: u8, order: Ordering) -> u8

source§

impl Idx for u16

source§

fn new(idx: usize) -> u16

source§

fn zero() -> u16

source§

fn index(self) -> usize

§

type RangeIter = Range<u16>

source§

fn range(self, end: u16) -> <u16 as Idx>::RangeIter

§

type RangeInclusiveIter = RangeInclusive<u16>

source§

fn range_inclusive(self, end: u16) -> <u16 as Idx>::RangeInclusiveIter

source§

fn parse(bytes: &[u8]) -> (u16, usize)

source§

fn fetch_add(this: &Atomic<u16>, val: u16, order: Ordering) -> u16

source§

impl Idx for u32

source§

fn new(idx: usize) -> u32

source§

fn zero() -> u32

source§

fn index(self) -> usize

§

type RangeIter = Range<u32>

source§

fn range(self, end: u32) -> <u32 as Idx>::RangeIter

§

type RangeInclusiveIter = RangeInclusive<u32>

source§

fn range_inclusive(self, end: u32) -> <u32 as Idx>::RangeInclusiveIter

source§

fn parse(bytes: &[u8]) -> (u32, usize)

source§

fn fetch_add(this: &Atomic<u32>, val: u32, order: Ordering) -> u32

source§

impl Idx for u64

source§

fn new(idx: usize) -> u64

source§

fn zero() -> u64

source§

fn index(self) -> usize

§

type RangeIter = Range<u64>

source§

fn range(self, end: u64) -> <u64 as Idx>::RangeIter

§

type RangeInclusiveIter = RangeInclusive<u64>

source§

fn range_inclusive(self, end: u64) -> <u64 as Idx>::RangeInclusiveIter

source§

fn parse(bytes: &[u8]) -> (u64, usize)

source§

fn fetch_add(this: &Atomic<u64>, val: u64, order: Ordering) -> u64

source§

impl Idx for usize

Implementors§