Summary
Refactor h5cpp-compiler so that every backend descriptor emitter (HDF5, Protocol Buffers, JSON Schema, MessagePack, CBOR, BSON, Avro, RLP) plugs into a single unified CLI surface and dispatcher.
Current State
Goal
- Unified CLI: One
--format [hdf5|protobuf|json|msgpack|cbor|bson|avro|rlp] flag + one -o <file> output path.
- Unified dispatcher: A single
switch (Format) in src/h5cpp.cpp so each backend only adds one case.
- Generic test runner:
run_fixture.cmake takes a BACKEND_FORMAT parameter; one diff block, not eight.
- Embarrassingly parallel lanes: Each backend branches directly from
staging with no commit-level dependencies.
Acceptance Criteria
Summary
Refactor h5cpp-compiler so that every backend descriptor emitter (HDF5, Protocol Buffers, JSON Schema, MessagePack, CBOR, BSON, Avro, RLP) plugs into a single unified CLI surface and dispatcher.
Current State
--json-out,--msgpack-out, etc. flags.tests/run_fixture.cmakehas 8 copy-pasted golden-diff blocks (one per backend).Goal
--format [hdf5|protobuf|json|msgpack|cbor|bson|avro|rlp]flag + one-o <file>output path.switch (Format)insrc/h5cpp.cppso each backend only adds onecase.run_fixture.cmaketakes aBACKEND_FORMATparameter; one diff block, not eight.stagingwith no commit-level dependencies.Acceptance Criteria
stagingcontaining shared attribute framework + unified dispatcher.--format protobuf.