Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir-ty/src/primitive.rs')
| -rw-r--r-- | crates/hir-ty/src/primitive.rs | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/crates/hir-ty/src/primitive.rs b/crates/hir-ty/src/primitive.rs new file mode 100644 index 0000000000..d7f48c69a5 --- /dev/null +++ b/crates/hir-ty/src/primitive.rs @@ -0,0 +1,62 @@ +//! A few helper functions for dealing with primitives. + +pub use chalk_ir::{FloatTy, IntTy, UintTy}; +pub use hir_def::builtin_type::{BuiltinFloat, BuiltinInt, BuiltinUint}; + +pub fn int_ty_to_string(ty: IntTy) -> &'static str { + match ty { + IntTy::Isize => "isize", + IntTy::I8 => "i8", + IntTy::I16 => "i16", + IntTy::I32 => "i32", + IntTy::I64 => "i64", + IntTy::I128 => "i128", + } +} + +pub fn uint_ty_to_string(ty: UintTy) -> &'static str { + match ty { + UintTy::Usize => "usize", + UintTy::U8 => "u8", + UintTy::U16 => "u16", + UintTy::U32 => "u32", + UintTy::U64 => "u64", + UintTy::U128 => "u128", + } +} + +pub fn float_ty_to_string(ty: FloatTy) -> &'static str { + match ty { + FloatTy::F32 => "f32", + FloatTy::F64 => "f64", + } +} + +pub(super) fn int_ty_from_builtin(t: BuiltinInt) -> IntTy { + match t { + BuiltinInt::Isize => IntTy::Isize, + BuiltinInt::I8 => IntTy::I8, + BuiltinInt::I16 => IntTy::I16, + BuiltinInt::I32 => IntTy::I32, + BuiltinInt::I64 => IntTy::I64, + BuiltinInt::I128 => IntTy::I128, + } +} + +pub(super) fn uint_ty_from_builtin(t: BuiltinUint) -> UintTy { + match t { + BuiltinUint::Usize => UintTy::Usize, + BuiltinUint::U8 => UintTy::U8, + BuiltinUint::U16 => UintTy::U16, + BuiltinUint::U32 => UintTy::U32, + BuiltinUint::U64 => UintTy::U64, + BuiltinUint::U128 => UintTy::U128, + } +} + +pub(super) fn float_ty_from_builtin(t: BuiltinFloat) -> FloatTy { + match t { + BuiltinFloat::F32 => FloatTy::F32, + BuiltinFloat::F64 => FloatTy::F64, + } +} |