Skip to main content

NumExt

Trait NumExt 

Source
pub trait NumExt {
    // Required methods
    fn leading_zeros_logic(self) -> u32;
    fn trailing_zeros_logic(self) -> u32;
    fn leading_ones_logic(self) -> u32;
    fn trailing_ones_logic(self) -> u32;
}

Required Methods§

Source

fn leading_zeros_logic(self) -> u32

logic

Source

fn trailing_zeros_logic(self) -> u32

logic

Source

fn leading_ones_logic(self) -> u32

logic

Source

fn trailing_ones_logic(self) -> u32

logic

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl NumExt for u8

Source§

fn leading_zeros_logic(self) -> u32

logic(opaque)

ensures

result <= $type::BITS

ensures

(result != $type::BITS) == (self >> ($type::BITS - result - 1u32) == $one)

ensures

(result == $type::BITS) == (self == $zero)

Source§

fn trailing_zeros_logic(self) -> u32

logic(opaque)

ensures

result <= $type::BITS

ensures

(result != $type::BITS) == (self << ($type::BITS - result - 1u32) == $one << ($type::BITS - 1u32))

ensures

(result == $type::BITS) == (self == $zero)

Source§

fn leading_ones_logic(self) -> u32

logic(opaque)

ensures

result <= $type::BITS

ensures

(result != $type::BITS) == (!self >> ($type::BITS - result - 1u32) == $zero)

ensures

(result == $type::BITS) == (self == $type::MAX)

Source§

fn trailing_ones_logic(self) -> u32

logic(opaque)

ensures

result <= $type::BITS

ensures

(result == $type::BITS) == (!self << ($type::BITS - result - 1u32) == $one << ($type::BITS - 1u32))

ensures

(result == $type::BITS) == (self == $type::MAX)

Source§

impl NumExt for u16

Source§

fn leading_zeros_logic(self) -> u32

logic(opaque)

ensures

result <= $type::BITS

ensures

(result != $type::BITS) == (self >> ($type::BITS - result - 1u32) == $one)

ensures

(result == $type::BITS) == (self == $zero)

Source§

fn trailing_zeros_logic(self) -> u32

logic(opaque)

ensures

result <= $type::BITS

ensures

(result != $type::BITS) == (self << ($type::BITS - result - 1u32) == $one << ($type::BITS - 1u32))

ensures

(result == $type::BITS) == (self == $zero)

Source§

fn leading_ones_logic(self) -> u32

logic(opaque)

ensures

result <= $type::BITS

ensures

(result != $type::BITS) == (!self >> ($type::BITS - result - 1u32) == $zero)

ensures

(result == $type::BITS) == (self == $type::MAX)

Source§

fn trailing_ones_logic(self) -> u32

logic(opaque)

ensures

result <= $type::BITS

ensures

(result == $type::BITS) == (!self << ($type::BITS - result - 1u32) == $one << ($type::BITS - 1u32))

ensures

(result == $type::BITS) == (self == $type::MAX)

Source§

impl NumExt for u32

Source§

fn leading_zeros_logic(self) -> u32

logic(opaque)

ensures

result <= $type::BITS

ensures

(result != $type::BITS) == (self >> ($type::BITS - result - 1u32) == $one)

ensures

(result == $type::BITS) == (self == $zero)

Source§

fn trailing_zeros_logic(self) -> u32

logic(opaque)

ensures

result <= $type::BITS

ensures

(result != $type::BITS) == (self << ($type::BITS - result - 1u32) == $one << ($type::BITS - 1u32))

ensures

(result == $type::BITS) == (self == $zero)

Source§

fn leading_ones_logic(self) -> u32

logic(opaque)

ensures

result <= $type::BITS

ensures

(result != $type::BITS) == (!self >> ($type::BITS - result - 1u32) == $zero)

ensures

(result == $type::BITS) == (self == $type::MAX)

Source§

