Platform-agnostic animation core for rusty-desktop-icons.
This crate defines the pure-Rust, cross-platform surface of the project:
- Geometry primitives ([
Point]) and icon identifiers ([IconId]). - The [
Curve] system with two variants ([BuiltinEasing] and [KeyframeCurve]) that share a single [AnimationCurve] contract. - A [
Duration] policy that resolves to a concretestd::time::Durationeither from a fixed value or from movement distance and speed. - The animation specification types ([
IconAnimationSpec], [AnimationOptions], [FolderFlagOp]). - Error types shared by all backends.
The Windows Shell/COM backend, the worker thread, and the Python bindings live in sibling crates and depend on this one.
Everything in this crate is #![forbid(unsafe_code)] — the only place
unsafe is allowed is inside rdi-platform-windows.
Quick tour of curves
use ;
// Predefined easing.
let ease = ease_in_out;
assert!;
// Data-driven keyframes.
let keys = keyframes.unwrap;
assert!;
// Function-generated curve — sampled once, then pure data at runtime.
let damped = from_curve_fn.unwrap;
assert!;