use std::collections::HashSet;
#[derive(Debug, Default)]
pub struct ParamGestureChecker {
active_params: HashSet<String>,
}
impl Drop for ParamGestureChecker {
fn drop(&mut self) {
crate::nice_debug_assert!(
self.active_params.is_empty(),
"GuiContext::end_set_parameter() was never called for {} {} {:?}",
self.active_params.len(),
if self.active_params.len() == 1 {
"parameter"
} else {
"parameters"
},
self.active_params
);
}
}
impl ParamGestureChecker {
pub fn begin_set_parameter(&mut self, param_id: &str) {
crate::nice_debug_assert!(
!self.active_params.contains(param_id),
"GuiContext::begin_set_parameter() was called twice for parameter '{}'",
param_id
);
self.active_params.insert(param_id.to_owned());
}
pub fn set_parameter(&self, param_id: &str) {
crate::nice_debug_assert!(
self.active_params.contains(param_id),
"GuiContext::set_parameter() was called for parameter '{}' without a preceding \
begin_set_parameter() call",
param_id
);
}
pub fn end_set_parameter(&mut self, param_id: &str) {
crate::nice_debug_assert!(
self.active_params.contains(param_id),
"GuiContext::end_set_parameter() was called for parameter '{}' without a preceding \
begin_set_parameter() call",
param_id
);
self.active_params.remove(param_id);
}
}