Skip to content

execution_graph: harden report mask semantics - #94

Merged
waywardmonkeys merged 1 commit into
forest-rs:mainfrom
waywardmonkeys:report-mask-api
Jun 17, 2026
Merged

execution_graph: harden report mask semantics#94
waywardmonkeys merged 1 commit into
forest-rs:mainfrom
waywardmonkeys:report-mask-api

Conversation

@waywardmonkeys

Copy link
Copy Markdown
Contributor

Make ReportDetailMask a composable bitmask before the reporting API settles. This adds Default, const union/intersection helpers, and the standard bitwise operator impls so callers can build detail masks without waiting for named constants for every combination.

Honor the detail bits independently: requesting WHY_PATH no longer also fills because_of unless BECAUSE_OF is requested. The expanded tests cover NONE, BECAUSE_OF, WHY_PATH, and combined masks so this behavior stays explicit.

Mark the public report output structs as non_exhaustive while the API is still early, allowing future report fields to be added without another breaking shape change.

Make `ReportDetailMask` a composable bitmask before the reporting API settles. This adds `Default`, const union/intersection helpers, and the standard bitwise operator impls so callers can build detail masks without waiting for named constants for every combination.

Honor the detail bits independently: requesting `WHY_PATH` no longer also fills `because_of` unless `BECAUSE_OF` is requested. The expanded tests cover `NONE`, `BECAUSE_OF`, `WHY_PATH`, and combined masks so this behavior stays explicit.

Mark the public report output structs as `non_exhaustive` while the API is still early, allowing future report fields to be added without another breaking shape change.
@waywardmonkeys
waywardmonkeys merged commit 53868cf into forest-rs:main Jun 17, 2026
16 checks passed
@waywardmonkeys
waywardmonkeys deleted the report-mask-api branch June 17, 2026 03:48
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