1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//! The module with the `Drawer` trait.
use crate::embedder::PlacedTreeItem;

///
/// The `Drawer`'s result type is the `std::io::Result` with `Unit` as success type.
///
pub type Result = std::io::Result<()>;

///
/// By implementing this trait anyone can provide his own drawer, for instance one that draws onto
/// a bitmap, if he don't want to use the `SvgDrawer` used by the crate by default.
///
pub trait Drawer {
    fn draw(&self, file_name: &std::path::Path, embedding: &[PlacedTreeItem]) -> Result;
}