diff options
| author | Mel <einebeere@gmail.com> | 2021-10-22 22:58:25 +0200 |
|---|---|---|
| committer | Mel <einebeere@gmail.com> | 2021-10-22 23:03:59 +0200 |
| commit | d4b8a0708232e2c4459f0e1a3b2f2814316359e8 (patch) | |
| tree | 1ca44fce7870d726dfefb53f7acbda7ac6a9f85b /src/interpret/value.rs | |
| parent | c35a7ba06a47a8b26bd784df552ad4c881383898 (diff) | |
| download | rabbithole-d4b8a0708232e2c4459f0e1a3b2f2814316359e8.tar.zst rabbithole-d4b8a0708232e2c4459f0e1a3b2f2814316359e8.zip | |
Display values without type
Diffstat (limited to 'src/interpret/value.rs')
| -rw-r--r-- | src/interpret/value.rs | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/src/interpret/value.rs b/src/interpret/value.rs index 1ca0f0e..c0ac96e 100644 --- a/src/interpret/value.rs +++ b/src/interpret/value.rs @@ -1,6 +1,6 @@ use crate::parse::ast::nodes::FnNode; use anyhow::{anyhow, Result}; -use std::{cell::RefCell, rc::Rc}; +use std::{cell::RefCell, fmt::Display, rc::Rc}; type Ref<T> = RefCell<Rc<T>>; @@ -149,3 +149,16 @@ impl Value { } } } + +impl Display for Value { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + match self { + Value::Str(v) => write!(f, "{}", v), + Value::Float(v) => write!(f, "{}", v), + Value::Int(v) => write!(f, "{}", v), + Value::Bool(v) => write!(f, "{}", v), + Value::Fn(v) => write!(f, "<fn {:?}>", v.as_ptr()), + Value::Void => write!(f, "<void>"), + } + } +} |
