#![no_std]
#![forbid(unsafe_code)]
#![warn(missing_docs)]
pub use palette::Srgb;
pub mod colors;
pub mod command;
pub mod sequence;
pub mod sequencer;
pub mod time;
pub mod types;
pub use command::{SequencerAction, SequencerCommand};
pub use sequence::{RgbSequence, SequenceBuilder, StepPosition};
pub use sequencer::{
DEFAULT_COLOR_EPSILON, Position, RgbLed, RgbSequencer, SequencerError, SequencerState,
ServiceTiming,
};
pub use time::{TimeDuration, TimeInstant, TimeSource};
pub use types::{LoopCount, SequenceError, SequenceStep, TransitionStyle};
pub const BLACK: Srgb = Srgb::new(0.0, 0.0, 0.0);
pub const RED: Srgb = Srgb::new(1.0, 0.0, 0.0);
pub const GREEN: Srgb = Srgb::new(0.0, 1.0, 0.0);
pub const BLUE: Srgb = Srgb::new(0.0, 0.0, 1.0);
pub const WHITE: Srgb = Srgb::new(1.0, 1.0, 1.0);
pub const YELLOW: Srgb = Srgb::new(1.0, 1.0, 0.0);
pub const CYAN: Srgb = Srgb::new(0.0, 1.0, 1.0);
pub const MAGENTA: Srgb = Srgb::new(1.0, 0.0, 1.0);
pub type RgbSequencer4<'t, I, L, T> = RgbSequencer<'t, I, L, T, 4>;
pub type RgbSequencer8<'t, I, L, T> = RgbSequencer<'t, I, L, T, 8>;
pub type RgbSequencer16<'t, I, L, T> = RgbSequencer<'t, I, L, T, 16>;
pub type RgbSequence4<D> = RgbSequence<D, 4>;
pub type RgbSequence8<D> = RgbSequence<D, 8>;
pub type RgbSequence16<D> = RgbSequence<D, 16>;
pub type SequencerAction4<D> = SequencerAction<D, 4>;
pub type SequencerAction8<D> = SequencerAction<D, 8>;
pub type SequencerAction16<D> = SequencerAction<D, 16>;
pub type SequencerCommand4<Id, D> = SequencerCommand<Id, D, 4>;
pub type SequencerCommand8<Id, D> = SequencerCommand<Id, D, 8>;
pub type SequencerCommand16<Id, D> = SequencerCommand<Id, D, 16>;