pub struct SegmentDesc {
pub group_id: u32,
pub in_group_id: u32,
pub is_rev_comp: bool,
pub raw_length: u32,
}Expand description
A segment descriptor identifying a compressed segment
§Architecture
Segments are organized into groups by terminal k-mers (front and back). Each group has two streams:
- ref_stream (xGr): Contains reference segment (in_group_id = 0)
- delta_stream (xGd): Contains LZ-encoded segments (in_group_id = 1, 2, 3, …)
For groups >= 16 (LZ-enabled):
- Reference is stored raw in ref_stream
- Other segments are LZ-encoded against reference
For groups 0-15 (raw-only):
- No LZ encoding, all segments stored raw
§Critical: in_group_id Indexing
- in_group_id = 0: ALWAYS the reference segment (in ref_stream)
- in_group_id >= 1: Delta segments (in delta_stream)
IMPORTANT: Do NOT store reference in delta_stream! It must be:
- Written to ref_stream
- Registered with in_group_id = 0
- Not included in delta pack
Fields§
§group_id: u32§in_group_id: u32§is_rev_comp: bool§raw_length: u32Implementations§
Trait Implementations§
Source§impl Clone for SegmentDesc
impl Clone for SegmentDesc
Source§fn clone(&self) -> SegmentDesc
fn clone(&self) -> SegmentDesc
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for SegmentDesc
impl Debug for SegmentDesc
Source§impl PartialEq for SegmentDesc
impl PartialEq for SegmentDesc
impl Copy for SegmentDesc
impl StructuralPartialEq for SegmentDesc
Auto Trait Implementations§
impl Freeze for SegmentDesc
impl RefUnwindSafe for SegmentDesc
impl Send for SegmentDesc
impl Sync for SegmentDesc
impl Unpin for SegmentDesc
impl UnwindSafe for SegmentDesc
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