noodles_vcf/header/record/value/map/info/
number.rs

1/// A VCF number describing the cardinality of a field.
2#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
3pub enum Number {
4    /// An explicit size.
5    Count(usize),
6    /// The number of alternate bases (`A`).
7    AlternateBases,
8    /// The number of reference and alternate bases (`R`).
9    ReferenceAlternateBases,
10    /// The number of samples (`G`).
11    Samples,
12    /// The size is unknown.
13    Unknown,
14}
15
16impl Number {
17    /// The number of alternate bases (`A`).
18    pub const A: Self = Self::AlternateBases;
19
20    /// The number of reference and alternate bases (`R`).
21    pub const R: Self = Self::ReferenceAlternateBases;
22
23    /// The number of samples (`G`).
24    pub const G: Self = Self::Samples;
25}
26
27impl Default for Number {
28    fn default() -> Self {
29        Self::Count(1)
30    }
31}
32
33#[cfg(test)]
34mod tests {
35    use super::*;
36
37    #[test]
38    fn test_default() {
39        assert_eq!(Number::default(), Number::Count(1));
40    }
41}