noodles_vcf/header/record/value/map/contig/
builder.rs1use super::Contig;
2use crate::header::record::value::map::{self, builder::BuildError};
3
4#[derive(Default)]
5pub struct Builder {
6 length: Option<usize>,
7 md5: Option<String>,
8 url: Option<String>,
9 idx: Option<usize>,
10}
11
12impl map::builder::Inner<Contig> for Builder {
13 fn build(self) -> Result<Contig, BuildError> {
14 Ok(Contig {
15 length: self.length,
16 md5: self.md5,
17 url: self.url,
18 idx: self.idx,
19 })
20 }
21}
22
23impl map::builder::Indexed<Contig> for Builder {
24 fn set_idx(mut self, idx: usize) -> Self {
25 self.idx = Some(idx);
26 self
27 }
28}
29
30impl map::Builder<Contig> {
31 pub fn set_length(mut self, length: usize) -> Self {
33 self.inner.length = Some(length);
34 self
35 }
36
37 pub fn set_md5<D>(mut self, md5: D) -> Self
39 where
40 D: Into<String>,
41 {
42 self.inner.md5 = Some(md5.into());
43 self
44 }
45
46 pub fn set_url<U>(mut self, url: U) -> Self
48 where
49 U: Into<String>,
50 {
51 self.inner.url = Some(url.into());
52 self
53 }
54}