Skip to content

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

Closed

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.md → docs/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.

Activity

  1. samtalki commented on Jun 15, 2026

    @samtalki
    MemberAuthor

    addressed by #48

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions