aboutsummaryrefslogtreecommitdiff
path: root/karlc/src/pretty.rs
diff options
context:
space:
mode:
authormetamuffin <yvchraiqi@protonmail.com>2022-06-10 18:12:57 +0200
committermetamuffin <yvchraiqi@protonmail.com>2022-06-10 18:12:57 +0200
commit4e7b383fe2c1ccea7871c708ff1b281451feddd0 (patch)
treeae547f130eac80ac44e3fb0febe5f03cef6a7754 /karlc/src/pretty.rs
parent45f2d1651f17d7e155748cfd1e1cd9a96f3e530e (diff)
downloadkarlender-4e7b383fe2c1ccea7871c708ff1b281451feddd0.tar
karlender-4e7b383fe2c1ccea7871c708ff1b281451feddd0.tar.bz2
karlender-4e7b383fe2c1ccea7871c708ff1b281451feddd0.tar.zst
blub
Diffstat (limited to 'karlc/src/pretty.rs')
-rw-r--r--karlc/src/pretty.rs35
1 files changed, 35 insertions, 0 deletions
diff --git a/karlc/src/pretty.rs b/karlc/src/pretty.rs
new file mode 100644
index 0000000..bf9cf20
--- /dev/null
+++ b/karlc/src/pretty.rs
@@ -0,0 +1,35 @@
+use karlcommon::Condition;
+
+pub fn indent(s: &str) -> String {
+ s.replace("\n", "\n ")
+}
+
+pub fn fmt_condition(c: &Condition) -> String {
+ match c {
+ Condition::From(_) => todo!(),
+ Condition::Or(_) => todo!(),
+ Condition::And(cs) => cs
+ .iter()
+ .map(|e| fmt_condition(e))
+ .reduce(|a, b| format!("{} ∧ {}", a, b))
+ .unwrap_or("never".to_string()),
+ Condition::Invert(_) => todo!(),
+ Condition::Equal {
+ prop,
+ value,
+ modulus,
+ } => {
+ if let Some(m) = modulus {
+ format!("{:?} ≡ {} (mod {})", prop, value, m)
+ } else {
+ format!("{:?} = {}", prop, value)
+ }
+ }
+ Condition::Range {
+ prop: _,
+ min: _,
+ max: _,
+ modulus: _,
+ } => todo!(),
+ }
+}