summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJovansonlee Cesar <ivanceras@gmail.com>2020-02-29 01:25:05 +0800
committerJovansonlee Cesar <ivanceras@gmail.com>2020-02-29 01:25:05 +0800
commitec2beec5c585b776fe0f31b33fc0493e52c53061 (patch)
tree49eebb8a22be53a12ec9bcf8e9e0f9113ff871b8
parent0fb7a8d352b3e1facd6b9092bec0449f1f3e5d4a (diff)
Make functions that return Node<()> into a return generics Node<MSG> to allow usage of Node<MSG> generics in sauron apps
-rw-r--r--Cargo.lock223
-rw-r--r--svgbob/Cargo.toml2
-rw-r--r--svgbob/src/buffer/cell_buffer.rs34
-rw-r--r--svgbob/src/buffer/fragment_buffer/fragment.rs4
-rw-r--r--svgbob/src/buffer/fragment_buffer/fragment/arc.rs4
-rw-r--r--svgbob/src/buffer/fragment_buffer/fragment/circle.rs4
-rw-r--r--svgbob/src/buffer/fragment_buffer/fragment/line.rs4
-rw-r--r--svgbob/src/buffer/fragment_buffer/fragment/marker_line.rs6
-rw-r--r--svgbob/src/buffer/fragment_buffer/fragment/polygon.rs4
-rw-r--r--svgbob/src/buffer/fragment_buffer/fragment/rect.rs4
-rw-r--r--svgbob/src/buffer/fragment_buffer/fragment/text.rs11
-rw-r--r--svgbob/src/buffer/fragment_buffer/fragment_tree.rs6
-rw-r--r--svgbob/src/lib.rs6
13 files changed, 268 insertions, 44 deletions
diff --git a/Cargo.lock b/Cargo.lock
index 25f0fc1..5a55d57 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -22,6 +22,12 @@ dependencies = [
]
[[package]]
+name = "anyhow"
+version = "1.0.26"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7825f6833612eb2414095684fcf6c635becf3ce97fe48cf6421321e93bfbd53c"
+
+[[package]]
name = "approx"
version = "0.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -60,6 +66,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
[[package]]
+name = "bumpalo"
+version = "3.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1f359dc14ff8911330a51ef78022d376f25ed00248912803b58f00cb1c27f742"
+
+[[package]]
name = "cfg-if"
version = "0.1.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -123,6 +135,15 @@ dependencies = [
]
[[package]]
+name = "heck"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "20564e78d53d2bb135c343b3f47714a56af2061f1c928fdb541dc7b9fdd94205"
+dependencies = [
+ "unicode-segmentation",
+]
+
+[[package]]
name = "hermit-abi"
version = "0.1.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -141,6 +162,15 @@ dependencies = [
]
[[package]]
+name = "js-sys"
+version = "0.3.35"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7889c7c36282151f6bf465be4700359318aef36baa951462382eae49e9577cf9"
+dependencies = [
+ "wasm-bindgen",
+]
+
+[[package]]
name = "lazy_static"
version = "1.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -183,6 +213,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00"
[[package]]
+name = "memchr"
+version = "2.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400"
+
+[[package]]
name = "nalgebra"
version = "0.18.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -219,6 +255,16 @@ dependencies = [
]
[[package]]
+name = "nom"
+version = "4.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2ad2a91a8e869eeb30b9cb3119ae87773a8f4ae617f41b1eb9c154b2905f7bd6"
+dependencies = [
+ "memchr",
+ "version_check",
+]
+
+[[package]]
name = "num-complex"
version = "0.2.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -281,6 +327,24 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ef5cf7f52c12da93c26b63ee0d9f012bc82fb071851c546c030dc6ecb5f2994b"
[[package]]
+name = "proc-macro2"
+version = "1.0.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c09721c6781493a2a492a96b5a5bf19b65917fe6728884e7c44dd0c60ca3435"
+dependencies = [
+ "unicode-xid",
+]
+
+[[package]]
+name = "quote"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "053a8c8bcc71fcce321828dc897a98ab9760bef03a4fc36693c231e5b3216cfe"
+dependencies = [
+ "proc-macro2",
+]
+
+[[package]]
name = "rand"
version = "0.6.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -403,21 +467,25 @@ dependencies = [
[[package]]
name = "sauron"
-version = "0.21.1"
+version = "0.22.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ee92eb275e1c4dd3d2f314cf162d67f9db7916436a59aebf93715c40d6818c16"
+checksum = "987022bf1b21c2d5d5cbd02af2af0a9c78b954b1e8b493e177250e43e5f6f28a"
dependencies = [
"cfg-if",
+ "js-sys",
"lazy_static",
"log",
"sauron_vdom",
+ "thiserror",
+ "wasm-bindgen",
+ "web-sys",
]
[[package]]
name = "sauron_vdom"
-version = "0.21.0"
+version = "0.22.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ce9de12db6e3f973366706550ff4a3a2a3396d5dd4398ec666dd8d3552eb5ebe"
+checksum = "f60ed6fcda6e9822203da7ecf0c04d14e6e85475992ada0589e0ad357e3f3179"
dependencies = [
"log",
]
@@ -438,6 +506,12 @@ dependencies = [
]
[[package]]
+name = "sourcefile"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4bf77cb82ba8453b42b6ae1d692e4cdc92f9a47beaf89a847c8be83f4e328ad3"
+
+[[package]]
name = "strsim"
version = "0.8.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -465,6 +539,17 @@ dependencies = [
]
[[package]]
+name = "syn"
+version = "1.0.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "123bd9499cfb380418d509322d7a6d52e5315f064fe4b3ad18a53d6b92c07859"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-xid",
+]
+
+[[package]]
name = "textwrap"
version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -474,24 +559,154 @@ dependencies = [
]
[[package]]
+name = "thiserror"
+version = "1.0.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ee14bf8e6767ab4c687c9e8bc003879e042a96fd67a3ba5934eadb6536bef4db"
+dependencies = [
+ "thiserror-impl",
+]
+
+[[package]]
+name = "thiserror-impl"
+version = "1.0.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a7b51e1fbc44b5a0840be594fbc0f960be09050f2617e61e6aa43bef97cd3ef4"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
name = "typenum"
version = "1.11.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6d2783fe2d6b8c1101136184eb41be8b1ad379e4657050b8aaff0c79ee7575f9"
[[package]]
+name = "unicode-segmentation"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e83e153d1053cbb5a118eeff7fd5be06ed99153f00dbcd8ae310c5fb2b22edc0"
+
+[[package]]
name = "unicode-width"
version = "0.1.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "caaa9d531767d1ff2150b9332433f32a24622147e5ebb1f26409d5da67afd479"
[[package]]
+name = "unicode-xid"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c"
+
+[[package]]
name = "vec_map"
version = "0.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "05c78687fb1a80548ae3250346c3db86a80a7cdd77bda190189f2d0a0987c81a"
[[package]]
+name = "version_check"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "914b1a6776c4c929a602fafd8bc742e06365d4bcbe48c30f9cca5824f70dc9dd"
+
+[[package]]
+name = "wasm-bindgen"
+version = "0.2.58"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5205e9afdf42282b192e2310a5b463a6d1c1d774e30dc3c791ac37ab42d2616c"
+dependencies = [
+ "cfg-if",
+ "wasm-bindgen-macro",
+]
+
+[[package]]
+name = "wasm-bindgen-backend"
+version = "0.2.58"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "11cdb95816290b525b32587d76419facd99662a07e59d3cdb560488a819d9a45"
+dependencies = [
+ "bumpalo",
+ "lazy_static",
+ "log",
+ "proc-macro2",
+ "quote",
+ "syn",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-macro"
+version = "0.2.58"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "574094772ce6921576fb6f2e3f7497b8a76273b6db092be18fc48a082de09dc3"
+dependencies = [
+ "quote",
+ "wasm-bindgen-macro-support",
+]
+
+[[package]]
+name = "wasm-bindgen-macro-support"
+version = "0.2.58"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e85031354f25eaebe78bb7db1c3d86140312a911a106b2e29f9cc440ce3e7668"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+ "wasm-bindgen-backend",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-shared"
+version = "0.2.58"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f5e7e61fc929f4c0dddb748b102ebf9f632e2b8d739f2016542b4de2965a9601"
+
+[[package]]
+name = "wasm-bindgen-webidl"
+version = "0.2.58"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ef012a0d93fc0432df126a8eaf547b2dce25a8ce9212e1d3cbeef5c11157975d"
+dependencies = [
+ "anyhow",
+ "heck",
+ "log",
+ "proc-macro2",
+ "quote",
+ "syn",
+ "wasm-bindgen-backend",
+ "weedle",
+]
+
+[[package]]
+name = "web-sys"
+version = "0.3.35"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aaf97caf6aa8c2b1dac90faf0db529d9d63c93846cca4911856f78a83cebf53b"
+dependencies = [
+ "anyhow",
+ "js-sys",
+ "sourcefile",
+ "wasm-bindgen",
+ "wasm-bindgen-webidl",
+]
+
+[[package]]
+name = "weedle"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3bb43f70885151e629e2a19ce9e50bd730fd436cfd4b666894c9ce4de9141164"
+dependencies = [
+ "nom",
+]
+
+[[package]]
name = "winapi"
version = "0.3.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
diff --git a/svgbob/Cargo.toml b/svgbob/Cargo.toml
index 287b509..b110a82 100644
--- a/svgbob/Cargo.toml
+++ b/svgbob/Cargo.toml
@@ -13,7 +13,7 @@ license = "Apache-2.0"
nalgebra = "0.18.0"
ncollide2d = "0.19.1"
lazy_static = "1.3.0"
-sauron = { version = "0.21.0", default-features = false}
+sauron = { version = "0.22.0", default-features = false, features = ["with-dom"]}
unicode-width = "0.1.5"
itertools = "0.8.0"
pom = { version = "3.1.0" }
diff --git a/svgbob/src/buffer/cell_buffer.rs b/svgbob/src/buffer/cell_buffer.rs
index c2f9239..d4cda46 100644
--- a/svgbob/src/buffer/cell_buffer.rs
+++ b/svgbob/src/buffer/cell_buffer.rs
@@ -131,7 +131,7 @@ impl CellBuffer {
}
/// get the svg node of this cell buffer, using the default settings for the sizes
- pub fn get_node(&self) -> Node<()> {
+ pub fn get_node<MSG>(&self) -> Node<MSG> {
let (node, _w, _h) = self.get_node_with_size(&Settings::default());
node
}
@@ -146,7 +146,7 @@ impl CellBuffer {
}
/// get all nodes of this cell buffer
- pub fn get_node_with_size(&self, settings: &Settings) -> (Node<()>, f32, f32) {
+ pub fn get_node_with_size<MSG>(&self, settings: &Settings) -> (Node<MSG>, f32, f32) {
let (w, h) = self.get_size(&settings);
// vec_fragments are the fragment result of successful endorsement
//
@@ -170,14 +170,18 @@ impl CellBuffer {
.flat_map(|contact| contact.0)
.collect();
- let group_nodes: Vec<Node<()>> = vec_groups
+ let group_nodes: Vec<Node<MSG>> = vec_groups
.into_iter()
.map(|contact| contact.0)
.map(move |contacts| {
let mut group_members = contacts
.iter()
- .map(move |gfrag| gfrag.scale(settings.scale).into())
- .collect::<Vec<_>>();
+ .map(move |gfrag| {
+ let scaled = gfrag.scale(settings.scale);
+ let node: Node<MSG> = scaled.into();
+ node
+ })
+ .collect::<Vec<Node<MSG>>>();
g(vec![], group_members)
})
.collect();
@@ -199,7 +203,7 @@ impl CellBuffer {
classes.join("\n")
}
- fn get_style(settings: &Settings, legend_css: String) -> Node<()> {
+ fn get_style<MSG>(settings: &Settings, legend_css: String) -> Node<MSG> {
html::tags::style(
vec![],
vec![text(format!(
@@ -287,18 +291,18 @@ impl CellBuffer {
/// convert the fragments into svg nodes using the supplied settings, with size for the
/// dimension
- pub(crate) fn fragments_to_node(
+ pub(crate) fn fragments_to_node<MSG>(
fragments: Vec<Fragment>,
legend_css: String,
settings: &Settings,
w: f32,
h: f32,
- ) -> Node<()> {
+ ) -> Node<MSG> {
let fragments_scaled: Vec<Fragment> = fragments
.into_iter()
.map(|frag| frag.scale(settings.scale))
.collect();
- let fragment_nodes: Vec<Node<()>> = FragmentTree::fragments_to_node(fragments_scaled);
+ let fragment_nodes: Vec<Node<MSG>> = FragmentTree::fragments_to_node(fragments_scaled);
let svg_node = svg(
vec![xmlns("http://www.w3.org/2000/svg"), width(w), height(h)],
@@ -315,7 +319,7 @@ impl CellBuffer {
svg_node
}
- fn get_defs() -> Node<()> {
+ fn get_defs<MSG>() -> Node<MSG> {
defs(
vec![],
vec![
@@ -328,7 +332,7 @@ impl CellBuffer {
)
}
- fn arrow_marker() -> Node<()> {
+ fn arrow_marker<MSG>() -> Node<MSG> {
marker(
vec![
id("arrow"),
@@ -343,7 +347,7 @@ impl CellBuffer {
)
}
- fn diamond_marker() -> Node<()> {
+ fn diamond_marker<MSG>() -> Node<MSG> {
marker(
vec![
id("diamond"),
@@ -358,7 +362,7 @@ impl CellBuffer {
)
}
- fn open_circle_marker() -> Node<()> {
+ fn open_circle_marker<MSG>() -> Node<MSG> {
marker(
vec![
id("open_circle"),
@@ -376,7 +380,7 @@ impl CellBuffer {
)
}
- fn circle_marker() -> Node<()> {
+ fn circle_marker<MSG>() -> Node<MSG> {
marker(
vec![
id("circle"),
@@ -394,7 +398,7 @@ impl CellBuffer {
)
}
- fn big_open_circle_marker() -> Node<()> {
+ fn big_open_circle_marker<MSG>() -> Node<MSG> {
marker(
vec![
id("big_open_circle"),
diff --git a/svgbob/src/buffer/fragment_buffer/fragment.rs b/svgbob/src/buffer/fragment_buffer/fragment.rs
index a968e1e..3329315 100644
--- a/svgbob/src/buffer/fragment_buffer/fragment.rs
+++ b/svgbob/src/buffer/fragment_buffer/fragment.rs
@@ -450,8 +450,8 @@ impl Bounds for Fragment {
}
}
-impl Into<Node<()>> for Fragment {
- fn into(self) -> Node<()> {
+impl<MSG> Into<Node<MSG>> for Fragment {
+ fn into(self) -> Node<MSG> {
match self {
Fragment::Line(line) => line.into(),
Fragment::MarkerLine(marker_line) => marker_line.into(),
diff --git a/svgbob/src/buffer/fragment_buffer/fragment/arc.rs b/svgbob/src/buffer/fragment_buffer/fragment/arc.rs
index d37a1c5..12a477e 100644
--- a/svgbob/src/buffer/fragment_buffer/fragment/arc.rs
+++ b/svgbob/src/buffer/fragment_buffer/fragment/arc.rs
@@ -156,8 +156,8 @@ impl fmt::Display for Arc {
}
}
-impl Into<Node<()>> for Arc {
- fn into(self) -> Node<()> {
+impl<MSG> Into<Node<MSG>> for Arc {
+ fn into(self) -> Node<MSG> {
let dv = format!(
"M {},{} A {},{} {},{},{} {},{}",
self.start.x,
diff --git a/svgbob/src/buffer/fragment_buffer/fragment/circle.rs b/svgbob/src/buffer/fragment_buffer/fragment/circle.rs
index 585de64..03a7e65 100644
--- a/svgbob/src/buffer/fragment_buffer/fragment/circle.rs
+++ b/svgbob/src/buffer/fragment_buffer/fragment/circle.rs
@@ -61,8 +61,8 @@ impl fmt::Display for Circle {
}
}
-impl Into<Node<()>> for Circle {
- fn into(self) -> Node<()> {
+impl<MSG> Into<Node<MSG>> for Circle {
+ fn into(self) -> Node<MSG> {
circle(
vec![
cx(self.center.x),
diff --git a/svgbob/src/buffer/fragment_buffer/fragment/line.rs b/svgbob/src/buffer/fragment_buffer/fragment/line.rs
index a69b5d4..f51eb27 100644
--- a/svgbob/src/buffer/fragment_buffer/fragment/line.rs
+++ b/svgbob/src/buffer/fragment_buffer/fragment/line.rs
@@ -558,8 +558,8 @@ impl fmt::Display for Line {
}
}
-impl Into<Node<()>> for Line {
- fn into(self) -> Node<()> {
+impl<MSG> Into<Node<MSG>> for Line {
+ fn into(self) -> Node<MSG> {
svg::tags::line(
vec![
x1(self.start.x),
diff --git a/svgbob/src/buffer/fragment_buffer/fragment/marker_line.rs b/svgbob/src/buffer/fragment_buffer/fragment/marker_line.rs
index 7e57490..423612f 100644
--- a/svgbob/src/buffer/fragment_buffer/fragment/marker_line.rs
+++ b/svgbob/src/buffer/fragment_buffer/fragment/marker_line.rs
@@ -175,9 +175,9 @@ impl fmt::Display for MarkerLine {
}
}
-impl Into<Node<()>> for MarkerLine {
- fn into(self) -> Node<()> {
- let mut node: Node<()> = self.line.into();
+impl<MSG> Into<Node<MSG>> for MarkerLine {
+ fn into(self) -> Node<MSG> {
+ let mut node: Node<MSG> = self.line.into();
let mut classes = vec![];
if let Some(start_marker) = self.start_marker {
classes.push(class(format!("start_marked_{}", start_marker)));
diff --git a/svgbob/src/buffer/fragment_buffer/fragment/polygon.rs b/svgbob/src/buffer/fragment_buffer/fragment/polygon.rs
index b1a9239..ce82ae4 100644
--- a/svgbob/src/buffer/fragment_buffer/fragment/polygon.rs
+++ b/svgbob/src/buffer/fragment_buffer/fragment/polygon.rs
@@ -159,8 +159,8 @@ impl fmt::Display for Polygon {
}
}
-impl Into<Node<()>> for Polygon {
- fn into(self) -> Node<()> {
+impl<MSG> Into<Node<MSG>> for Polygon {
+ fn into(self) -> Node<MSG> {
polygon(
vec![
points(
diff --git a/svgbob/src/buffer/fragment_buffer/fragment/rect.rs b/svgbob/src/buffer/fragment_buffer/fragment/rect.rs
index d716dc7..97a15e0 100644
--- a/svgbob/src/buffer/fragment_buffer/fragment/rect.rs
+++ b/svgbob/src/buffer/fragment_buffer/fragment/rect.rs
@@ -107,8 +107,8 @@ impl fmt::Display for Rect {
}
}
-impl Into<Node<()>> for Rect {
- fn into(self) -> Node<()> {
+impl<MSG> Into<Node<MSG>> for Rect {
+ fn into(self) -> Node<MSG> {
rect(
vec![
x(self.start.x),
diff --git a/svgbob/src/buffer/fragment_buffer/fragment/text.rs b/svgbob/src/buffer/fragment_buffer/fragment/text.rs
index b5ce261..039e6d7 100644
--- a/svgbob/src/buffer/fragment_buffer/fragment/text.rs
+++ b/svgbob/src/buffer/fragment_buffer/fragment/text.rs
@@ -95,8 +95,8 @@ impl Into<Text> for CellText {
}
}
-impl Into<Node<()>> for CellText {
- fn into(self) -> Node<()> {
+impl<MSG> Into<Node<MSG>> for CellText {
+ fn into(self) -> Node<MSG> {
let text: Text = self.into();
text.into()
}
@@ -162,11 +162,14 @@ impl fmt::Display for Text {
}
}
-impl Into<Node<()>> for Text {
- fn into(self) -> Node<()> {
+impl<MSG> Into<Node<MSG>> for Text {
+ fn into(self) -> Node<MSG> {
svg::tags::text(
vec![x(self.start.x), y(self.start.y)],
+ #[cfg(not(feature = "with-dom"))]
vec![text(escape_html_text(&self.text))],
+ #[cfg(feature = "with-dom")]
+ vec![text(&self.text)],
)
}
}
diff --git a/svgbob/src/buffer/fragment_buffer/fragment_tree.rs b/svgbob/src/buffer/fragment_buffer/fragment_tree.rs
index 863dfad..e3f476b 100644
--- a/svgbob/src/buffer/fragment_buffer/fragment_tree.rs
+++ b/svgbob/src/buffer/fragment_buffer/fragment_tree.rs
@@ -99,9 +99,9 @@ impl FragmentTree {
}
/// convert back into fragments
- fn into_nodes(self) -> Vec<Node<()>> {
+ fn into_nodes<MSG>(self) -> Vec<Node<MSG>> {
let mut nodes = vec![];
- let mut fragment_node: Node<()> = self.fragment.into();
+ let mut fragment_node: Node<MSG> = self.fragment.into();
fragment_node = fragment_node.add_attributes(vec![classes(self.css_tag)]);
nodes.push(fragment_node);
for child in self.enclosing {
@@ -112,7 +112,7 @@ impl FragmentTree {
/// convert fragments to node, where cell_text and text may become
/// css class of the contain fragment
- pub(crate) fn fragments_to_node(fragments: Vec<Fragment>) -> Vec<Node<()>> {
+ pub(crate) fn fragments_to_node<MSG>(fragments: Vec<Fragment>) -> Vec<Node<MSG>> {
let fragment_trees: Vec<FragmentTree> = Self::enclose_fragments(fragments);
fragment_trees
.into_iter()
diff --git a/svgbob/src/lib.rs b/svgbob/src/lib.rs
index 1d9e836..dff232c 100644
--- a/svgbob/src/lib.rs
+++ b/svgbob/src/lib.rs
@@ -13,16 +13,18 @@ pub use buffer::{
Signal,
};
pub use point::Point;
+use sauron::Node;
/// convert svgbob ascii art to svg
pub fn to_svg(ascii: &str) -> String {
let cb = CellBuffer::from(ascii);
- cb.get_node().to_string()
+ let node: Node<()> = cb.get_node();
+ node.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) = cb.get_node_with_size(settings);
+ let (node, _w, _h): (Node<()>, f32, f32) = cb.get_node_with_size(settings);
node.to_string()
}