Skip to content

docs: resolve the five hidden public traits - #217

Merged
blackopsrepl merged 5 commits into
mainfrom
feature/216-hidden-traits
Nov 5, 2026
Merged

blackopsrepl merged 5 commits into
mainfrom
feature/216-hidden-traits

Conversation

@blackopsrepl

Copy link
Copy Markdown
Collaborator

Closes #216. Base main @ 47b006f0, five commits, one per trait:

  • a1f59acc UnassignedEntity documented, with a doctest implementing it by hand and filtering through unassigned().
  • 48c25a0b ExplainRow documented as the operator extension point's explanation contract.
  • aebef6e3 OperatorScorerSet (moved to operator_scorer/set.rs for the file-length limit, now re-exported), OperatorScorer and ScorerChain documented; one trybuild diagnostic now prints OperatorScorer by its short name.
  • 892e1dc4 projected Source, RowCoordinate and RowOwner documented.
  • b2f02b55 ResourceMoveCursor: the no-op #[doc(hidden)] removed (private module, not re-exported), methods documented, unused provided next_owned_candidate_inspected_with_resources deleted.

Each commit carries its own public-api.txt delta (2 + 18 + 16 lines).

Gate (fmt, clippy, doc-names file-length facade-reachability public-api deps, rustdoc, examples, workspace all-feature tests, doctests): EXIT 0, 1592 passed, 0 failed, 71 result lines.

UnassignedEntity bounds the public UniConstraintStream::unassigned but was
#[doc(hidden)]. It is now documented: what #[planning_entity] implements
for an entity with one Option planning variable, and a doctest
implementing it by hand for a sentinel-valued entity filtered through
unassigned().
ExplainRow is re-exported from the documented stream::relational::operator
extension point and bounds explanation on terminals, but was
#[doc(hidden)]. It is now documented: when terminals call it, what each
view family appends, and that a custom operator implements it for its
View to make its matches explainable.
…hain

OperatorScorerSet bounds public SharedOperatorTerminal and
SharedOperatorBuilder methods, and OperatorScorer and ScorerChain appear
in the terminal types they return, but all three were #[doc(hidden)] and
the trait was not re-exported. The trait moves to
operator_scorer/set.rs, keeping operator_scorer.rs under the file-length
limit, is re-exported beside them, and all three are documented: what a
scorer set does per notification, each implementation, and every method.
stream::projected::Source is re-exported and bounds the projected stream
types, and its methods take RowCoordinate and RowOwner, but all three were
#[doc(hidden)]. They are now documented: what a source produces and how
the operator tree re-reads it per notification, every method, and the row
identity fields and constructors.
ResourceMoveCursor carried #[doc(hidden)], which did nothing: the trait
lives in a private module and is not re-exported, so code outside the
crate cannot name it, and it is reachable only as the bound of the
local-search cursor source behind local_search. The attribute is gone,
the trait says so, every method is documented, and the provided
next_owned_candidate_inspected_with_resources, which nothing called, is
deleted.

Closes #216.
@blackopsrepl
blackopsrepl merged commit b2f02b5 into main Nov 5, 2026
12 checks passed
@blackopsrepl
blackopsrepl deleted the feature/216-hidden-traits branch November 5, 2026 12:18
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.

Five hidden public traits appear in public signatures

1 participant