pub struct Writer<const N: usize, W> { /* private fields */ }Expand description
A BED writer.
Implementations§
Source§impl<const N: usize, W> Writer<N, W>
impl<const N: usize, W> Writer<N, W>
Sourcepub fn get_ref(&self) -> &W
pub fn get_ref(&self) -> &W
Returns a reference to the underlying writer.
§Examples
use noodles_bed as bed;
let writer = bed::io::Writer::<3, _>::new(io::sink());
let _inner = writer.get_ref();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_bed as bed;
let mut writer = bed::io::Writer::<3, _>::new(io::sink());
let _inner = writer.get_mut();Sourcepub fn into_inner(self) -> W
pub fn into_inner(self) -> W
Returns the underlying writer.
§Examples
use noodles_bed as bed;
let writer = bed::io::Writer::<3, _>::new(io::sink());
let _inner = writer.into_inner();Source§impl<const N: usize, W> Writer<N, W>where
W: Write,
impl<const N: usize, W> Writer<N, W>where
W: Write,
Sourcepub fn new(inner: W) -> Self
pub fn new(inner: W) -> Self
Creates a BED writer.
§Examples
use noodles_bed as bed;
let writer = bed::io::Writer::<3, _>::new(io::sink());Examples found in repository?
examples/bed_write.rs (line 12)
10fn main() -> Result<(), Box<dyn std::error::Error>> {
11 let stdout = io::stdout().lock();
12 let mut writer = bed::io::Writer::<3, _>::new(stdout);
13
14 let record = RecordBuf::<3>::builder()
15 .set_reference_sequence_name("sq0")
16 .set_feature_start(Position::try_from(8)?)
17 .set_feature_end(Position::try_from(13)?)
18 .build();
19
20 writer.write_feature_record(&record)?;
21
22 Ok(())
23}More examples
examples/bed_view.rs (line 19)
11fn main() -> Result<(), Box<dyn std::error::Error>> {
12 let src = env::args().nth(1).expect("missing src");
13
14 let mut reader = File::open(src)
15 .map(BufReader::new)
16 .map(bed::io::Reader::<3, _>::new)?;
17
18 let stdout = io::stdout().lock();
19 let mut writer = bed::io::Writer::<3, _>::new(stdout);
20
21 let mut record = bed::Record::default();
22
23 while reader.read_record(&mut record)? != 0 {
24 writer.write_record(&record)?;
25 }
26
27 Ok(())
28}examples/bed_query.rs (line 36)
13fn main() -> Result<(), Box<dyn std::error::Error>> {
14 let mut args = env::args().skip(1);
15
16 let src = args.next().expect("missing src");
17 let region: Region = args.next().expect("missing region").parse()?;
18
19 let index_src = format!("{src}.tbi");
20 let index = tabix::fs::read(index_src)?;
21
22 let header = index.header().expect("missing tabix header");
23 let reference_sequence_id = header
24 .reference_sequence_names()
25 .get_index_of(region.name())
26 .expect("invalid reference sequence name");
27
28 let mut decoder = File::open(src).map(bgzf::io::Reader::new)?;
29 let chunks = index.query(reference_sequence_id, region.interval())?;
30 let query = csi::io::Query::new(&mut decoder, chunks);
31
32 let mut reader = bed::io::Reader::<3, _>::new(query);
33 let mut record = bed::Record::default();
34
35 let stdout = io::stdout().lock();
36 let mut writer = bed::io::Writer::<3, _>::new(stdout);
37
38 while reader.read_record(&mut record)? != 0 {
39 let start = record.feature_start()?;
40 let end = record.feature_end().expect("missing feature end")?;
41 let interval = (start..=end).into();
42
43 if !region.interval().intersects(interval) {
44 continue;
45 }
46
47 writer.write_record(&record)?;
48 }
49
50 Ok(())
51}Source§impl<W> Writer<3, W>where
W: Write,
impl<W> Writer<3, W>where
W: Write,
Sourcepub fn write_record(&mut self, record: &Record<3>) -> Result<()>
pub fn write_record(&mut self, record: &Record<3>) -> Result<()>
Writes a record.
§Examples
use noodles_bed as bed;
let mut writer = bed::io::Writer::<3, _>::new(io::sink());
let record = bed::Record::default();
writer.write_record(&record)?;Examples found in repository?
examples/bed_view.rs (line 24)
11fn main() -> Result<(), Box<dyn std::error::Error>> {
12 let src = env::args().nth(1).expect("missing src");
13
14 let mut reader = File::open(src)
15 .map(BufReader::new)
16 .map(bed::io::Reader::<3, _>::new)?;
17
18 let stdout = io::stdout().lock();
19 let mut writer = bed::io::Writer::<3, _>::new(stdout);
20
21 let mut record = bed::Record::default();
22
23 while reader.read_record(&mut record)? != 0 {
24 writer.write_record(&record)?;
25 }
26
27 Ok(())
28}More examples
examples/bed_query.rs (line 47)
13fn main() -> Result<(), Box<dyn std::error::Error>> {
14 let mut args = env::args().skip(1);
15
16 let src = args.next().expect("missing src");
17 let region: Region = args.next().expect("missing region").parse()?;
18
19 let index_src = format!("{src}.tbi");
20 let index = tabix::fs::read(index_src)?;
21
22 let header = index.header().expect("missing tabix header");
23 let reference_sequence_id = header
24 .reference_sequence_names()
25 .get_index_of(region.name())
26 .expect("invalid reference sequence name");
27
28 let mut decoder = File::open(src).map(bgzf::io::Reader::new)?;
29 let chunks = index.query(reference_sequence_id, region.interval())?;
30 let query = csi::io::Query::new(&mut decoder, chunks);
31
32 let mut reader = bed::io::Reader::<3, _>::new(query);
33 let mut record = bed::Record::default();
34
35 let stdout = io::stdout().lock();
36 let mut writer = bed::io::Writer::<3, _>::new(stdout);
37
38 while reader.read_record(&mut record)? != 0 {
39 let start = record.feature_start()?;
40 let end = record.feature_end().expect("missing feature end")?;
41 let interval = (start..=end).into();
42
43 if !region.interval().intersects(interval) {
44 continue;
45 }
46
47 writer.write_record(&record)?;
48 }
49
50 Ok(())
51}Sourcepub fn write_feature_record<R>(&mut self, record: &R) -> Result<()>where
R: Record<3>,
pub fn write_feature_record<R>(&mut self, record: &R) -> Result<()>where
R: Record<3>,
Writes a feature record.
§Examples
use noodles_bed as bed;
let mut writer = bed::io::Writer::<3, _>::new(io::sink());
let record = bed::Record::default();
writer.write_feature_record(&record)?;Examples found in repository?
examples/bed_write.rs (line 20)
10fn main() -> Result<(), Box<dyn std::error::Error>> {
11 let stdout = io::stdout().lock();
12 let mut writer = bed::io::Writer::<3, _>::new(stdout);
13
14 let record = RecordBuf::<3>::builder()
15 .set_reference_sequence_name("sq0")
16 .set_feature_start(Position::try_from(8)?)
17 .set_feature_end(Position::try_from(13)?)
18 .build();
19
20 writer.write_feature_record(&record)?;
21
22 Ok(())
23}Source§impl<W> Writer<4, W>where
W: Write,
impl<W> Writer<4, W>where
W: Write,
Source§impl<W> Writer<5, W>where
W: Write,
impl<W> Writer<5, W>where
W: Write,
Auto Trait Implementations§
impl<const N: usize, W> Freeze for Writer<N, W>where
W: Freeze,
impl<const N: usize, W> RefUnwindSafe for Writer<N, W>where
W: RefUnwindSafe,
impl<const N: usize, W> Send for Writer<N, W>where
W: Send,
impl<const N: usize, W> Sync for Writer<N, W>where
W: Sync,
impl<const N: usize, W> Unpin for Writer<N, W>where
W: Unpin,
impl<const N: usize, W> UnwindSafe for Writer<N, 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