in smt2proxy/src/lib.rs [47:67]
fn parse_smt2_options(options: &str) -> Result<BTreeMap<Keyword, AttributeValue>, String> {
let mut map = BTreeMap::new();
if options.is_empty() {
return Ok(map);
}
for option in options.split(':') {
let mut it = option.split('=');
let key = Keyword(
it.next()
.ok_or_else(|| "invalid option: missing keys".to_string())?
.to_string(),
);
let value = parse_simple_attribute_value(
it.next()
.ok_or_else(|| format!("invalid option: missing value for key '{}'", key))?,
)
.ok_or_else(|| format!("invalid option: incorrect value for key '{}'", key))?;
map.insert(key, value);
}
Ok(map)
}