noodles_vcf/variant/record/samples/series.rs
1//! Variant record samples series.
2
3pub mod value;
4
5use std::io;
6
7pub use self::value::Value;
8use crate::Header;
9
10/// A variant record samples series.
11pub trait Series {
12 /// Returns the name.
13 fn name<'a, 'h: 'a>(&'a self, header: &'h Header) -> io::Result<&'a str>;
14
15 /// Return the value at the given index.
16 fn get<'a, 'h: 'a>(
17 &'a self,
18 header: &'h Header,
19 i: usize,
20 ) -> Option<Option<io::Result<Value<'a>>>>;
21
22 /// Returns an iterator over values.
23 fn iter<'a, 'h: 'a>(
24 &'a self,
25 header: &'h Header,
26 ) -> Box<dyn Iterator<Item = io::Result<Option<Value<'a>>>> + 'a>;
27}