mod bars;
mod line;
mod points;
pub use bars::Bars;
pub(crate) use bars::Placement;
pub use line::Line;
pub(crate) use line::Source;
pub use points::Points;
#[non_exhaustive]
#[derive(Debug, Clone)]
pub enum Mark<'a> {
Line(Line<'a>),
Points(Points<'a>),
Bars(Bars<'a>),
}
impl<'a> Mark<'a> {
pub fn into_owned(self) -> Mark<'static> {
match self {
Mark::Line(line) => Mark::Line(line.into_owned()),
Mark::Points(points) => Mark::Points(points.into_owned()),
Mark::Bars(bars) => Mark::Bars(bars.into_owned()),
}
}
}
impl<'a> From<Line<'a>> for Mark<'a> {
fn from(line: Line<'a>) -> Mark<'a> {
Mark::Line(line)
}
}
impl<'a> From<Points<'a>> for Mark<'a> {
fn from(points: Points<'a>) -> Mark<'a> {
Mark::Points(points)
}
}
impl<'a> From<Bars<'a>> for Mark<'a> {
fn from(bars: Bars<'a>) -> Mark<'a> {
Mark::Bars(bars)
}
}