#![warn(unused_crate_dependencies)]
#![warn(clippy::print_stdout, clippy::print_stderr)]
#![cfg_attr(docsrs, feature(doc_cfg))]
#![allow(missing_docs, clippy::shadow_unrelated, clippy::missing_errors_doc)]
#![cfg_attr(test, allow(unused_crate_dependencies))]
mod error;
mod render;
mod util;
pub use error::Error;
pub use usvg;
use anyrender::PaintScene;
use kurbo::Affine;
pub fn render_svg_str<S: PaintScene>(
scene: &mut S,
svg: &str,
transform: Affine,
) -> Result<(), Error> {
let opt = usvg::Options::default();
let tree = usvg::Tree::from_str(svg, &opt)?;
render_svg_tree(scene, &tree, transform);
Ok(())
}
pub fn render_svg_str_with<S: PaintScene, F: FnMut(&mut S, &usvg::Node)>(
scene: &mut S,
svg: &str,
transform: Affine,
error_handler: &mut F,
) -> Result<(), Error> {
let opt = usvg::Options::default();
let tree = usvg::Tree::from_str(svg, &opt)?;
render_svg_tree_with(scene, &tree, transform, error_handler);
Ok(())
}
pub fn render_svg_tree<S: PaintScene>(scene: &mut S, svg: &usvg::Tree, transform: Affine) {
render_svg_tree_with(scene, svg, transform, &mut util::default_error_handler);
}
pub fn render_svg_tree_with<S: PaintScene, F: FnMut(&mut S, &usvg::Node)>(
scene: &mut S,
svg: &usvg::Tree,
transform: Affine,
error_handler: &mut F,
) {
render::render_group(
scene,
svg.root(),
Affine::IDENTITY,
transform,
error_handler,
);
}
#[cfg(test)]
mod tests {
#[test]
fn dummy_test_until_we_have_a_real_test() {}
}