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}