use vsvg::{DocumentTrait, Draw, LayerTrait, PathTrait};
fn main() -> Result<(), Box<dyn std::error::Error>> {
let mut doc = vsvg::Document::default();
doc.push_path(1, vec![(0., 0.), (100., 100.), (200., 0.), (0., 0.)]);
let mut layer = vsvg::Layer::default();
layer.metadata_mut().name = Some("Layer 2".to_string());
layer.push_path(kurbo::Circle::new((50., 50.), 30.));
doc.layers_mut().insert(2, layer);
let mut path = vsvg::Path::from_svg("M 200 200 L 200 400 Q 500 300 200 200 Z").unwrap();
path.metadata_mut().color = vsvg::Color::DARK_GREEN;
path.metadata_mut().stroke_width = 3.0;
doc.push_path(3, path);
let layer = doc.get_mut(4);
layer.ellipse(100., 200., 30., 50., (15.0f64).to_radians());
doc.to_svg_file("basic.svg")?;
Ok(())
}