pub struct KeyDataMap<K, V> {
pub values: BTreeMap1<K, V>,
}Expand description
A generic key-value data map with interpolation support.
Stores key-value pairs in a BTreeMap1 for efficient ordered
queries and supports various interpolation methods. The map is
guaranteed to be non-empty at the type level.
When the interpolation feature is enabled, each value can have an
associated interpolation specification for animation curves.
Use the type alias TimeDataMap<V> for time-keyed maps (the common case),
or use KeyDataMap<Position, V> for curve-domain maps.
Fields§
§values: BTreeMap1<K, V>The key-value pairs with optional interpolation keys.
Guaranteed non-empty by BTreeMap1.
Implementations§
Source§impl<K: Ord, V> KeyDataMap<K, V>
impl<K: Ord, V> KeyDataMap<K, V>
Source§impl<K: Ord, V> KeyDataMap<K, V>
impl<K: Ord, V> KeyDataMap<K, V>
Sourcepub fn from_single(key: K, value: V) -> Self
pub fn from_single(key: K, value: V) -> Self
Create a map with a single key-value pair.
Source§impl<K: Ord, V> KeyDataMap<K, V>
impl<K: Ord, V> KeyDataMap<K, V>
Source§impl<K, V> KeyDataMap<K, V>
impl<K, V> KeyDataMap<K, V>
pub fn interpolate(&self, key: K) -> V
Source§impl<K: Ord + Copy + Into<f32>, V> KeyDataMap<K, V>
impl<K: Ord + Copy + Into<f32>, V> KeyDataMap<K, V>
pub fn closest_sample(&self, key: K) -> &V
Sourcepub fn sample_at_or_before(&self, key: K) -> Option<&V>
pub fn sample_at_or_before(&self, key: K) -> Option<&V>
Get the value at or before the given key.
Sourcepub fn sample_at_or_after(&self, key: K) -> Option<&V>
pub fn sample_at_or_after(&self, key: K) -> Option<&V>
Get the value at or after the given key.
Trait Implementations§
Source§impl<K, V> AsRef<BTreeMap<K, V>> for KeyDataMap<K, V>
Available on non-crate feature interpolation only.
impl<K, V> AsRef<BTreeMap<K, V>> for KeyDataMap<K, V>
Available on non-crate feature
interpolation only.Source§impl<K: Clone, V: Clone> Clone for KeyDataMap<K, V>
impl<K: Clone, V: Clone> Clone for KeyDataMap<K, V>
Source§fn clone(&self) -> KeyDataMap<K, V>
fn clone(&self) -> KeyDataMap<K, V>
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl<K: Ord, V> DataTypeOps for KeyDataMap<K, V>where
V: DataTypeOps,
Available on crate feature builtin-types only.
impl<K: Ord, V> DataTypeOps for KeyDataMap<K, V>where
V: DataTypeOps,
Available on crate feature
builtin-types only.Source§impl From<KeyDataMap<Tick, Boolean>> for AnimatedData
impl From<KeyDataMap<Tick, Boolean>> for AnimatedData
Source§fn from(v: TimeDataMap<Boolean>) -> AnimatedData
fn from(v: TimeDataMap<Boolean>) -> AnimatedData
Converts to this type from the input type.
Source§impl From<KeyDataMap<Tick, BooleanVec>> for AnimatedData
impl From<KeyDataMap<Tick, BooleanVec>> for AnimatedData
Source§fn from(v: TimeDataMap<BooleanVec>) -> AnimatedData
fn from(v: TimeDataMap<BooleanVec>) -> AnimatedData
Converts to this type from the input type.
Source§impl From<KeyDataMap<Tick, Color>> for AnimatedData
impl From<KeyDataMap<Tick, Color>> for AnimatedData
Source§fn from(v: TimeDataMap<Color>) -> AnimatedData
fn from(v: TimeDataMap<Color>) -> AnimatedData
Converts to this type from the input type.
Source§impl From<KeyDataMap<Tick, ColorCurve>> for AnimatedData
Available on crate feature curves only.
impl From<KeyDataMap<Tick, ColorCurve>> for AnimatedData
Available on crate feature
curves only.Source§fn from(v: TimeDataMap<ColorCurve>) -> AnimatedData
fn from(v: TimeDataMap<ColorCurve>) -> AnimatedData
Converts to this type from the input type.
Source§impl From<KeyDataMap<Tick, ColorVec>> for AnimatedData
impl From<KeyDataMap<Tick, ColorVec>> for AnimatedData
Source§fn from(v: TimeDataMap<ColorVec>) -> AnimatedData
fn from(v: TimeDataMap<ColorVec>) -> AnimatedData
Converts to this type from the input type.
Source§impl From<KeyDataMap<Tick, Integer>> for AnimatedData
impl From<KeyDataMap<Tick, Integer>> for AnimatedData
Source§fn from(v: TimeDataMap<Integer>) -> AnimatedData
fn from(v: TimeDataMap<Integer>) -> AnimatedData
Converts to this type from the input type.
Source§impl From<KeyDataMap<Tick, IntegerVec>> for AnimatedData
impl From<KeyDataMap<Tick, IntegerVec>> for AnimatedData
Source§fn from(v: TimeDataMap<IntegerVec>) -> AnimatedData
fn from(v: TimeDataMap<IntegerVec>) -> AnimatedData
Converts to this type from the input type.
Source§impl From<KeyDataMap<Tick, Matrix3>> for AnimatedData
Available on crate feature matrix3 only.
impl From<KeyDataMap<Tick, Matrix3>> for AnimatedData
Available on crate feature
matrix3 only.Source§fn from(v: TimeDataMap<Matrix3>) -> AnimatedData
fn from(v: TimeDataMap<Matrix3>) -> AnimatedData
Converts to this type from the input type.
Source§impl From<KeyDataMap<Tick, Matrix3Vec>> for AnimatedData
Available on crate features matrix3 and vec_variants only.
impl From<KeyDataMap<Tick, Matrix3Vec>> for AnimatedData
Available on crate features
matrix3 and vec_variants only.Source§fn from(v: TimeDataMap<Matrix3Vec>) -> AnimatedData
fn from(v: TimeDataMap<Matrix3Vec>) -> AnimatedData
Converts to this type from the input type.
Source§impl From<KeyDataMap<Tick, Real>> for AnimatedData
impl From<KeyDataMap<Tick, Real>> for AnimatedData
Source§fn from(v: TimeDataMap<Real>) -> AnimatedData
fn from(v: TimeDataMap<Real>) -> AnimatedData
Converts to this type from the input type.
Source§impl From<KeyDataMap<Tick, RealCurve>> for AnimatedData
Available on crate feature curves only.
impl From<KeyDataMap<Tick, RealCurve>> for AnimatedData
Available on crate feature
curves only.Source§fn from(v: TimeDataMap<RealCurve>) -> AnimatedData
fn from(v: TimeDataMap<RealCurve>) -> AnimatedData
Converts to this type from the input type.
Source§impl From<KeyDataMap<Tick, RealVec>> for AnimatedData
impl From<KeyDataMap<Tick, RealVec>> for AnimatedData
Source§fn from(v: TimeDataMap<RealVec>) -> AnimatedData
fn from(v: TimeDataMap<RealVec>) -> AnimatedData
Converts to this type from the input type.
Source§impl From<KeyDataMap<Tick, String>> for AnimatedData
impl From<KeyDataMap<Tick, String>> for AnimatedData
Source§fn from(v: TimeDataMap<String>) -> AnimatedData
fn from(v: TimeDataMap<String>) -> AnimatedData
Converts to this type from the input type.
Source§impl From<KeyDataMap<Tick, StringVec>> for AnimatedData
impl From<KeyDataMap<Tick, StringVec>> for AnimatedData
Source§fn from(v: TimeDataMap<StringVec>) -> AnimatedData
fn from(v: TimeDataMap<StringVec>) -> AnimatedData
Converts to this type from the input type.
Source§impl From<KeyDataMap<Tick, Vector2>> for AnimatedData
Available on crate feature vector2 only.
impl From<KeyDataMap<Tick, Vector2>> for AnimatedData
Available on crate feature
vector2 only.Source§fn from(v: TimeDataMap<Vector2>) -> AnimatedData
fn from(v: TimeDataMap<Vector2>) -> AnimatedData
Converts to this type from the input type.
Source§impl From<KeyDataMap<Tick, Vector2Vec>> for AnimatedData
Available on crate features vector2 and vec_variants only.
impl From<KeyDataMap<Tick, Vector2Vec>> for AnimatedData
Available on crate features
vector2 and vec_variants only.Source§fn from(v: TimeDataMap<Vector2Vec>) -> AnimatedData
fn from(v: TimeDataMap<Vector2Vec>) -> AnimatedData
Converts to this type from the input type.
Source§impl<K: Ord, V> From<NonEmpty<BTreeMap<K, V>>> for KeyDataMap<K, V>
Available on non-crate feature interpolation only.
impl<K: Ord, V> From<NonEmpty<BTreeMap<K, V>>> for KeyDataMap<K, V>
Available on non-crate feature
interpolation only.Source§impl<K: Ord, V, U> FromIterator<(K, U)> for KeyDataMap<K, V>where
U: Into<V>,
impl<K: Ord, V, U> FromIterator<(K, U)> for KeyDataMap<K, V>where
U: Into<V>,
Source§impl<V> TimeDataMapControl<V> for KeyDataMap<Time, V>
impl<V> TimeDataMapControl<V> for KeyDataMap<Time, V>
Source§impl TryInto<KeyDataMap<Tick, Boolean>> for AnimatedData
impl TryInto<KeyDataMap<Tick, Boolean>> for AnimatedData
Source§impl TryInto<KeyDataMap<Tick, BooleanVec>> for AnimatedData
impl TryInto<KeyDataMap<Tick, BooleanVec>> for AnimatedData
Source§fn try_into(
self,
) -> Result<TimeDataMap<BooleanVec>, <Self as TryInto<TimeDataMap<BooleanVec>>>::Error>
fn try_into( self, ) -> Result<TimeDataMap<BooleanVec>, <Self as TryInto<TimeDataMap<BooleanVec>>>::Error>
Performs the conversion.
Source§impl TryInto<KeyDataMap<Tick, Color>> for AnimatedData
impl TryInto<KeyDataMap<Tick, Color>> for AnimatedData
Source§impl TryInto<KeyDataMap<Tick, ColorCurve>> for AnimatedData
Available on crate feature curves only.
impl TryInto<KeyDataMap<Tick, ColorCurve>> for AnimatedData
Available on crate feature
curves only.Source§fn try_into(
self,
) -> Result<TimeDataMap<ColorCurve>, <Self as TryInto<TimeDataMap<ColorCurve>>>::Error>
fn try_into( self, ) -> Result<TimeDataMap<ColorCurve>, <Self as TryInto<TimeDataMap<ColorCurve>>>::Error>
Performs the conversion.
Source§impl TryInto<KeyDataMap<Tick, ColorVec>> for AnimatedData
impl TryInto<KeyDataMap<Tick, ColorVec>> for AnimatedData
Source§impl TryInto<KeyDataMap<Tick, Integer>> for AnimatedData
impl TryInto<KeyDataMap<Tick, Integer>> for AnimatedData
Source§impl TryInto<KeyDataMap<Tick, IntegerVec>> for AnimatedData
impl TryInto<KeyDataMap<Tick, IntegerVec>> for AnimatedData
Source§fn try_into(
self,
) -> Result<TimeDataMap<IntegerVec>, <Self as TryInto<TimeDataMap<IntegerVec>>>::Error>
fn try_into( self, ) -> Result<TimeDataMap<IntegerVec>, <Self as TryInto<TimeDataMap<IntegerVec>>>::Error>
Performs the conversion.
Source§impl TryInto<KeyDataMap<Tick, Matrix3>> for AnimatedData
Available on crate feature matrix3 only.
impl TryInto<KeyDataMap<Tick, Matrix3>> for AnimatedData
Available on crate feature
matrix3 only.Source§impl TryInto<KeyDataMap<Tick, Matrix3Vec>> for AnimatedData
Available on crate features matrix3 and vec_variants only.
impl TryInto<KeyDataMap<Tick, Matrix3Vec>> for AnimatedData
Available on crate features
matrix3 and vec_variants only.Source§fn try_into(
self,
) -> Result<TimeDataMap<Matrix3Vec>, <Self as TryInto<TimeDataMap<Matrix3Vec>>>::Error>
fn try_into( self, ) -> Result<TimeDataMap<Matrix3Vec>, <Self as TryInto<TimeDataMap<Matrix3Vec>>>::Error>
Performs the conversion.
Source§impl TryInto<KeyDataMap<Tick, Real>> for AnimatedData
impl TryInto<KeyDataMap<Tick, Real>> for AnimatedData
Source§impl TryInto<KeyDataMap<Tick, RealCurve>> for AnimatedData
Available on crate feature curves only.
impl TryInto<KeyDataMap<Tick, RealCurve>> for AnimatedData
Available on crate feature
curves only.Source§impl TryInto<KeyDataMap<Tick, RealVec>> for AnimatedData
impl TryInto<KeyDataMap<Tick, RealVec>> for AnimatedData
Source§impl TryInto<KeyDataMap<Tick, String>> for AnimatedData
impl TryInto<KeyDataMap<Tick, String>> for AnimatedData
Source§impl TryInto<KeyDataMap<Tick, StringVec>> for AnimatedData
impl TryInto<KeyDataMap<Tick, StringVec>> for AnimatedData
Source§impl TryInto<KeyDataMap<Tick, Vector2>> for AnimatedData
Available on crate feature vector2 only.
impl TryInto<KeyDataMap<Tick, Vector2>> for AnimatedData
Available on crate feature
vector2 only.Source§impl TryInto<KeyDataMap<Tick, Vector2Vec>> for AnimatedData
Available on crate features vector2 and vec_variants only.
impl TryInto<KeyDataMap<Tick, Vector2Vec>> for AnimatedData
Available on crate features
vector2 and vec_variants only.Source§fn try_into(
self,
) -> Result<TimeDataMap<Vector2Vec>, <Self as TryInto<TimeDataMap<Vector2Vec>>>::Error>
fn try_into( self, ) -> Result<TimeDataMap<Vector2Vec>, <Self as TryInto<TimeDataMap<Vector2Vec>>>::Error>
Performs the conversion.
impl<K: Eq, V: Eq> Eq for KeyDataMap<K, V>
impl<K, V> StructuralPartialEq for KeyDataMap<K, V>
Auto Trait Implementations§
impl<K, V> Freeze for KeyDataMap<K, V>
impl<K, V> RefUnwindSafe for KeyDataMap<K, V>where
K: RefUnwindSafe,
V: RefUnwindSafe,
impl<K, V> Send for KeyDataMap<K, V>
impl<K, V> Sync for KeyDataMap<K, V>
impl<K, V> Unpin for KeyDataMap<K, V>
impl<K, V> UnsafeUnpin for KeyDataMap<K, V>
impl<K, V> UnwindSafe for KeyDataMap<K, V>where
K: RefUnwindSafe,
V: RefUnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more