Struct bitvec::indices::BitPos [−][src]
Indicates a real electrical index within an element.
This type is produced by BitOrder
implementors, and marks a specific
electrical bit within a memory element, rather than BitIdx
’s semantic bit.
Type Parameters
Implementations
impl<T> BitPos<T> where
T: BitStore,
[src]
T: BitStore,
pub fn new(pos: u8) -> Self
[src]
Produce a new bit position marker at a valid position value.
BitOrder
implementations should prefer this method, but may use
::new_unchecked
if they can guarantee that the range invariant is
upheld.
Parameters
pos
: The bit position value to encode. It must be in the range0 .. T::BITS
.
Panics
This function panics if pos
is greater than or equal to T::BITS
.
pub unsafe fn new_unchecked(pos: u8) -> Self
[src]
Produce a new bit position marker at any position value.
Safety
The caller must ensure that pos
is less than T::BITS
. BitOrder
implementations should prefer ::new
, which panics on range failure.
Parameters
pos
: The bit position value to encode. This must be in the range0 .. T::BITS
.
Returns
pos
wrapped in the BitPos
marker type.
Panics
This function panics if pos
is greater than or equal to T::BITS
, but
only in debug builds. It does not inspect pos
in release builds.
Methods from Deref<Target = u8>
pub const MIN: u8
1.43.0[src]
pub const MAX: u8
1.43.0[src]
pub const BITS: u32
[src]
pub fn as_ne_bytes(&self) -> &[u8; 1]
[src]
num_as_ne_bytes
)Return the memory representation of this integer as a byte array in native byte order.
to_ne_bytes
should be preferred over this whenever possible.
Examples
#![feature(num_as_ne_bytes)] let num = 0x12u8; let bytes = num.as_ne_bytes(); assert_eq!( bytes, if cfg!(target_endian = "big") { &[0x12] } else { &[0x12] } );
pub const fn is_ascii(&self) -> bool
1.23.0 (const: 1.43.0)[src]
Checks if the value is within the ASCII range.
Examples
let ascii = 97u8; let non_ascii = 150u8; assert!(ascii.is_ascii()); assert!(!non_ascii.is_ascii());
pub const fn to_ascii_uppercase(&self) -> u8
1.23.0 (const: 1.52.0)[src]
Makes a copy of the value in its ASCII upper case equivalent.
ASCII letters ‘a’ to ‘z’ are mapped to ‘A’ to ‘Z’, but non-ASCII letters are unchanged.
To uppercase the value in-place, use make_ascii_uppercase
.
Examples
let lowercase_a = 97u8; assert_eq!(65, lowercase_a.to_ascii_uppercase());
pub const fn to_ascii_lowercase(&self) -> u8
1.23.0 (const: 1.52.0)[src]
Makes a copy of the value in its ASCII lower case equivalent.
ASCII letters ‘A’ to ‘Z’ are mapped to ‘a’ to ‘z’, but non-ASCII letters are unchanged.
To lowercase the value in-place, use make_ascii_lowercase
.
Examples
let uppercase_a = 65u8; assert_eq!(97, uppercase_a.to_ascii_lowercase());
pub const fn eq_ignore_ascii_case(&self, other: &u8) -> bool
1.23.0 (const: 1.52.0)[src]
Checks that two values are an ASCII case-insensitive match.
This is equivalent to to_ascii_lowercase(a) == to_ascii_lowercase(b)
.
Examples
let lowercase_a = 97u8; let uppercase_a = 65u8; assert!(lowercase_a.eq_ignore_ascii_case(&uppercase_a));
pub const fn is_ascii_alphabetic(&self) -> bool
1.24.0 (const: 1.47.0)[src]
Checks if the value is an ASCII alphabetic character:
- U+0041 ‘A’ ..= U+005A ‘Z’, or
- U+0061 ‘a’ ..= U+007A ‘z’.
Examples
let uppercase_a = b'A'; let uppercase_g = b'G'; let a = b'a'; let g = b'g'; let zero = b'0'; let percent = b'%'; let space = b' '; let lf = b'\n'; let esc = 0x1b_u8; assert!(uppercase_a.is_ascii_alphabetic()); assert!(uppercase_g.is_ascii_alphabetic()); assert!(a.is_ascii_alphabetic()); assert!(g.is_ascii_alphabetic()); assert!(!zero.is_ascii_alphabetic()); assert!(!percent.is_ascii_alphabetic()); assert!(!space.is_ascii_alphabetic()); assert!(!lf.is_ascii_alphabetic()); assert!(!esc.is_ascii_alphabetic());
pub const fn is_ascii_uppercase(&self) -> bool
1.24.0 (const: 1.47.0)[src]
Checks if the value is an ASCII uppercase character: U+0041 ‘A’ ..= U+005A ‘Z’.
Examples
let uppercase_a = b'A'; let uppercase_g = b'G'; let a = b'a'; let g = b'g'; let zero = b'0'; let percent = b'%'; let space = b' '; let lf = b'\n'; let esc = 0x1b_u8; assert!(uppercase_a.is_ascii_uppercase()); assert!(uppercase_g.is_ascii_uppercase()); assert!(!a.is_ascii_uppercase()); assert!(!g.is_ascii_uppercase()); assert!(!zero.is_ascii_uppercase()); assert!(!percent.is_ascii_uppercase()); assert!(!space.is_ascii_uppercase()); assert!(!lf.is_ascii_uppercase()); assert!(!esc.is_ascii_uppercase());
pub const fn is_ascii_lowercase(&self) -> bool
1.24.0 (const: 1.47.0)[src]
Checks if the value is an ASCII lowercase character: U+0061 ‘a’ ..= U+007A ‘z’.
Examples
let uppercase_a = b'A'; let uppercase_g = b'G'; let a = b'a'; let g = b'g'; let zero = b'0'; let percent = b'%'; let space = b' '; let lf = b'\n'; let esc = 0x1b_u8; assert!(!uppercase_a.is_ascii_lowercase()); assert!(!uppercase_g.is_ascii_lowercase()); assert!(a.is_ascii_lowercase()); assert!(g.is_ascii_lowercase()); assert!(!zero.is_ascii_lowercase()); assert!(!percent.is_ascii_lowercase()); assert!(!space.is_ascii_lowercase()); assert!(!lf.is_ascii_lowercase()); assert!(!esc.is_ascii_lowercase());
pub const fn is_ascii_alphanumeric(&self) -> bool
1.24.0 (const: 1.47.0)[src]
Checks if the value is an ASCII alphanumeric character:
- U+0041 ‘A’ ..= U+005A ‘Z’, or
- U+0061 ‘a’ ..= U+007A ‘z’, or
- U+0030 ‘0’ ..= U+0039 ‘9’.
Examples
let uppercase_a = b'A'; let uppercase_g = b'G'; let a = b'a'; let g = b'g'; let zero = b'0'; let percent = b'%'; let space = b' '; let lf = b'\n'; let esc = 0x1b_u8; assert!(uppercase_a.is_ascii_alphanumeric()); assert!(uppercase_g.is_ascii_alphanumeric()); assert!(a.is_ascii_alphanumeric()); assert!(g.is_ascii_alphanumeric()); assert!(zero.is_ascii_alphanumeric()); assert!(!percent.is_ascii_alphanumeric()); assert!(!space.is_ascii_alphanumeric()); assert!(!lf.is_ascii_alphanumeric()); assert!(!esc.is_ascii_alphanumeric());
pub const fn is_ascii_digit(&self) -> bool
1.24.0 (const: 1.47.0)[src]
Checks if the value is an ASCII decimal digit: U+0030 ‘0’ ..= U+0039 ‘9’.
Examples
let uppercase_a = b'A'; let uppercase_g = b'G'; let a = b'a'; let g = b'g'; let zero = b'0'; let percent = b'%'; let space = b' '; let lf = b'\n'; let esc = 0x1b_u8; assert!(!uppercase_a.is_ascii_digit()); assert!(!uppercase_g.is_ascii_digit()); assert!(!a.is_ascii_digit()); assert!(!g.is_ascii_digit()); assert!(zero.is_ascii_digit()); assert!(!percent.is_ascii_digit()); assert!(!space.is_ascii_digit()); assert!(!lf.is_ascii_digit()); assert!(!esc.is_ascii_digit());
pub const fn is_ascii_hexdigit(&self) -> bool
1.24.0 (const: 1.47.0)[src]
Checks if the value is an ASCII hexadecimal digit:
- U+0030 ‘0’ ..= U+0039 ‘9’, or
- U+0041 ‘A’ ..= U+0046 ‘F’, or
- U+0061 ‘a’ ..= U+0066 ‘f’.
Examples
let uppercase_a = b'A'; let uppercase_g = b'G'; let a = b'a'; let g = b'g'; let zero = b'0'; let percent = b'%'; let space = b' '; let lf = b'\n'; let esc = 0x1b_u8; assert!(uppercase_a.is_ascii_hexdigit()); assert!(!uppercase_g.is_ascii_hexdigit()); assert!(a.is_ascii_hexdigit()); assert!(!g.is_ascii_hexdigit()); assert!(zero.is_ascii_hexdigit()); assert!(!percent.is_ascii_hexdigit()); assert!(!space.is_ascii_hexdigit()); assert!(!lf.is_ascii_hexdigit()); assert!(!esc.is_ascii_hexdigit());
pub const fn is_ascii_punctuation(&self) -> bool
1.24.0 (const: 1.47.0)[src]
Checks if the value is an ASCII punctuation character:
- U+0021 ..= U+002F
! " # $ % & ' ( ) * + , - . /
, or - U+003A ..= U+0040
: ; < = > ? @
, or - U+005B ..= U+0060
[ \ ] ^ _ `
, or - U+007B ..= U+007E
{ | } ~
Examples
let uppercase_a = b'A'; let uppercase_g = b'G'; let a = b'a'; let g = b'g'; let zero = b'0'; let percent = b'%'; let space = b' '; let lf = b'\n'; let esc = 0x1b_u8; assert!(!uppercase_a.is_ascii_punctuation()); assert!(!uppercase_g.is_ascii_punctuation()); assert!(!a.is_ascii_punctuation()); assert!(!g.is_ascii_punctuation()); assert!(!zero.is_ascii_punctuation()); assert!(percent.is_ascii_punctuation()); assert!(!space.is_ascii_punctuation()); assert!(!lf.is_ascii_punctuation()); assert!(!esc.is_ascii_punctuation());
pub const fn is_ascii_graphic(&self) -> bool
1.24.0 (const: 1.47.0)[src]
Checks if the value is an ASCII graphic character: U+0021 ‘!’ ..= U+007E ‘~’.
Examples
let uppercase_a = b'A'; let uppercase_g = b'G'; let a = b'a'; let g = b'g'; let zero = b'0'; let percent = b'%'; let space = b' '; let lf = b'\n'; let esc = 0x1b_u8; assert!(uppercase_a.is_ascii_graphic()); assert!(uppercase_g.is_ascii_graphic()); assert!(a.is_ascii_graphic()); assert!(g.is_ascii_graphic()); assert!(zero.is_ascii_graphic()); assert!(percent.is_ascii_graphic()); assert!(!space.is_ascii_graphic()); assert!(!lf.is_ascii_graphic()); assert!(!esc.is_ascii_graphic());
pub const fn is_ascii_whitespace(&self) -> bool
1.24.0 (const: 1.47.0)[src]
Checks if the value is an ASCII whitespace character: U+0020 SPACE, U+0009 HORIZONTAL TAB, U+000A LINE FEED, U+000C FORM FEED, or U+000D CARRIAGE RETURN.
Rust uses the WhatWG Infra Standard’s definition of ASCII whitespace. There are several other definitions in wide use. For instance, the POSIX locale includes U+000B VERTICAL TAB as well as all the above characters, but—from the very same specification—the default rule for “field splitting” in the Bourne shell considers only SPACE, HORIZONTAL TAB, and LINE FEED as whitespace.
If you are writing a program that will process an existing file format, check what that format’s definition of whitespace is before using this function.
Examples
let uppercase_a = b'A'; let uppercase_g = b'G'; let a = b'a'; let g = b'g'; let zero = b'0'; let percent = b'%'; let space = b' '; let lf = b'\n'; let esc = 0x1b_u8; assert!(!uppercase_a.is_ascii_whitespace()); assert!(!uppercase_g.is_ascii_whitespace()); assert!(!a.is_ascii_whitespace()); assert!(!g.is_ascii_whitespace()); assert!(!zero.is_ascii_whitespace()); assert!(!percent.is_ascii_whitespace()); assert!(space.is_ascii_whitespace()); assert!(lf.is_ascii_whitespace()); assert!(!esc.is_ascii_whitespace());
pub const fn is_ascii_control(&self) -> bool
1.24.0 (const: 1.47.0)[src]
Checks if the value is an ASCII control character: U+0000 NUL ..= U+001F UNIT SEPARATOR, or U+007F DELETE. Note that most ASCII whitespace characters are control characters, but SPACE is not.
Examples
let uppercase_a = b'A'; let uppercase_g = b'G'; let a = b'a'; let g = b'g'; let zero = b'0'; let percent = b'%'; let space = b' '; let lf = b'\n'; let esc = 0x1b_u8; assert!(!uppercase_a.is_ascii_control()); assert!(!uppercase_g.is_ascii_control()); assert!(!a.is_ascii_control()); assert!(!g.is_ascii_control()); assert!(!zero.is_ascii_control()); assert!(!percent.is_ascii_control()); assert!(!space.is_ascii_control()); assert!(lf.is_ascii_control()); assert!(esc.is_ascii_control());
Trait Implementations
impl<T: Clone> Clone for BitPos<T> where
T: BitStore,
[src]
T: BitStore,
impl<T: Copy> Copy for BitPos<T> where
T: BitStore,
[src]
T: BitStore,
impl<T: Debug> Debug for BitPos<T> where
T: BitStore,
[src]
T: BitStore,
impl<T: Default> Default for BitPos<T> where
T: BitStore,
[src]
T: BitStore,
impl<T> Deref for BitPos<T> where
T: BitStore,
[src]
T: BitStore,
impl<T: Eq> Eq for BitPos<T> where
T: BitStore,
[src]
T: BitStore,
impl<T: Hash> Hash for BitPos<T> where
T: BitStore,
[src]
T: BitStore,
fn hash<__H: Hasher>(&self, state: &mut __H)
[src]
pub fn hash_slice<H>(data: &[Self], state: &mut H) where
H: Hasher,
1.3.0[src]
H: Hasher,
impl<T: Ord> Ord for BitPos<T> where
T: BitStore,
[src]
T: BitStore,
fn cmp(&self, other: &BitPos<T>) -> Ordering
[src]
#[must_use]pub fn max(self, other: Self) -> Self
1.21.0[src]
#[must_use]pub fn min(self, other: Self) -> Self
1.21.0[src]
#[must_use]pub fn clamp(self, min: Self, max: Self) -> Self
1.50.0[src]
impl<T: PartialEq> PartialEq<BitPos<T>> for BitPos<T> where
T: BitStore,
[src]
T: BitStore,
impl<T: PartialOrd> PartialOrd<BitPos<T>> for BitPos<T> where
T: BitStore,
[src]
T: BitStore,
fn partial_cmp(&self, other: &BitPos<T>) -> Option<Ordering>
[src]
#[must_use]pub fn lt(&self, other: &Rhs) -> bool
1.0.0[src]
#[must_use]pub fn le(&self, other: &Rhs) -> bool
1.0.0[src]
#[must_use]pub fn gt(&self, other: &Rhs) -> bool
1.0.0[src]
#[must_use]pub fn ge(&self, other: &Rhs) -> bool
1.0.0[src]
impl<T> StructuralEq for BitPos<T> where
T: BitStore,
[src]
T: BitStore,
impl<T> StructuralPartialEq for BitPos<T> where
T: BitStore,
[src]
T: BitStore,
Auto Trait Implementations
impl<T> RefUnwindSafe for BitPos<T> where
T: RefUnwindSafe,
T: RefUnwindSafe,
impl<T> Send for BitPos<T>
impl<T> Sync for BitPos<T>
impl<T> Unpin for BitPos<T> where
T: Unpin,
T: Unpin,
impl<T> UnwindSafe for BitPos<T> where
T: UnwindSafe,
T: UnwindSafe,
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,