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