Trait opendp::traits::cast::InfCast

source ·
pub trait InfCast<TI>: Sized {
    // Required methods
    fn inf_cast(v: TI) -> Fallible<Self>;
    fn neg_inf_cast(v: TI) -> Fallible<Self>;
}
Expand description

Fallible casting where the casted value rounds towards infinity.

This preserves the invariant that the casted value is gte the original value. For example, casting a 128_u8 to i8 doesn’t saturate to i8::MAX (127), it errors.

Required Methods§

source

fn inf_cast(v: TI) -> Fallible<Self>

Proof Definition

For any v of type TI, Self::inf_cast(value) either returns Err(e), or Ok(out) where $out \ge v$.

source

fn neg_inf_cast(v: TI) -> Fallible<Self>

Proof Definition

For any v of type TI, Self::inf_cast(value) either returns Err(e), or Ok(out) where $out \le v$.

Implementations on Foreign Types§

source§

impl InfCast<i16> for u32

source§

impl InfCast<f32> for u64

source§

impl InfCast<usize> for u128

source§

impl InfCast<isize> for i8

source§

impl InfCast<u16> for u64

source§

impl InfCast<u32> for u128

source§

impl InfCast<u32> for u16

source§

impl InfCast<u64> for usize

source§

impl InfCast<u64> for f32

source§

fn inf_cast(v_int: u64) -> Fallible<Self>

source§

fn neg_inf_cast(v_int: u64) -> Fallible<Self>

source§

impl InfCast<i64> for isize

source§

impl InfCast<i128> for u16

source§

impl InfCast<i64> for u16

source§

impl InfCast<i64> for u32

source§

impl InfCast<i64> for u64

source§

impl InfCast<u128> for i8

source§

impl InfCast<u128> for isize

source§

impl InfCast<f32> for i16

source§

impl InfCast<u64> for u32

source§

impl InfCast<f64> for u16

source§

impl InfCast<usize> for u16

source§

impl InfCast<u16> for i8

source§

impl InfCast<u8> for i64

source§

impl InfCast<i128> for i8

source§

impl InfCast<f64> for i64

source§

impl InfCast<i32> for usize

source§

impl InfCast<i128> for f64

source§

fn inf_cast(v_int: i128) -> Fallible<Self>

source§

fn neg_inf_cast(v_int: i128) -> Fallible<Self>

source§

impl InfCast<isize> for u64

source§

impl InfCast<u8> for u64

source§

impl InfCast<i128> for u32

source§

impl InfCast<u32> for u32

source§

impl InfCast<i16> for f64

source§

impl InfCast<i16> for u128

source§

impl InfCast<i16> for i128

source§

impl InfCast<u8> for i128

source§

impl InfCast<u128> for u64

source§

impl InfCast<f32> for i32

source§

impl InfCast<i32> for i128

source§

impl InfCast<i128> for i64

source§

impl InfCast<i32> for i8

source§

impl InfCast<u16> for u32

source§

impl InfCast<i16> for u16

source§

impl InfCast<i32> for isize

source§

impl InfCast<u128> for usize

source§

impl InfCast<u16> for f64

source§

impl InfCast<u32> for usize

source§

impl InfCast<usize> for usize

source§

impl InfCast<i64> for usize

source§

impl InfCast<u8> for usize

source§

impl InfCast<usize> for i128

source§

impl InfCast<u8> for isize

source§

impl InfCast<i32> for i16

source§

impl InfCast<u128> for i64

source§

impl InfCast<i8> for usize

source§

impl InfCast<u128> for u128

source§

impl InfCast<u16> for u8

source§

impl InfCast<f32> for i8

source§

impl InfCast<u16> for i16

source§

impl InfCast<isize> for u8

source§

impl InfCast<f32> for u128

source§

impl InfCast<u64> for i16

source§

impl InfCast<i64> for i64

source§

impl InfCast<i8> for isize

source§

impl InfCast<f64> for f64

source§

impl InfCast<f32> for f64

source§

impl InfCast<i8> for f32

source§

impl InfCast<i128> for isize

source§

impl InfCast<i32> for i32

source§

impl InfCast<u16> for i32

source§

impl InfCast<i32> for u32

source§

impl InfCast<f64> for i8

source§

impl InfCast<u8> for u8

source§

impl InfCast<u16> for i64

source§

impl InfCast<isize> for i32

source§

impl InfCast<i8> for f64

source§

impl InfCast<isize> for u32

source§

impl InfCast<i32> for u16

source§

impl InfCast<u8> for u16

source§

impl InfCast<f32> for i64

source§

impl InfCast<usize> for u32

source§

impl InfCast<i16> for usize

source§

impl InfCast<u128> for u16

source§

impl InfCast<isize> for i16

source§

impl InfCast<u32> for u64

source§

impl InfCast<u128> for f32

source§

fn inf_cast(v_int: u128) -> Fallible<Self>

source§

fn neg_inf_cast(v_int: u128) -> Fallible<Self>

source§

impl InfCast<u16> for u128

source§

impl InfCast<i16> for u8

source§

impl InfCast<f32> for u8

source§

impl InfCast<usize> for i64

source§

impl InfCast<f64> for u8

source§

impl InfCast<f32> for u16

source§

impl InfCast<u8> for u128

source§

impl InfCast<isize> for i64

source§

impl InfCast<f64> for u64

source§

impl InfCast<u32> for i32

source§

impl InfCast<i64> for i32

source§

impl InfCast<u64> for f64

source§

fn inf_cast(v_int: u64) -> Fallible<Self>

source§

fn neg_inf_cast(v_int: u64) -> Fallible<Self>

