aisling 0.2.0

Embeddable terminal text effects and loaders for Rust TUI applications.
Documentation
//! Aisling: embeddable terminal text effects and loaders for Rust TUI applications.
//!
//! The crate exposes effect playback as an iterator of [`Frame`] values. A
//! frame is just a fixed-size grid of styled [`Cell`]s, so callers can render it
//! into Ratatui, Crossterm, ANSI strings, tests, logs, or any custom backend.
//!
//! ```rust
//! use aisling::{Effect, EffectKind, Loader, LoaderKind};
//!
//! let frames = Effect::new(EffectKind::Wipe, "Aisling").frames();
//! assert!(frames.last().unwrap().to_plain_string().contains("Aisling"));
//!
//! let loader = Loader::new(LoaderKind::Tqdm);
//! assert!(loader.line(0, 0.42).contains("42%"));
//! ```

pub mod color;
pub mod easing;
pub mod effects;
pub mod frame;
pub mod loaders;

mod rng;
mod text;

pub use color::{Color, ColorPair, Gradient, GradientDirection, ParseColorError};
pub use easing::Easing;
pub use effects::{Effect, EffectConfig, EffectFrames, EffectKind, ExistingColorHandling};
pub use frame::{Cell, Frame};
pub use loaders::{
    Loader, LoaderConfig, LoaderFrames, LoaderKind, LoaderProgress, UnknownLoaderError,
};