fn trailing_ones_logic(self) -> u32

logic(opaque)

ensures

result <= $type::BITS

ensures

(result == $type::BITS) == (!self << ($type::BITS - result - 1u32) == $one << ($type::BITS - 1u32))

ensures

(result == $type::BITS) == (self == $type::MAX)

Source§

impl NumExt for u64

Source§

fn leading_zeros_logic(self) -> u32

logic(opaque)

ensures

result <= $type::BITS

ensures

(result != $type::BITS) == (self >> ($type::BITS - result - 1u32) == $one)

ensures

(result == $type::BITS) == (self == $zero)

Source§

fn trailing_zeros_logic(self) -> u32

logic(opaque)

ensures

result <= $type::BITS

ensures

(result != $type::BITS) == (self << ($type::BITS - result - 1u32) == $one << ($type::BITS - 1u32))

ensures

(result == $type::BITS) == (self == $zero)

Source§

fn leading_ones_logic(self) -> u32

logic(opaque)

ensures

result <= $type::BITS

ensures

(result != $type::BITS) == (!self >> ($type::BITS - result - 1u32) == $zero)

ensures

(result == $type::BITS) == (self == $type::MAX)

Source§

fn trailing_ones_logic(self) -> u32

logic(opaque)

ensures

result <= $type::BITS

ensures

(result == $type::BITS) == (!self << ($type::BITS - result - 1u32) == $one << ($type::BITS - 1u32))

ensures

(result == $type::BITS) == (self == $type::MAX)

Source§

impl NumExt for u128

Source§

fn leading_zeros_logic(self) -> u32

logic(opaque)

ensures

result <= $type::BITS

ensures

(result != $type::BITS) == (self >> ($type::BITS - result - 1u32) == $one)

ensures

(result == $type::BITS) == (self == $zero)

Source§

fn trailing_zeros_logic(self) -> u32

logic(opaque)

ensures

result <= $type::BITS

ensures

(result != $type::BITS) == (self << ($type::BITS - result - 1u32) == $one << ($type::BITS - 1u32))

ensures

(result == $type::BITS) == (self == $zero)

Source§

fn leading_ones_logic(self) -> u32

logic(opaque)

ensures

result <= $type::BITS

ensures

(result != $type::BITS) == (!self >> ($type::BITS - result - 1u32) == $zero)

ensures

(result == $type::BITS) == (self == $type::MAX)

Source§

fn trailing_ones_logic(self) -> u32

logic(opaque)

ensures

result <= $type::BITS

ensures

(result == $type::BITS) == (!self << ($type::BITS - result - 1u32) == $one << ($type::BITS - 1u32))

ensures

(result == $type::BITS) == (self == $type::MAX)

Source§

impl NumExt for usize

Source§

fn leading_zeros_logic(self) -> u32

logic(opaque)

ensures

result <= $type::BITS

ensures

(result != $type::BITS) == (self >> ($type::BITS - result - 1u32) == $one)

ensures

(result == $type::BITS) == (self == $zero)

Source§

fn trailing_zeros_logic(self) -> u32

logic(opaque)

ensures

result <= $type::BITS

ensures

(result != $type::BITS) == (self << ($type::BITS - result - 1u32) == $one << ($type::BITS - 1u32))

ensures

(result == $type::BITS) == (self == $zero)

Source§

fn leading_ones_logic(self) -> u32

logic(opaque)

ensures

result <= $type::BITS

ensures

(result != $type::BITS) == (!self >> ($type::BITS - result - 1u32) == $zero)

ensures

(result == $type::BITS) == (self == $type::MAX)

Source§

fn trailing_ones_logic(self) -> u32

logic(opaque)

ensures

result <= $type::BITS

ensures

(result == $type::BITS) == (!self << ($type::BITS - result - 1u32) == $one << ($type::BITS - 1u32))

ensures

(result == $type::BITS) == (self == $type::MAX)

Implementors§