Function constmuck::contiguous::into_integer[][src]

pub const fn into_integer<T, IntRepr>(
    value: T,
    _bounds: ImplsContiguous<T, IntRepr>
) -> IntRepr
Expand description

Converts value: T into IntRepr (its integer representation).

Requires that T implements Contiguous<Int = IntRepr>

Example

use constmuck::{Contiguous, contiguous, infer};

#[repr(i8)]
#[derive(Debug, PartialEq, Copy, Clone)]
enum Order {
    FrontToBack = 10,
    BackToFront = 11,
    RightToLeft = 12,
    LeftToRight = 13,
}

unsafe impl Contiguous for Order {
   type Int = i8;

   const MIN_VALUE: i8 = 10;
   const MAX_VALUE: i8 = 13;
}


const FTB: i8 = contiguous::into_integer(Order::FrontToBack, infer!());
assert_eq!(FTB, 10);

const BTF: i8 = contiguous::into_integer(Order::BackToFront, infer!());
assert_eq!(BTF, 11);

const RTL: i8 = contiguous::into_integer(Order::RightToLeft, infer!());
assert_eq!(RTL, 12);

const LTR: i8 = contiguous::into_integer(Order::LeftToRight, infer!());
assert_eq!(LTR, 13);