Closed antiguru closed 4 months ago
https://github.com/TimelyDataflow/differential-dataflow/pull/478 shows how to integrate this with differential.
Oh, if we want to have the return-position impl trait, we'd need to move to Rust 1.75. This, or refactoring to use explicit types both work for me.
Introduce a
ContainerBuilder
that sits on the outputs of operators and gets a chance to process data as produced by the operator. While the PR breaks many APIs, it tries to preserve compatibility for all users ofoutput.session
, which we hard code to a builder that's based on the length and capacity of a container. In other places, we need a type annotation, specifically when there is no call tosession
, or just a call tosession_with_builder
, which is the equivalent tosession
but doesn't force a specific builder.The PR also replaces
AutoflushSession
withAutoflushSessionCore
, and renames the latter to avoidCore
. All uses were internal and easy to fix, which should apply to external crates, too.This is compatible with differential to offer in-place consolidation.
Do not look commit-by-commit as the history represents a worklog instead of a grouping of changes. Readers are encouraged to first look at the
timely-container
library.