use crate::visualizations;
pub trait Visualization {
fn to_json(&self) -> String;
}
pub trait Visualizable {
type V: Visualization;
fn visualize(&self) -> Self::V;
}
impl<T: Visualizable> Visualization for T {
fn to_json(&self) -> String {
self.visualize().to_json()
}
}
impl<'t> Visualizable for &'t str {
type V = visualizations::Text<'t>;
fn visualize(&self) -> Self::V {
visualizations::Text::new((*self).into())
}
}