// different kinds of animation // steps, each step has given length // each step has LED states // each step will show current led states on the board use libm::{ceilf, powf}; use crate::animations::animation_step::AnimationStep; use crate::map::Map; pub trait Animation { fn is_started(&self) -> bool; fn init(&mut self) -> Result<(), AnimationError>; fn next(&mut self) -> Result; fn apply(&mut self, map: &mut Map) -> Result<(), AnimationError>; } #[derive(Eq, PartialEq)] pub enum AnimationError { LastStep }