chargrid_common 0.9.0

Common utilities for making text UIs with chargrid
Documentation
use crate::signal::{Linear, SignalU8};
use chargrid_core::Rgba32;
use std::time::Duration;

pub struct Fade<S: SignalU8> {
    pub lo: Rgba32,
    pub hi: Rgba32,
    pub signal: S,
}

impl<S: SignalU8> Fade<S> {
    pub fn eval(&self, after: Duration) -> Rgba32 {
        self.lo.linear_interpolate(self.hi, self.signal.eval(after))
    }
}

pub fn linear(lo: Rgba32, hi: Rgba32, duration: Duration) -> Fade<Linear> {
    Fade {
        lo,
        hi,
        signal: Linear::with_duration(duration),
    }
}