pub mod band;
pub mod linear;
#[derive(PartialEq)]
pub enum ScaleType {
Band,
Ordinal,
Linear,
}
pub trait Scale<T> {
fn get_type(&self) -> ScaleType;
fn scale(&self, domain: &T) -> f32;
fn bandwidth(&self) -> Option<f32>;
fn range_start(&self) -> f32;
fn range_end(&self) -> f32;
fn is_range_reversed(&self) -> bool {
self.range_start() > self.range_end()
}
fn get_ticks(&self) -> Vec<T>;
}