Composes two instances of Bijection in a new Bijection, with this one applied first.
Composes two instances of Bijection in a new Bijection, with this one applied first.
Composes two instances of Bijection in a new Bijection, with this one applied last.
Composes two instances of Bijection in a new Bijection, with this one applied last.
Returns a new pivot that converts an Iterable of (K, V) to an Iterable of (K1, Iterable[(K2, V)]).
Returns a new pivot that converts an Iterable of (K, V) to an Iterable of (K1, Iterable[(K2, V)]). This is useful for pivoting multiple (K, V) pairs into a single key in some KV store.
Returns a new Pivot that converts an Iterable of (K, T) to an Iterable of ((K1, T), Iterable[K2]).
Returns a new Pivot that converts an Iterable of (K, T) to an Iterable of ((K1, T), Iterable[K2]). This is useful for applying a new pivoting scheme on top of this one while maintaining some outer key component.
Pivot is useful in moving from a 1D space of K to a 2D mapping space of K1 x K2. If the elements within the K space have many repeated elements -- imagine the "time" component of a Key in a timeseries key-value store -- pivoting the changing component into an inner K2 while leaving the repeated component in an outer K1 can assist in compressing a datastore's space requirements.
Type Parameters:
K: Original Key K1: Outer Key K2: Inner Key
Trivial: Pivot[(Event, Timestamp), Event, Timestamp] would pivot the timestamp component out of a compound key.