Skip to main content

CastRangeFrom

Trait CastRangeFrom 

Source
pub trait CastRangeFrom<T> {
    // Required method
    fn cast_range_from(value: T) -> Self;
}
Expand description

Remap the value RangeDefault to the RangeDefault of the target type, in a generic friendly way, and similar to the From trait.

[Self::RANGE_MIN..Self::RANGE_MAX] => [T::RANGE_MIN..T::RANGE_MAX]

One should always prefer implementing CastRangeFrom over CastRangeInto because implementing CastRangeFrom automatically provides one with an implementation of CastRangeInto thanks to the blanket implementation in the hexga_number library.

use hexga_number::prelude::*;

assert_eq!(u8::cast_range_from(1f32), 255u8);
assert_eq!(u8::cast_range_from(0f32), 0u8);

let casted_range : u16 = u8::MAX.cast_range_into();
assert_eq!(casted_range, u16::MAX);

Also work with composite like std::array, [Vector]…

ⓘ
use hexga_number::prelude::*;

let x = [0u8, 127u8, 255u8];
let y : [u16; 3] = x.cast_range_into(),
assert_eq!(y, [0u16, 32639u16, 65535u16]);


let a = vector3(0u8, 127u8, 255u8);
let b : Vector3::<u16> = a.cast_into(),
assert_eq!(b, vector3(0u16, u16::MAX / 2 - u8::RANGE_MAX as u16 / 2 - 1, u16::MAX));

Required Methods§

Source

fn cast_range_from(value: T) -> Self

Dyn Compatibility§

This trait is not dyn compatible.

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

Implementations on Foreign Types§

Source§

impl CastRangeFrom<bool> for bool

Source§

impl CastRangeFrom<bool> for f32

Source§

impl CastRangeFrom<bool> for f64

Source§

impl CastRangeFrom<bool> for i8

Source§

impl CastRangeFrom<bool> for i16

Source§

impl CastRangeFrom<bool> for i32

Source§

impl CastRangeFrom<bool> for i64

Source§

impl CastRangeFrom<bool> for isize

Source§

impl CastRangeFrom<bool> for u8

Source§

impl CastRangeFrom<bool> for u16

Source§

impl CastRangeFrom<bool> for u32

Source§

impl CastRangeFrom<bool> for u64

Source§

impl CastRangeFrom<bool> for usize

Source§

impl CastRangeFrom<f32> for bool

Source§

impl CastRangeFrom<f32> for f32

Source§

impl CastRangeFrom<f32> for f64

Source§

impl CastRangeFrom<f32> for i8

Source§

impl CastRangeFrom<f32> for i16

Source§

impl CastRangeFrom<f32> for i32

Source§

impl CastRangeFrom<f32> for i64

Source§

impl CastRangeFrom<f32> for isize

Source§

impl CastRangeFrom<f32> for u8

Source§

impl CastRangeFrom<f32> for u16

Source§

impl CastRangeFrom<f32> for u32

Source§

impl CastRangeFrom<f32> for u64

Source§

impl CastRangeFrom<f32> for usize

Source§

impl CastRangeFrom<f64> for bool

Source§

impl CastRangeFrom<f64> for f32

Source§

impl CastRangeFrom<f64> for f64

Source§

impl CastRangeFrom<f64> for i8

Source§

impl CastRangeFrom<f64> for i16

Source§

impl CastRangeFrom<f64> for i32

Source§

impl CastRangeFrom<f64> for i64

Source§

impl CastRangeFrom<f64> for isize

Source§

impl CastRangeFrom<f64> for u8

Source§

impl CastRangeFrom<f64> for u16

Source§

impl CastRangeFrom<f64> for u32

Source§

impl CastRangeFrom<f64> for u64

Source§

impl CastRangeFrom<f64> for usize

Source§

impl CastRangeFrom<i8> for bool

Source§

impl CastRangeFrom<i8> for f32

Source§

impl CastRangeFrom<i8> for f64

Source§

impl CastRangeFrom<i8> for i8

Source§

impl CastRangeFrom<i8> for i16

Source§

impl CastRangeFrom<i8> for i32

Source§

impl CastRangeFrom<i8> for i64

Source§

impl CastRangeFrom<i8> for isize

Source§

impl CastRangeFrom<i8> for u8

Source§

impl CastRangeFrom<i8> for u16

Source§

impl CastRangeFrom<i8> for u32

Source§

impl CastRangeFrom<i8> for u64

Source§

impl CastRangeFrom<i8> for usize

Source§

impl CastRangeFrom<i16> for bool

Source§

impl CastRangeFrom<i16> for f32

Source§

impl CastRangeFrom<i16> for f64

Source§

impl CastRangeFrom<i16> for i8

Source§

impl CastRangeFrom<i16> for i16

Source§

impl CastRangeFrom<i16> for i32

Source§

impl CastRangeFrom<i16> for i64

Source§

impl CastRangeFrom<i16> for isize

Source§

impl CastRangeFrom<i16> for u8

Source§

impl CastRangeFrom<i16> for u16

Source§

impl CastRangeFrom<i16> for u32

Source§

impl CastRangeFrom<i16> for u64

Source§

impl CastRangeFrom<i16> for usize

Source§

impl CastRangeFrom<i32> for bool

Source§

impl CastRangeFrom<i32> for f32

Source§

impl CastRangeFrom<i32> for f64

Source§

impl CastRangeFrom<i32> for i8

Source§

impl CastRangeFrom<i32> for i16

Source§

impl CastRangeFrom<i32> for i32

Source§

impl CastRangeFrom<i32> for i64

Source§