source§

impl InfCast<u128> for u32

source§

impl InfCast<i32> for f64

source§

impl InfCast<u64> for i64

source§

impl InfCast<i16> for u64

source§

impl InfCast<f64> for Float

source§

impl InfCast<i128> for i32

source§

impl InfCast<u32> for i16

source§

impl InfCast<isize> for usize

source§

impl InfCast<isize> for u16

source§

impl InfCast<i16> for i32

source§

impl InfCast<i8> for i64

source§

impl InfCast<isize> for i128

source§

impl InfCast<u8> for f32

source§

impl InfCast<i8> for i16

source§

impl InfCast<usize> for f64

source§

fn inf_cast(v_int: usize) -> Fallible<Self>

source§

fn neg_inf_cast(v_int: usize) -> Fallible<Self>

source§

impl InfCast<u64> for isize

source§

impl InfCast<f32> for Float

source§

impl InfCast<i128> for u64

source§

impl InfCast<u16> for u16

source§

impl InfCast<i16> for isize

source§

impl InfCast<f64> for i16

source§

impl InfCast<f64> for i128

source§

impl InfCast<u32> for f32

source§

fn inf_cast(v_int: u32) -> Fallible<Self>

source§

fn neg_inf_cast(v_int: u32) -> Fallible<Self>

source§

impl InfCast<i32> for u8

source§

impl InfCast<i8> for u16

source§

impl InfCast<u64> for u16

source§

impl InfCast<usize> for u8

source§

impl InfCast<i64> for u8

source§

impl InfCast<isize> for u128

source§

impl InfCast<u32> for u8

source§

impl InfCast<u128> for i32

source§

impl InfCast<i32> for u128

source§

impl InfCast<i16> for i8

source§

impl InfCast<u32> for f64

source§

impl InfCast<i8> for i8

source§

impl InfCast<u64> for i8

source§

impl InfCast<i128> for usize

source§

impl InfCast<u16> for isize

source§

impl InfCast<f32> for u32

source§

impl InfCast<i16> for f32

source§

impl InfCast<usize> for i16

source§

impl InfCast<u32> for i128

source§

impl InfCast<usize> for i32

source§

impl InfCast<i128> for i128

source§

impl InfCast<u128> for f64

source§

fn inf_cast(v_int: u128) -> Fallible<Self>

source§

fn neg_inf_cast(v_int: u128) -> Fallible<Self>

source§

impl InfCast<u64> for i32

source§

impl InfCast<u64> for u8

source§

impl InfCast<u8> for i32

source§

impl InfCast<usize> for i8

source§

impl InfCast<u32> for i64

source§

impl InfCast<f64> for u128

source§

impl InfCast<u16> for f32

source§

impl InfCast<f32> for f32

source§

impl InfCast<u128> for u8

source§

impl InfCast<isize> for isize

source§

impl InfCast<Float> for f64

source§

impl InfCast<usize> for f32

source§

fn inf_cast(v_int: usize) -> Fallible<Self>

source§

fn neg_inf_cast(v_int: usize) -> Fallible<Self>

source§

impl InfCast<i32> for f32

source§

fn inf_cast(v_int: i32) -> Fallible<Self>

source§

fn neg_inf_cast(v_int: i32) -> Fallible<Self>

source§

impl InfCast<u64> for i128

source§

impl InfCast<i128> for i16

source§

impl InfCast<i64> for i8

source§

impl InfCast<usize> for u64

source§

impl InfCast<i16> for i16

source§

impl InfCast<i64> for i16

source§

impl InfCast<u128> for i128

source§

impl InfCast<i8> for u128

source§

impl InfCast<i128> for u8

source§

impl InfCast<f64> for f32

source§

fn inf_cast(vf64: f64) -> Fallible<Self>

source§

fn neg_inf_cast(vf64: f64) -> Fallible<Self>

source§

impl InfCast<i64> for i128

source§

impl InfCast<f64> for u32

source§

impl InfCast<i8> for i32

source§

impl InfCast<u32> for isize

source§

impl InfCast<i16> for i64

source§

impl InfCast<Float> for f32

source§

impl InfCast<u16> for usize

source§

impl InfCast<u64> for u128

source§

impl InfCast<i8> for u32

source§

impl InfCast<i128> for u128

source§

impl InfCast<i8> for u8

source§

impl InfCast<i32> for u64

source§

impl InfCast<i64> for f64

source§

fn inf_cast(v_int: i64) -> Fallible<Self>

source§

fn neg_inf_cast(v_int: i64) -> Fallible<Self>

source§

impl InfCast<u16> for i128

source§

impl InfCast<u8> for i16

source§

impl InfCast<u8> for f64

source§

impl InfCast<u64> for u64

source§

impl InfCast<usize> for isize

source§

impl InfCast<u8> for u32

source§

impl InfCast<i32> for i64

source§

impl InfCast<f64> for i32

source§

impl InfCast<i8> for u64

source§

impl InfCast<u32> for i8

source§

impl InfCast<u128> for i16

source§

impl InfCast<i64> for f32

source§

fn inf_cast(v_int: i64) -> Fallible<Self>

source§

fn neg_inf_cast(v_int: i64) -> Fallible<Self>

source§

impl InfCast<f32> for i128

source§

impl InfCast<i128> for f32

source§

fn inf_cast(v_int: i128) -> Fallible<Self>

source§

fn neg_inf_cast(v_int: i128) -> Fallible<Self>

source§

impl InfCast<i8> for i128

source§

impl InfCast<u8> for i8

source§

impl InfCast<i64> for u128

Implementors§