pub struct Writer<W> { /* private fields */ }
Expand description
A VCF writer.
§Examples
use noodles_core::Position;
use noodles_vcf::{
self as vcf,
header::{
record::value::{map::Contig, Map},
FileFormat,
},
variant::io::Write,
};
let mut writer = vcf::io::Writer::new(Vec::new());
let header = vcf::Header::builder()
.set_file_format(FileFormat::new(4, 5))
.add_contig("sq0", Map::<Contig>::new())
.build();
writer.write_header(&header)?;
let record = vcf::variant::RecordBuf::builder()
.set_reference_sequence_name("sq0")
.set_variant_start(Position::MIN)
.set_reference_bases("A")
.build();
writer.write_variant_record(&header, &record);
let expected = b"##fileformat=VCFv4.5
##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 new(inner: W) -> Self
pub fn new(inner: W) -> Self
Creates a VCF writer.
§Examples
use noodles_vcf as vcf;
let writer = vcf::io::Writer::new(Vec::new());
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::io::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::io::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::io::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::io::Writer::new(Vec::new());
let header = vcf::Header::default();
writer.write_header(&header)?;
Sourcepub fn write_record(&mut self, header: &Header, record: &Record) -> Result<()>
pub fn write_record(&mut self, header: &Header, record: &Record) -> Result<()>
Writes a VCF record.
§Examples
use noodles_core::Position;
use noodles_vcf as vcf;
let mut writer = vcf::io::Writer::new(Vec::new());
let header = vcf::Header::default();
let record = vcf::Record::default();
writer.write_record(&header, &record)?;
assert_eq!(writer.get_ref(), b"sq0\t1\t.\tA\t.\t.\t.\t.\n");
Trait Implementations§
Auto Trait Implementations§
impl<W> Freeze for Writer<W>where
W: Freeze,
impl<W> RefUnwindSafe for Writer<W>where
W: RefUnwindSafe,
impl<W> Send for Writer<W>where
W: Send,
impl<W> Sync for Writer<W>where
W: Sync,
impl<W> Unpin for Writer<W>where
W: Unpin,
impl<W> UnwindSafe for Writer<W>where
W: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more