ux-animate 0.1.5

Backend and runtime agnostic animation library
Documentation
use super::KeyPath;
use crate::runtime::lottie::value::LottieValueCallback;
// import '../value/lottie_value_callback.dart';

/// Any item that can be a part of a {@link KeyPath} should implement this.
pub trait KeyPathElement {
    /// Called recursively during keypath resolution.
    ///
    /// The overridden method should just call:
    ///        MiscUtils.resolveKeyPath(keyPath, depth, accumulator, currentPartialKeyPath, this);
    ///
    /// @param keyPath The full keypath being resolved.
    /// @param depth The current depth that this element should be checked at in the keypath.
    /// @param accumulator A list of fully resolved keypaths. If this element fully matches the
    ///                    keypath then it should add itself to this list.
    /// @param currentPartialKeyPath A keypath that contains all parent element of this one.
    ///                              This element should create a copy of this and append itself
    ///                              with KeyPath#addKey when it adds itself to the accumulator
    ///                              or propagates resolution to its children.
    fn resolve_key_path(
        &self,
        key_path: KeyPath,
        depth: i64,
        accumulator: Vec<KeyPath>,
        current_partial_pey_path: KeyPath,
    );

    /// The overridden method should handle appropriate properties and set value callbacks on their
    /// animations.
    fn add_value_callback<T>(&self, property: T, callback: LottieValueCallback<T>);
}