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}