use crate::poem::Verse; use std::collections::HashMap; pub fn incant(verse: &Verse, aliases: &mut HashMap) -> i32 { match verse.clause() { Some(clause) => { for stanza in clause { let (key, val) = match stanza.split_once("=") { Some((key, val)) => (key, val), None => continue, }; aliases.insert(String::from(key), String::from(val)); } } None => { for (key, val) in aliases { if key.contains(' ') && val.contains(' ') { println!("'{}'='{}'", key, val); } else if key.contains(' ') { println!("'{}'={}", key, val); } else if val.contains(' ') { println!("{}='{}'", key, val); } else if val.is_empty() { println!("{}=''", key); } else { println!("{}={}", key, val); } } } } 0 } pub fn unincant(verse: &Verse, aliases: &mut HashMap) -> i32 { match verse.clause() { Some(clause) => { for stanza in clause { aliases.remove(&stanza); } } None => { eprintln!("unalias: not enough arguments"); return 1; } } 0 }