1 //! A few helper functions for dealing with primitives.
3 pub use chalk_ir::{FloatTy, IntTy, UintTy};
4 pub use hir_def::builtin_type::{BuiltinFloat, BuiltinInt, BuiltinUint};
6 pub fn int_ty_to_string(ty: IntTy) -> &'static str {
8 IntTy::Isize => "isize",
13 IntTy::I128 => "i128",
17 pub fn uint_ty_to_string(ty: UintTy) -> &'static str {
19 UintTy::Usize => "usize",
24 UintTy::U128 => "u128",
28 pub fn float_ty_to_string(ty: FloatTy) -> &'static str {
30 FloatTy::F32 => "f32",
31 FloatTy::F64 => "f64",
35 pub(super) fn int_ty_from_builtin(t: BuiltinInt) -> IntTy {
37 BuiltinInt::Isize => IntTy::Isize,
38 BuiltinInt::I8 => IntTy::I8,
39 BuiltinInt::I16 => IntTy::I16,
40 BuiltinInt::I32 => IntTy::I32,
41 BuiltinInt::I64 => IntTy::I64,
42 BuiltinInt::I128 => IntTy::I128,
46 pub(super) fn uint_ty_from_builtin(t: BuiltinUint) -> UintTy {
48 BuiltinUint::Usize => UintTy::Usize,
49 BuiltinUint::U8 => UintTy::U8,
50 BuiltinUint::U16 => UintTy::U16,
51 BuiltinUint::U32 => UintTy::U32,
52 BuiltinUint::U64 => UintTy::U64,
53 BuiltinUint::U128 => UintTy::U128,
57 pub(super) fn float_ty_from_builtin(t: BuiltinFloat) -> FloatTy {
59 BuiltinFloat::F32 => FloatTy::F32,
60 BuiltinFloat::F64 => FloatTy::F64,