Skip to content

BedParser

Mojo struct 🡭

@memory_only
struct BedParser[R: Reader]

Streaming BED parser over a Reader.

Skips comment lines (starting with #) and blank lines. API: - next_view() -> BedView (zero-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]: AnyStruct[_BedParserRecordIter[R, origin]] = _BedParserRecordIter[R, origin]
  • R (Reader)

AnyType, ImplicitlyDestructible, Iterable, Movable

def __init__(out self, var reader: R)

Args:

  • reader (R)
  • self (Self)

Returns:

Self

Raises:

def has_more(self) -> Bool

Args:

  • self (Self)

Returns:

Bool

def next_view(mut self) -> BedView[MutExternalOrigin]

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

Args:

  • self (Self)

Returns:

BedView

Raises:

EOFError: When no more records. Error: On invalid field count, non-integer coordinates, chromStart > chromEnd, invalid score/strand/itemRgb/block lists.

def next_record(mut self) -> BedRecord

Return the next BED record as an owned BedRecord.

Args:

  • self (Self)

Returns:

BedRecord

Raises:

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

Iterator yielding zero-alloc BedViews.

Args:

  • self (Self)

Returns:

_BedParserViewIter

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

Iterator yielding owned BedRecords.

Args:

  • self (Self)

Returns:

_BedParserRecordIter

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

Args:

  • self (Self)

Returns:

_BedParserRecordIter