wip: split edn parsers

This commit is contained in:
🪞👃🪞 2024-08-06 19:39:30 +03:00
parent b7d7864792
commit a54798994b
15 changed files with 275 additions and 140 deletions

View file

@ -0,0 +1,20 @@
use crate::*;
impl LV2Plugin {
fn load_edn <'e> (args: &[Edn<'e>]) -> Usually<JackDevice> {
let mut name = String::new();
let mut path = String::new();
edn!(edn in args {
Edn::Map(map) => {
if let Some(Edn::Str(n)) = map.get(&Edn::Key(":name")) {
name = String::from(*n);
}
if let Some(Edn::Str(p)) = map.get(&Edn::Key(":path")) {
path = String::from(*p);
}
},
_ => panic!("unexpected in lv2 '{name}'"),
});
Plugin::lv2(&name, &path)
}
}