aboutsummaryrefslogtreecommitdiff
path: root/crates/hir_ty/src/consts.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/hir_ty/src/consts.rs')
-rw-r--r--crates/hir_ty/src/consts.rs20
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)]
5pub 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
13impl 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}