impl CastRangeFrom<i32> for isize

Source§

impl CastRangeFrom<i32> for u8

Source§

impl CastRangeFrom<i32> for u16

Source§

impl CastRangeFrom<i32> for u32

Source§

impl CastRangeFrom<i32> for u64

Source§

impl CastRangeFrom<i32> for usize

Source§

impl CastRangeFrom<i64> for bool

Source§

impl CastRangeFrom<i64> for f32

Source§

impl CastRangeFrom<i64> for f64

Source§

impl CastRangeFrom<i64> for i8

Source§

impl CastRangeFrom<i64> for i16

Source§

impl CastRangeFrom<i64> for i32

Source§

impl CastRangeFrom<i64> for i64

Source§

impl CastRangeFrom<i64> for isize

Source§

impl CastRangeFrom<i64> for u8

Source§

impl CastRangeFrom<i64> for u16

Source§

impl CastRangeFrom<i64> for u32

Source§

impl CastRangeFrom<i64> for u64

Source§

impl CastRangeFrom<i64> for usize

Source§

impl CastRangeFrom<isize> for bool

Source§

impl CastRangeFrom<isize> for f32

Source§

impl CastRangeFrom<isize> for f64

Source§

impl CastRangeFrom<isize> for i8

Source§

impl CastRangeFrom<isize> for i16

Source§

impl CastRangeFrom<isize> for i32

Source§

impl CastRangeFrom<isize> for i64

Source§

impl CastRangeFrom<isize> for isize

Source§

impl CastRangeFrom<isize> for u8

Source§

impl CastRangeFrom<isize> for u16

Source§

impl CastRangeFrom<isize> for u32

Source§

impl CastRangeFrom<isize> for u64

Source§

impl CastRangeFrom<isize> for usize

Source§

impl CastRangeFrom<u8> for bool

Source§

impl CastRangeFrom<u8> for f32

Source§

impl CastRangeFrom<u8> for f64

Source§

impl CastRangeFrom<u8> for i8

Source§

impl CastRangeFrom<u8> for i16

Source§

impl CastRangeFrom<u8> for i32

Source§

impl CastRangeFrom<u8> for i64

Source§

impl CastRangeFrom<u8> for isize

Source§

impl CastRangeFrom<u8> for u8

Source§

impl CastRangeFrom<u8> for u16

Source§

impl CastRangeFrom<u8> for u32

Source§

impl CastRangeFrom<u8> for u64

Source§

impl CastRangeFrom<u8> for usize

Source§

impl CastRangeFrom<u16> for bool

Source§

impl CastRangeFrom<u16> for f32

Source§

impl CastRangeFrom<u16> for f64

Source§

impl CastRangeFrom<u16> for i8

Source§

impl CastRangeFrom<u16> for i16

Source§

impl CastRangeFrom<u16> for i32

Source§

impl CastRangeFrom<u16> for i64

Source§

impl CastRangeFrom<u16> for isize

Source§

impl CastRangeFrom<u16> for u8

Source§

impl CastRangeFrom<u16> for u16

Source§

impl CastRangeFrom<u16> for u32

Source§

impl CastRangeFrom<u16> for u64

Source§

impl CastRangeFrom<u16> for usize

Source§

impl CastRangeFrom<u32> for bool

Source§

impl CastRangeFrom<u32> for f32

Source§

impl CastRangeFrom<u32> for f64

Source§

impl CastRangeFrom<u32> for i8

Source§

impl CastRangeFrom<u32> for i16

Source§

impl CastRangeFrom<u32> for i32

Source§

impl CastRangeFrom<u32> for i64

Source§

impl CastRangeFrom<u32> for isize

Source§

impl CastRangeFrom<u32> for u8

Source§

impl CastRangeFrom<u32> for u16

Source§

impl CastRangeFrom<u32> for u32

Source§

impl CastRangeFrom<u32> for u64

Source§

impl CastRangeFrom<u32> for usize

Source§

impl CastRangeFrom<u64> for bool

Source§

impl CastRangeFrom<u64> for f32

Source§

impl CastRangeFrom<u64> for f64

Source§

impl CastRangeFrom<u64> for i8

Source§

impl CastRangeFrom<u64> for i16

Source§

impl CastRangeFrom<u64> for i32

Source§

impl CastRangeFrom<u64> for i64

Source§

impl CastRangeFrom<u64> for isize

Source§

impl CastRangeFrom<u64> for u8

Source§

impl CastRangeFrom<u64> for u16

Source§

impl CastRangeFrom<u64> for u32

Source§

impl CastRangeFrom<u64> for u64

Source§

impl CastRangeFrom<u64> for usize

Source§

impl CastRangeFrom<usize> for bool

Source§

impl CastRangeFrom<usize> for f32

Source§

impl CastRangeFrom<usize> for f64

Source§

impl CastRangeFrom<usize> for i8

Source§

impl CastRangeFrom<usize> for i16

Source§

impl CastRangeFrom<usize> for i32

Source§

impl CastRangeFrom<usize> for i64

Source§

impl CastRangeFrom<usize> for isize

Source§

impl CastRangeFrom<usize> for u8

Source§

impl CastRangeFrom<usize> for u16

Source§

impl CastRangeFrom<usize> for u32

Source§

impl CastRangeFrom<usize> for u64

Source§

impl CastRangeFrom<usize> for usize

Implementors§

Source§

impl<C1, C2> CastRangeFrom<C2> for C1
where C1: Map, C2: Map<WithType<<C1 as MapIntern>::Item> = C1>, <C1 as MapIntern>::Item: CastRangeFrom<<C2 as MapIntern>::Item>,