noodles_vcf/variant/record_buf/samples/
keys.rs

1//! Variant record genotypes keys.
2
3use indexmap::IndexSet;
4
5type Inner = IndexSet<String>;
6
7/// A variant record samples keys buffer.
8#[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}