Closed
Description
The Select
trait - a public interface - uses the following pattern to hide private implementation details:
priv trait SelectInner { ... implementation details ... }
pub trait Select: SelectInner { ... public API ... }
This is the only place where we use this pattern and I think it's kind of dubious - Select
's signature refers to a type that, from the user's perspective, doesn't exist. It's a leaky abstraction.
There may be similar patterns that are more palatable but uses a private enum variant - the enum type is public but opaque.
Metadata
Metadata
Assignees
Labels
No labels