noodles_vcf/variant/record_buf/samples/
keys.rs1use indexmap::IndexSet;
4
5type Inner = IndexSet<String>;
6
7#[derive(Clone, Debug, Default, Eq, PartialEq)]
9pub struct Keys(Inner);
10
11impl AsRef<Inner> for Keys {
12 fn as_ref(&self) -> &Inner {
13 &self.0
14 }
15}
16
17impl AsMut<Inner> for Keys {
18 fn as_mut(&mut self) -> &mut Inner {
19 &mut self.0
20 }
21}
22
23impl Extend<String> for Keys {
24 fn extend<T: IntoIterator<Item = String>>(&mut self, iter: T) {
25 self.0.extend(iter);
26 }
27}
28
29impl FromIterator<String> for Keys {
30 fn from_iter<T: IntoIterator<Item = String>>(iter: T) -> Self {
31 let mut keys = Self::default();
32 keys.extend(iter);
33 keys
34 }
35}