noodles_vcf/header/record/value/map/
alternative_allele.rs

1//! Inner VCF header alternative allele map value.
2
3mod builder;
4pub(crate) mod tag;
5
6pub use self::tag::Tag;
7
8use super::{Described, Inner, Map, OtherFields};
9
10/// An inner VCF header alternative allele map value.
11#[derive(Clone, Debug, Eq, PartialEq)]
12pub struct AlternativeAllele {
13    pub(crate) description: String,
14}
15
16impl Inner for AlternativeAllele {
17    type StandardTag = tag::Standard;
18    type Builder = builder::Builder;
19}
20
21impl Described for AlternativeAllele {
22    fn description(&self) -> &str {
23        &self.description
24    }
25
26    fn description_mut(&mut self) -> &mut String {
27        &mut self.description
28    }
29}
30
31impl Map<AlternativeAllele> {
32    /// Creates a VCF header alternative allele map value.
33    ///
34    /// # Examples
35    ///
36    /// ```
37    /// use noodles_vcf::header::record::value::{map::AlternativeAllele, Map};
38    /// let map = Map::<AlternativeAllele>::new("Deletion");
39    /// ```
40    pub fn new<D>(description: D) -> Self
41    where
42        D: Into<String>,
43    {
44        Self {
45            inner: AlternativeAllele {
46                description: description.into(),
47            },
48            other_fields: OtherFields::new(),
49        }
50    }
51}