Skip to content

Add generic BRF printer - #69

Merged
ip332 merged 2 commits into
mainfrom
runtime/c-generic-brf-print
Sep 17, 2026
Merged

ip332 merged 2 commits into
mainfrom
runtime/c-generic-brf-print

Conversation

@ip332

@ip332 ip332 commented Sep 17, 2026

Copy link
Copy Markdown
Owner

Summary

  • Add human-readable inspection for arbitrary validated BRF records without generated code.
  • Implement the printer exclusively as a consumer of quarry_brf_traverse().
  • Stream output through a caller-provided callback with caller-owned bounded workspace and output limits.
  • Support reflective names with minimal-QBS numeric fallback, scalar values, strings/escaping, bytes, numeric enums, arrays, nested records, and record arrays.
  • Keep the output deterministic and diagnostic-oriented; it is not a serialization format.

Compatibility

  • QBS and BRF formats unchanged.
  • Generated-code epochs unchanged: C++ 3, C 2, Python 1.
  • No heap allocation or native recursive BRF walker.

Validation

  • Full CTest: 52/52 passed
  • Focused generic C printer tests passed, including writer failure, output limits, deterministic output, and nested formatting
  • Strict C99 build passed
  • Traversal, encoding, decoding, packaging, and interoperability tests passed

@ip332
ip332 merged commit 52c1596 into main Sep 17, 2026
5 checks passed
@ip332
ip332 deleted the runtime/c-generic-brf-print branch September 17, 2026 19:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant