rbe/
values.rs

1use serde::{Deserialize, Serialize};
2use std::fmt::Display;
3use std::hash::Hash;
4
5#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
6pub struct Values<K, V>
7where
8    K: Hash + Eq + Display + Default,
9    V: Hash + Default + Eq + Display + Clone,
10{
11    values: Vec<(K, V)>,
12}
13
14impl<K, V> Values<K, V>
15where
16    K: Hash + Eq + Display + Default + Clone,
17    V: Hash + Default + Eq + Display + Clone,
18{
19    pub fn from(values: &[(K, V)]) -> Values<K, V> {
20        Values {
21            values: values.to_vec(),
22        }
23    }
24}
25
26impl<K, V> Display for Values<K, V>
27where
28    K: Hash + Eq + Display + Default,
29    V: Hash + Default + Eq + Display + Clone,
30{
31    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
32        for (iri, o) in &self.values {
33            write!(f, "{iri} {o}|")?;
34        }
35        Ok(())
36    }
37}