1pub use rusty_mermaid_core::{
21 BBox, Color, Direction, Point, Primitive, Scene, Style, TextAnchor, TextStyle, Theme,
22};
23pub use rusty_mermaid_diagrams::{DiagramKind, ParseError, detect, render_to_scene};
24
25pub fn render(input: &str, theme: &Theme) -> Result<Scene, ParseError> {
27 render_to_scene(input, theme)
28}
29
30#[cfg(feature = "svg")]
33pub fn to_svg(input: &str, theme: &Theme) -> Result<String, ParseError> {
34 let scene = render(input, theme)?;
35 Ok(rusty_mermaid_svg::SvgRenderer::with_theme(theme).render_themed(&scene, theme))
36}
37
38#[cfg(feature = "svg")]
39pub mod svg {
40 pub use rusty_mermaid_svg::*;
41}
42
43#[cfg(feature = "raster")]
46pub fn to_png(input: &str, theme: &Theme, dpi: f64) -> Result<Vec<u8>, ParseError> {
47 use rusty_mermaid_core::Renderer;
48 let scene = render(input, theme)?;
49 let config = rusty_mermaid_raster::RasterConfig { scale: dpi, theme: theme.clone() };
50 Ok(rusty_mermaid_raster::RasterRenderer::with_config(config).render(&scene))
51}
52
53#[cfg(feature = "raster")]
54pub mod raster {
55 pub use rusty_mermaid_raster::*;
56}
57
58#[cfg(feature = "viewport")]
61pub mod viewport {
62 pub use rusty_mermaid_viewport::*;
63}
64
65#[cfg(feature = "wgpu")]
68pub mod wgpu {
69 pub use rusty_mermaid_wgpu::*;
70}
71
72#[cfg(feature = "gpui")]
75pub mod gpui {
76 pub use rusty_mermaid_gpui::*;
77}