diff options
Diffstat (limited to 'crates/hir_ty/src/consts.rs')
-rw-r--r-- | crates/hir_ty/src/consts.rs | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/crates/hir_ty/src/consts.rs b/crates/hir_ty/src/consts.rs new file mode 100644 index 000000000..77d2a7a05 --- /dev/null +++ b/crates/hir_ty/src/consts.rs | |||
@@ -0,0 +1,20 @@ | |||
1 | //! Handling of concrete const values | ||
2 | |||
3 | /// A concrete constant value | ||
4 | #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] | ||
5 | pub enum ConstScalar { | ||
6 | // for now, we only support the trivial case of constant evaluating the length of an array | ||
7 | Usize(usize), | ||
8 | |||
9 | /// Case of an unknown value that rustc might know but we don't | ||
10 | Unknown, | ||
11 | } | ||
12 | |||
13 | impl std::fmt::Display for ConstScalar { | ||
14 | fn fmt(&self, fmt: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> { | ||
15 | match self { | ||
16 | ConstScalar::Usize(us) => write!(fmt, "{}", us), | ||
17 | ConstScalar::Unknown => write!(fmt, "_"), | ||
18 | } | ||
19 | } | ||
20 | } | ||