1use srdf::Object;
2use std::fmt::Display;
3
4use super::value_set_value::ValueSetValue;
5
6#[derive(Clone, Debug, Default)]
7pub struct ValueSet {
8 values: Vec<ValueSetValue>,
9}
10
11impl ValueSet {
12 pub fn new() -> Self {
13 Self::default()
14 }
15
16 pub fn add_value(&mut self, v: ValueSetValue) {
17 self.values.push(v);
18 }
19
20 pub fn check_value(&self, object: &Object) -> bool {
21 self.values.iter().any(|vsv| vsv.match_value(object))
22 }
23}
24
25impl Display for ValueSet {
26 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
27 write!(f, "[")?;
28 for v in &self.values {
29 write!(f, "{v} ")?;
30 }
31 write!(f, "]")?;
32 Ok(())
33 }
34}