Struct noodles_vcf::Writer
source · pub struct Writer<W> { /* private fields */ }
Expand description
A VCF writer.
Examples
use noodles_vcf::{
self as vcf,
header::record::value::{map::Contig, Map},
record::Position,
};
let mut writer = vcf::Writer::new(Vec::new());
let header = vcf::Header::builder()
.add_contig("sq0".parse()?, Map::<Contig>::new())
.build();
writer.write_header(&header)?;
let record = vcf::Record::builder()
.set_chromosome("sq0".parse()?)
.set_position(Position::from(1))
.set_reference_bases("A".parse()?)
.build()?;
writer.write_record(&header, &record);
let expected = b"##fileformat=VCFv4.3
##contig=<ID=sq0>
#CHROM\tPOS\tID\tREF\tALT\tQUAL\tFILTER\tINFO
sq0\t1\t.\tA\t.\t.\t.\t.
";
assert_eq!(&writer.get_ref()[..], &expected[..]);
Implementations§
source§impl<W> Writer<W>where
W: Write,
impl<W> Writer<W>where W: Write,
sourcepub fn get_ref(&self) -> &W
pub fn get_ref(&self) -> &W
Returns a reference to the underlying writer.
Examples
use noodles_vcf as vcf;
let writer = vcf::Writer::new(Vec::new());
assert!(writer.get_ref().is_empty());
sourcepub fn get_mut(&mut self) -> &mut W
pub fn get_mut(&mut self) -> &mut W
Returns a mutable reference to the underlying writer.
Examples
use noodles_vcf as vcf;
let mut writer = vcf::Writer::new(Vec::new());
assert!(writer.get_mut().is_empty());
sourcepub fn into_inner(self) -> W
pub fn into_inner(self) -> W
Unwraps and returns the underlying writer.
Examples
use noodles_vcf as vcf;
let writer = vcf::Writer::new(Vec::new());
assert!(writer.into_inner().is_empty());
sourcepub fn write_header(&mut self, header: &Header) -> Result<()>
pub fn write_header(&mut self, header: &Header) -> Result<()>
Writes a VCF header.
Examples
use noodles_vcf as vcf;
let mut writer = vcf::Writer::new(Vec::new());
let header = vcf::Header::default();
writer.write_header(&header)?;
sourcepub fn write_record(&mut self, _: &Header, record: &Record) -> Result<()>
pub fn write_record(&mut self, _: &Header, record: &Record) -> Result<()>
Writes a VCF record.
Examples
use noodles_vcf::{self as vcf, record::Position};
let header = vcf::Header::default();
let record = vcf::Record::builder()
.set_chromosome("sq0".parse()?)
.set_position(Position::from(1))
.set_reference_bases("A".parse()?)
.build()?;
let mut writer = vcf::Writer::new(Vec::new());
writer.write_record(&header, &record)?;