Skip to content

BedParser

Mojo struct 🡭

@memory_only
struct BedParser[R: Reader]

Streaming BED parser over a Reader.

Skips comment lines (#), blank lines, and UCSC track/browser header lines. Accepts any column count >= 3. Columns 10+ (or 10-11 for BED10/11) are collected into other_fields as raw byte spans.

API: - next_view() -> BedView (zero-unsafe_alloc; invalidated on next advance) - next_record() -> BedRecord (materialized; raises EOFError when exhausted) - for rec in parser / records() -> BedRecord - for view in parser.views() -> BedView

  • IteratorType[origin: Origin[mut=mut]]: AnyStruct[_BedParserRecordIter[R, origin]] = _BedParserRecordIter[R, origin]
  • R (Reader)

AnyType, Deinitable, Iterable, Movable

fn def __init__(out self, var reader: R)

Args:

  • reader (R)
  • self (Self)

Returns:

Self

Raises:

fn def has_more(self) -> Bool

Args:

  • self (Self)

Returns:

Bool

fn def next_view(mut self) -> BedView[MutUntrackedOrigin]

Return the next BED record as a zero-unsafe_alloc view.

Args:

  • self (Self)

Returns:

BedView[MutUntrackedOrigin]

Raises:

EOFError: When no more records. Error: On fewer than 3 fields, non-integer coordinates, chromStart > chromEnd, or invalid score/strand/itemRgb/blocks.

fn def next_record(mut self) -> BedRecord

Return the next BED record as an owned BedRecord.

Args:

  • self (Self)

Returns:

BedRecord

Raises:

fn def views(ref self) -> _BedParserViewIter[R, origin_of(self)]

Iterator yielding zero-unsafe_alloc BedViews.

Args:

  • self (Self)

Returns:

_BedParserViewIter[R, origin_of(self)]

fn def records(ref self) -> _BedParserRecordIter[R, origin_of(self)]

Iterator yielding owned BedRecords.

Args:

  • self (Self)

Returns:

_BedParserRecordIter[R, origin_of(self)]

fn def __iter__(ref self) -> _BedParserRecordIter[R, origin_of(self)]

Args:

  • self (Self)

Returns:

_BedParserRecordIter[R, origin_of(self)]