Skip to content

Commit 8564733

Browse files
authored
Merge pull request #86 from ArcInstitute/improve-namespace-of-codebase
Improve namespace of codebase
2 parents d98688c + d91762b commit 8564733

14 files changed

Lines changed: 344 additions & 291 deletions

File tree

examples/network_streaming.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@ use std::io::{BufReader, BufWriter};
22
use std::net::{TcpListener, TcpStream};
33
use std::thread;
44

5-
use binseq::bq::{BinseqHeader, BinseqHeaderBuilder, StreamReader, StreamWriterBuilder};
5+
use binseq::bq::{FileHeader, FileHeaderBuilder, StreamReader, StreamWriterBuilder};
66
use binseq::{BinseqRecord, Policy, Result};
77

8-
fn server(header: BinseqHeader, sequence: &[u8]) -> Result<()> {
8+
fn server(header: FileHeader, sequence: &[u8]) -> Result<()> {
99
// Create a listener on localhost:3000
1010
let listener = TcpListener::bind("127.0.0.1:3000").expect("Failed to bind to address");
1111
println!("Server listening on 127.0.0.1:3000");
@@ -80,7 +80,7 @@ fn client() -> Result<()> {
8080

8181
fn main() -> Result<()> {
8282
// Create a header for sequences of length 100
83-
let header = BinseqHeaderBuilder::new().slen(100).build()?;
83+
let header = FileHeaderBuilder::new().slen(100).build()?;
8484

8585
// Create some example sequence data
8686
let sequence = b"ACGT".repeat(25); // 100 nucleotides

examples/streaming.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
use std::io::{BufReader, Cursor};
22

3-
use binseq::bq::{BinseqHeaderBuilder, StreamReader, StreamWriterBuilder};
3+
use binseq::bq::{FileHeaderBuilder, StreamReader, StreamWriterBuilder};
44
use binseq::{BinseqRecord, Policy, Result};
55

66
fn main() -> Result<()> {
77
// Create a header for sequences of length 100
8-
let header = BinseqHeaderBuilder::new().slen(100).build()?;
8+
let header = FileHeaderBuilder::new().slen(100).build()?;
99

1010
// Create some example sequence data
1111
let sequence = b"ACGT".repeat(25); // 100 nucleotides

src/bq/header.rs

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -32,22 +32,22 @@ pub const SIZE_HEADER: usize = 32;
3232
pub const RESERVED: [u8; 17] = [42; 17];
3333

3434
#[derive(Debug, Clone, Copy)]
35-
pub struct BinseqHeaderBuilder {
35+
pub struct FileHeaderBuilder {
3636
slen: Option<u32>,
3737
xlen: Option<u32>,
3838
bitsize: Option<BitSize>,
3939
flags: Option<bool>,
4040
}
41-
impl Default for BinseqHeaderBuilder {
41+
impl Default for FileHeaderBuilder {
4242
fn default() -> Self {
4343
Self::new()
4444
}
4545
}
4646

47-
impl BinseqHeaderBuilder {
47+
impl FileHeaderBuilder {
4848
#[must_use]
4949
pub fn new() -> Self {
50-
BinseqHeaderBuilder {
50+
FileHeaderBuilder {
5151
slen: None,
5252
xlen: None,
5353
bitsize: None,
@@ -74,8 +74,8 @@ impl BinseqHeaderBuilder {
7474
self.flags = Some(flags);
7575
self
7676
}
77-
pub fn build(self) -> Result<BinseqHeader> {
78-
Ok(BinseqHeader {
77+
pub fn build(self) -> Result<FileHeader> {
78+
Ok(FileHeader {
7979
magic: MAGIC,
8080
format: FORMAT,
8181
slen: if let Some(slen) = self.slen {
@@ -93,13 +93,13 @@ impl BinseqHeaderBuilder {
9393

9494
/// Header structure for binary sequence files
9595
///
96-
/// The `BinseqHeader` contains metadata about the binary sequence data stored in a file,
96+
/// The `FileHeader` contains metadata about the binary sequence data stored in a file,
9797
/// including format information, sequence lengths, and space for future extensions.
9898
///
9999
/// The total size of this structure is 32 bytes, with a fixed layout to ensure
100100
/// consistent reading and writing across different platforms.
101101
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
102-
pub struct BinseqHeader {
102+
pub struct FileHeader {
103103
/// Magic number to identify the file format
104104
///
105105
/// 4 bytes
@@ -135,7 +135,7 @@ pub struct BinseqHeader {
135135
/// 17 bytes
136136
pub reserved: [u8; 17],
137137
}
138-
impl BinseqHeader {
138+
impl FileHeader {
139139
/// Creates a new header with the specified sequence length
140140
///
141141
/// This constructor initializes a standard header with the given sequence length,
@@ -150,7 +150,7 @@ impl BinseqHeader {
150150
///
151151
/// # Returns
152152
///
153-
/// A new `BinseqHeader` instance
153+
/// A new `FileHeader` instance
154154
#[must_use]
155155
pub fn new(bits: BitSize, slen: u32, flags: bool) -> Self {
156156
Self {
@@ -178,7 +178,7 @@ impl BinseqHeader {
178178
///
179179
/// # Returns
180180
///
181-
/// A new `BinseqHeader` instance with extended sequence information
181+
/// A new `FileHeader` instance with extended sequence information
182182
#[must_use]
183183
pub fn new_extended(bits: BitSize, slen: u32, xlen: u32, flags: bool) -> Self {
184184
Self {
@@ -214,7 +214,7 @@ impl BinseqHeader {
214214
///
215215
/// # Returns
216216
///
217-
/// * `Ok(BinseqHeader)` - A valid header parsed from the buffer
217+
/// * `Ok(FileHeader)` - A valid header parsed from the buffer
218218
/// * `Err(Error)` - If the buffer contains invalid header data
219219
///
220220
/// # Errors
@@ -266,7 +266,7 @@ impl BinseqHeader {
266266
///
267267
/// # Returns
268268
///
269-
/// * `Ok(BinseqHeader)` - A valid header parsed from the buffer
269+
/// * `Ok(FileHeader)` - A valid header parsed from the buffer
270270
/// * `Err(Error)` - If the buffer is too small or contains invalid header data
271271
///
272272
/// # Errors
@@ -324,7 +324,7 @@ impl BinseqHeader {
324324
///
325325
/// # Returns
326326
///
327-
/// * `Ok(BinseqHeader)` - A valid header read from the reader
327+
/// * `Ok(FileHeader)` - A valid header read from the reader
328328
/// * `Err(Error)` - If reading from the reader failed or the header data is invalid
329329
///
330330
/// # Errors

src/bq/mod.rs

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22
//!
33
//! *.bq files are BINSEQ variants for **fixed-length** records and **does not support quality scores**.
44
//!
5-
//! For variable-length records and optional quality scores use the [`vbq`](crate::vbq) module.
5+
//! For variable-length records and optional quality scores use the [`cbq`](crate::cbq) or [`vbq`](crate::vbq) modules.
66
//!
7-
//! This module contains the utilities for reading, writing, and interacting with BINSEQ files.
7+
//! This module contains the utilities for reading, writing, and interacting with BQ files.
88
//!
99
//! For detailed information on the file format, see our [paper](https://www.biorxiv.org/content/10.1101/2025.04.08.647863v1).
1010
//!
@@ -46,11 +46,11 @@
4646
//! // Create an in-memory buffer for output
4747
//! let output_handle = Cursor::new(Vec::new());
4848
//!
49-
//! // Initialize our BINSEQ header (64 bp, only primary)
50-
//! let header = bq::BinseqHeaderBuilder::new().slen(64).build().unwrap();
49+
//! // Initialize our BQ header (64 bp, only primary)
50+
//! let header = bq::FileHeaderBuilder::new().slen(64).build().unwrap();
5151
//!
52-
//! // Initialize our BINSEQ writer
53-
//! let mut writer = bq::BinseqWriterBuilder::default()
52+
//! // Initialize our BQ writer
53+
//! let mut writer = bq::WriterBuilder::default()
5454
//! .header(header)
5555
//! .build(output_handle)
5656
//! .unwrap();
@@ -79,11 +79,11 @@
7979
//! // Create an in-memory buffer for output
8080
//! let output_handle = Cursor::new(Vec::new());
8181
//!
82-
//! // Initialize our BINSEQ header (64 bp and 128bp)
83-
//! let header = bq::BinseqHeaderBuilder::new().slen(64).xlen(128).build().unwrap();
82+
//! // Initialize our BQ header (64 bp and 128bp)
83+
//! let header = bq::FileHeaderBuilder::new().slen(64).xlen(128).build().unwrap();
8484
//!
85-
//! // Initialize our BINSEQ writer
86-
//! let mut writer = bq::BinseqWriterBuilder::default()
85+
//! // Initialize our BQ writer
86+
//! let mut writer = bq::WriterBuilder::default()
8787
//! .header(header)
8888
//! .build(output_handle)
8989
//! .unwrap();
@@ -109,12 +109,12 @@
109109
//!
110110
//! ```
111111
//! use binseq::{Policy, Result, BinseqRecord, SequencingRecordBuilder};
112-
//! use binseq::bq::{BinseqHeaderBuilder, StreamReader, StreamWriterBuilder};
112+
//! use binseq::bq::{FileHeaderBuilder, StreamReader, StreamWriterBuilder};
113113
//! use std::io::{BufReader, Cursor};
114114
//!
115115
//! fn main() -> Result<()> {
116116
//! // Create a header for sequences of length 100
117-
//! let header = BinseqHeaderBuilder::new().slen(100).build()?;
117+
//! let header = FileHeaderBuilder::new().slen(100).build()?;
118118
//!
119119
//! // Create a stream writer
120120
//! let mut writer = StreamWriterBuilder::default()
@@ -150,7 +150,7 @@
150150
//!
151151
//! ## BQ file format
152152
//!
153-
//! A BINSEQ file consists of two sections:
153+
//! A BQ file consists of two sections:
154154
//!
155155
//! 1. Fixed-size header (32 bytes)
156156
//! 2. Record data section
@@ -241,6 +241,6 @@ mod header;
241241
mod reader;
242242
mod writer;
243243

244-
pub use header::{BinseqHeader, BinseqHeaderBuilder, SIZE_HEADER};
244+
pub use header::{FileHeader, FileHeaderBuilder, SIZE_HEADER};
245245
pub use reader::{MmapReader, RefRecord, StreamReader};
246-
pub use writer::{BinseqWriter, BinseqWriterBuilder, Encoder, StreamWriter, StreamWriterBuilder};
246+
pub use writer::{Encoder, StreamWriter, StreamWriterBuilder, Writer, WriterBuilder};

src/bq/reader.rs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ use bitnuc::BitSize;
1717
use bytemuck::cast_slice;
1818
use memmap2::Mmap;
1919

20-
use super::header::{BinseqHeader, SIZE_HEADER};
20+
use super::header::{FileHeader, SIZE_HEADER};
2121
use crate::{
2222
BinseqRecord, DEFAULT_QUALITY_SCORE, Error, ParallelProcessor, ParallelReader,
2323
error::{ReadError, Result},
@@ -298,12 +298,12 @@ impl RecordConfig {
298298
///
299299
/// # Arguments
300300
///
301-
/// * `header` - A reference to a `BinseqHeader` containing sequence lengths
301+
/// * `header` - A reference to a `FileHeader` containing sequence lengths
302302
///
303303
/// # Returns
304304
///
305305
/// A new `RecordConfig` instance with the sequence lengths from the header
306-
pub fn from_header(header: &BinseqHeader) -> Self {
306+
pub fn from_header(header: &FileHeader) -> Self {
307307
Self::new(
308308
header.slen as usize,
309309
header.xlen as usize,
@@ -411,7 +411,7 @@ pub struct MmapReader {
411411
mmap: Arc<Mmap>,
412412

413413
/// Binary sequence file header containing format information
414-
header: BinseqHeader,
414+
header: FileHeader,
415415

416416
/// Configuration defining the layout of records in the file
417417
config: RecordConfig,
@@ -456,7 +456,7 @@ impl MmapReader {
456456
let mmap = unsafe { Mmap::map(&file)? };
457457

458458
// Read header from mapped memory
459-
let header = BinseqHeader::from_buffer(&mmap)?;
459+
let header = FileHeader::from_buffer(&mmap)?;
460460

461461
// Record configuraration
462462
let config = RecordConfig::from_header(&header);
@@ -491,7 +491,7 @@ impl MmapReader {
491491
///
492492
/// The header contains format information and sequence length specifications.
493493
#[must_use]
494-
pub fn header(&self) -> BinseqHeader {
494+
pub fn header(&self) -> FileHeader {
495495
self.header
496496
}
497497

@@ -580,7 +580,7 @@ pub struct StreamReader<R: Read> {
580580
reader: R,
581581

582582
/// Binary sequence file header containing format information
583-
header: Option<BinseqHeader>,
583+
header: Option<FileHeader>,
584584

585585
/// Configuration defining the layout of records in the file
586586
config: Option<RecordConfig>,
@@ -659,7 +659,7 @@ impl<R: Read> StreamReader<R> {
659659
///
660660
/// # Returns
661661
///
662-
/// * `Ok(&BinseqHeader)` - A reference to the validated header
662+
/// * `Ok(&FileHeader)` - A reference to the validated header
663663
/// * `Err(Error)` - If reading or validating the header fails
664664
///
665665
/// # Panics
@@ -672,7 +672,7 @@ impl<R: Read> StreamReader<R> {
672672
/// * There is an I/O error when reading from the source
673673
/// * The header data is invalid
674674
/// * End of stream is reached before the full header can be read
675-
pub fn read_header(&mut self) -> Result<&BinseqHeader> {
675+
pub fn read_header(&mut self) -> Result<&FileHeader> {
676676
if self.header.is_some() {
677677
return Ok(self
678678
.header
@@ -687,7 +687,7 @@ impl<R: Read> StreamReader<R> {
687687

688688
// Parse header
689689
let header_slice = &self.buffer[self.buffer_pos..self.buffer_pos + SIZE_HEADER];
690-
let header = BinseqHeader::from_buffer(header_slice)?;
690+
let header = FileHeader::from_buffer(header_slice)?;
691691

692692
self.header = Some(header);
693693
self.config = Some(RecordConfig::from_header(&header));

0 commit comments

Comments
 (0)