This change removes the Core variants of types, traits, and functions that we introduced in #426. However, this means it introduces breaking changes, specifically where we used Data parameters in the past we now use Container. This is desirable because maintaining the old facade comes with a cognitive overhead. After this change, most places that previously specified individual elements now specify containers. All places that only apply to specific (mostly Vec<_>) containers are exepted.
The most notable breaking changes are in inputs, to_stream, and feedback, which now need to know the kind of container they produce. In the past, they were fixed to Vec<_>, but now the caller needs to be explicit about it.
The PR looks rather large, but most of the changes are purely mechanical. For wildly-used types, there is a commit that inlines the non-core variant, and a follow-up to rename the core-variant to the old name. This should make it explicit that each change has limited scope. Tests should pass after each individual change.
60ae900977ae8e1f03098f60a4696343cd77c0bb changes inputs to containers.
5987d4cfd4bab462a101f790093f5d468d752783 changes feedback to use containers.
Warning: breaking changes up ahead!
Fixes #510
This change removes the
Core
variants of types, traits, and functions that we introduced in #426. However, this means it introduces breaking changes, specifically where we usedData
parameters in the past we now useContainer
. This is desirable because maintaining the old facade comes with a cognitive overhead. After this change, most places that previously specified individual elements now specify containers. All places that only apply to specific (mostlyVec<_>
) containers are exepted.The most notable breaking changes are in inputs,
to_stream
, and feedback, which now need to know the kind of container they produce. In the past, they were fixed toVec<_>
, but now the caller needs to be explicit about it.The PR looks rather large, but most of the changes are purely mechanical. For wildly-used types, there is a commit that inlines the non-core variant, and a follow-up to rename the core-variant to the old name. This should make it explicit that each change has limited scope. Tests should pass after each individual change.