#primitive #number #from #into #as


Extend primitive number types to make them have a number_as method

2 stable releases

1.0.1 Sep 4, 2018

#60 in Value formatting

Download history 203/week @ 2018-09-09 42/week @ 2018-09-16 140/week @ 2018-09-23 67/week @ 2018-09-30 35/week @ 2018-10-07 24/week @ 2018-10-14 90/week @ 2018-10-21 182/week @ 2018-10-28 540/week @ 2018-11-04 1077/week @ 2018-11-11

2 downloads per month
Used in 5 crates (1 directly)

MIT license

105 lines

Number As

Build Status Build status

Use the trait NumberAs in the current scope to let all primitive number types have a number_as method.

extern crate number_as;

use number_as::NumberAs;

let a: i32 = 2u16.number_as();

assert_eq!(2i32, a);

assert_eq!(2i32, 2u16.number_as());

assert_eq!(20i32, 20.6.number_as());

All implements for the NumberAs trait can be considered as a whole Primitive Number. If you want to design an add function, which accepts all kinds of primitive numbers, you can use the Number trait as a trait bound.

extern crate number_as;

use number_as::{Number, NumberAs};

fn add<T, J, K>(a: T, b: J) -> K where T: Number, J: Number, K: Number, i128: number_as::NumberAs<K> {
    let a: i128 = a.number_as();
    let b: i128 = b.number_as();

    let c = a + b;


assert_eq!(40i32, add(5u8, 35i16));







No runtime deps