bitsy_script/
vars.rs

1use crate::*;
2use alloc::string::String;
3use hashbrown::HashMap;
4
5#[derive(Debug, Default, Clone, PartialEq)]
6pub enum Val {
7    #[default]
8    Undef,
9    I(i16),
10    S(String),
11    F(f32),
12}
13
14#[derive(Default)]
15pub struct Vars {
16    items: HashMap<String, Val>,
17}
18
19impl Vars {
20    pub fn new() -> Self {
21        Self::default()
22    }
23
24    pub fn set(&mut self, name: String, v: Val) {
25        self.items.insert(name, v);
26    }
27
28    pub fn get(&self, name: &str) -> &Val {
29        self.items.get(name).unwrap_or(&Val::Undef)
30    }
31}