use libcamera::{
control::{ControlList, MergePolicy},
control_value::ControlValue,
properties::PropertyId,
};
fn main() {
let mut base = ControlList::new();
let tags = vec!["alpha".to_string(), "beta".to_string()];
base.set_raw(PropertyId::Model as u32, ControlValue::from(tags))
.unwrap();
println!(
"Base list len={} contains Model? {}",
base.len(),
base.contains(PropertyId::Model as u32)
);
let mut override_list = ControlList::new();
override_list
.set_raw(PropertyId::Model as u32, ControlValue::from("override".to_string()))
.unwrap();
base.merge(&override_list, MergePolicy::OverwriteExisting);
if let Ok(ControlValue::String(v)) = base.get_raw(PropertyId::Model as u32) {
println!("After merge (overwrite), model entries: {:?}", v.into_vec());
}
base.clear();
println!("After clear, is_empty? {}", base.is_empty());
}