Skip to content

Add :powerio parser backend (hard dependency on PowerIO) #56

@samtalki

Description

@samtalki

Route parse_file(path; backend=:powerio) through the PowerIO Rust core, making PowerIO a hard dependency of PowerDiff. PowerIO stays raw and lossless; PowerDiff normalizes (the existing _normalize_* / _finish_parse tail), so a ParsedCase from :powerio is indistinguishable from :native.

Status: wired on mk/backends.

  • import PowerIO; PowerIO in [deps], pinned via [sources] (git) until it registers in General — then drop [sources] and add [compat].
  • _load_powerio_network + _parsedcase_from_powerio + _powerio_cost_row in src/parser.jl; :native stays the default; :powerio needs a file path (the IO method rejects it).
  • caseio→powerio rename throughout; docs/caseio-integration.mddocs/powerio-integration.md.
  • Parity test in test/test_parser_parity.jl: :powerio == :native field-for-field on case5 / case14 / case30, gated on PowerIO.library_available(). Verified 672/672 locally.

Ordering / blocked on:

See docs/powerio-integration.md for the field-by-field contract.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions