Trait Stage Tuple
pub trait StageTuple<S: GraphSample>: Tuple<S> { }Expand description
Sealed heterogeneous processor tuples of arity 1..8. Private-construction permits keep internal owner/wrapper operations inaccessible even when a generic caller has this public supertrait bound.
The internal store helper takes a mandatory private Permit argument that no
external code can construct. Calling it with only the tuple therefore fails with
E0061 (wrong argument count). That diagnostic exists only because of the Permit
parameter: if the parameter were removed from store, the same call would
type-check, so this negative example discriminates the safeguard.
use ravet_graph::StageTuple;
fn escape<T: StageTuple<f32>>(stages: T) {
let _ = T::store(stages);
}Positive companion: the generic bound itself is valid and usable.
use ravet_graph::StageTuple;
fn bound_is_valid<T: StageTuple<f32>>(stages: T) -> T {
stages
}
let _ = bound_is_valid::<(ravet_gain::GainProcessor,)>;Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".