From 64c5958193816f12a089c0b04559bddb24ed8809 Mon Sep 17 00:00:00 2001 From: ~karx Date: Sun, 7 Feb 2021 00:10:34 +0000 Subject: [PATCH] Add ability for reading variables --- src/main.rs | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/src/main.rs b/src/main.rs index bd5e6f6..8642199 100644 --- a/src/main.rs +++ b/src/main.rs @@ -9,7 +9,7 @@ mod eval; struct Program { data: Vec, pc: usize, - vars: HashMap + vars: HashMap } impl Program { @@ -32,22 +32,21 @@ impl Program { let mut deconstructed: Vec = arguments.chars().collect(); for (index, char) in arguments.chars().enumerate() { - if char == 'e' { - deconstructed[index] = 'f'; + let value = self.vars.get(&char); + + match value { + Some(content) => deconstructed[index] = *content, + None => {} } } - println!("{:?}", self.vars); deconstructed.into_iter().collect() } fn add_var(&mut self, arguments: &str) { - let name = arguments.chars().collect::>()[0]; - let old_value = &arguments[1..]; + let argument_vec: Vec = arguments.chars().collect(); - let value = old_value.to_owned(); - - self.vars.insert(name, value); + self.vars.insert(argument_vec[0], argument_vec[1]); } fn eval(&mut self, instruction: &String) { @@ -84,7 +83,6 @@ impl fmt::Display for Program { } fn main() { - let args: Vec = env::args().collect(); if args.len() == 1 { panic!("You must provide an argument!");