diff options
Diffstat (limited to 'packages/svgbob/src/lib.rs')
-rw-r--r-- | packages/svgbob/src/lib.rs | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/packages/svgbob/src/lib.rs b/packages/svgbob/src/lib.rs new file mode 100644 index 0000000..5f64f6e --- /dev/null +++ b/packages/svgbob/src/lib.rs @@ -0,0 +1,61 @@ +#![deny(warnings)] +#![allow(unused)] +#![deny(clippy::all)] + +pub mod buffer; +pub mod map; +mod point; +pub mod util; + +pub use buffer::{ + fragment, fragment::Fragment, Cell, CellBuffer, Direction, FragmentBuffer, + Property, Settings, Signal, +}; +pub use nalgebra; +pub use point::Point; +/// reexport sauron +pub use sauron; +pub use sauron::{Node, Render}; + +pub fn to_svg(ascii: &str) -> String { + to_svg_string_pretty(ascii) +} + +/// convert svgbob ascii art to svg string with indentions +pub fn to_svg_string_pretty(ascii: &str) -> String { + let cb = CellBuffer::from(ascii); + let node: Node<()> = cb.get_node(); + let mut buffer = String::new(); + node.render(&mut buffer).expect("must render"); + buffer +} + +/// convert svgbob ascii art to svg string +pub fn to_svg_string_compressed(ascii: &str) -> String { + let cb = CellBuffer::from(ascii); + let node: Node<()> = cb.get_node(); + node.render_to_string() +} + +/// convert ascii art into an svg +pub fn to_svg_with_settings(ascii: &str, settings: &Settings) -> String { + let cb = CellBuffer::from(ascii); + let (node, _w, _h): (Node<()>, f32, f32) = cb.get_node_with_size(settings); + let mut buffer = String::new(); + node.render(&mut buffer).expect("must render"); + buffer +} + +/// convert ascii art to svg using the size supplied +pub fn to_svg_with_override_size( + ascii: &str, + settings: &Settings, + w: f32, + h: f32, +) -> String { + let cb = CellBuffer::from(ascii); + let node: Node<()> = cb.get_node_override_size(settings, w, h); + let mut buffer = String::new(); + node.render(&mut buffer).expect("must render"); + buffer +} |