RangePattern

Trait RangePattern 

pub trait RangePattern {
    const MIN: Self;
    const MAX: Self;

    // Required method
    fn sub_one(self) -> Self;
}
🔬This is a nightly-only experimental API. (pattern_type_range_trait)
Expand description

A trait implemented for integer types and char. Useful in the future for generic pattern types, but used right now to simplify ast lowering of pattern type ranges.

Required Associated Constants§

const MIN: Self

🔬This is a nightly-only experimental API. (pattern_type_range_trait)

Trait version of the inherent MIN assoc const.

const MAX: Self

🔬This is a nightly-only experimental API. (pattern_type_range_trait)

Trait version of the inherent MIN assoc const.

Required Methods§

fn sub_one(self) -> Self

🔬This is a nightly-only experimental API. (pattern_type_range_trait)

A compile-time helper to subtract 1 for exclusive ranges.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

§

impl RangePattern for char

§

const MIN: char = '\0'

§

const MAX: char = '\u{10ffff}'

§

impl RangePattern for i8

§

const MIN: i8 = -128i8

§

const MAX: i8 = 127i8

§

impl RangePattern for i16

§

const MIN: i16 = -32_768i16

§

const MAX: i16 = 32_767i16

§

impl RangePattern for i32

§

const MIN: i32 = -2_147_483_648i32

§

const MAX: i32 = 2_147_483_647i32

§

impl RangePattern for i64

§

const MIN: i64 = -9_223_372_036_854_775_808i64

§

const MAX: i64 = 9_223_372_036_854_775_807i64

§

impl RangePattern for i128

§

const MIN: i128 = -170_141_183_460_469_231_731_687_303_715_884_105_728i128

§

const MAX: i128 = 170_141_183_460_469_231_731_687_303_715_884_105_727i128

§

impl RangePattern for isize

§

const MIN: isize = -9_223_372_036_854_775_808isize

§

const MAX: isize = 9_223_372_036_854_775_807isize

§

impl RangePattern for u8

§

const MIN: u8 = 0u8

§

const MAX: u8 = 255u8

§

impl RangePattern for u16

§

const MIN: u16 = 0u16

§

const MAX: u16 = 65_535u16

§

impl RangePattern for u32

§

const MIN: u32 = 0u32

§

const MAX: u32 = 4_294_967_295u32

§

impl RangePattern for u64

§

const MIN: u64 = 0u64

§

const MAX: u64 = 18_446_744_073_709_551_615u64

§

impl RangePattern for u128

§

const MIN: u128 = 0u128

§

const MAX: u128 = 340_282_366_920_938_463_463_374_607_431_768_211_455u128

§

impl RangePattern for usize

§

const MIN: usize = 0usize

§

const MAX: usize = 18_446_744_073_709_551_615usize