Skip to content

Format plugin architecture for multi-format I/O #95

@vmvarela

Description

@vmvarela

Part of #68

Description

Refactor the current CSV reader/writer into a pluggable format interface so new formats can be added incrementally. This is the prerequisite for all other #68 sub-issues.

Acceptance Criteria

  • Internal reader/writer interface extracted (e.g. FormatReader, FormatWriter types or function pointers)
  • CSV remains the default format — no behavior change for existing users
  • --input-format <fmt> / -I <fmt> flag accepted (currently: only csv valid)
  • --output-format <fmt> / -O <fmt> flag accepted (currently: only csv valid)
  • Unknown format values produce a clear error message listing supported formats
  • Existing --tsv and --json flags continue to work (mapped to --output-format tsv/json internally)

Notes

  • Keep it simple: a tagged union or vtable-style dispatch in Zig is sufficient
  • Don't remove --tsv / --json flags yet — they can be aliases mapped to --output-format
  • This issue is purely architectural; no new format support is added here

Metadata

Metadata

Assignees

No one assigned

    Labels

    priority:mediumShould be done soonsize:sSmall — 1 to 4 hoursstatus:readyRefined and ready for sprint selectiontype:choreMaintenance, refactoring, tooling

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions