use r3bl_core::{ColorWheel, ColorWheelConfig, ColorWheelSpeed};
#[derive(Debug, Clone, Copy)]
pub enum SpinnerTemplate {
Dots,
Braille,
Block,
}
#[derive(Debug, Clone)]
pub enum SpinnerColor {
None,
ColorWheel(ColorWheel),
}
impl SpinnerColor {
pub fn default_color_wheel() -> SpinnerColor {
let color_wheel_config = ColorWheelConfig::Rgb(
vec!["#12c2e9", "#c471ed", "#f64f59"]
.into_iter()
.map(String::from)
.collect(),
ColorWheelSpeed::Fast,
10,
);
let mut it = ColorWheel::new(vec![color_wheel_config]);
it.generate_color_wheel(None);
SpinnerColor::ColorWheel(it)
}
}
#[derive(Debug, Clone)]
pub struct SpinnerStyle {
pub template: SpinnerTemplate,
pub color: SpinnerColor,
}
impl Default for SpinnerStyle {
fn default() -> Self {
SpinnerStyle {
template: SpinnerTemplate::Braille,
color: SpinnerColor::default_color_wheel(),
}
}
}