#![allow(clippy::needless_range_loop)]
pub mod class;
pub mod er;
pub mod fold;
pub mod journey;
pub mod layout;
pub mod mindmap;
pub mod model;
pub mod parser;
pub mod pie;
pub mod render;
pub mod scene;
pub mod seq;
pub mod style;
pub use model::Document;
pub use parser::ParseError;
pub fn render_svg(source: &str) -> Result<String, ParseError> {
match parser::parse_document(source)? {
Document::Flowchart(g) => Ok(render::render(&g)),
Document::State(g) => Ok(render::render_titled(&g, "State diagram")),
Document::Er(d) => Ok(render::render_er(&d)),
Document::Class(d) => Ok(render::render_class(&d)),
Document::Sequence(d) => Ok(render::render_seq(&d)),
Document::Pie(d) => Ok(render::render_pie(&d)),
Document::Mindmap(d) => Ok(render::render_mindmap(&d)),
Document::Journey(d) => Ok(render::render_journey(&d)),
}
}