summaryrefslogtreecommitdiff
path: root/src/eval/node.rs
diff options
context:
space:
mode:
authorLaurenz <laurmaedje@gmail.com>2021-12-16 14:43:02 +0100
committerLaurenz <laurmaedje@gmail.com>2021-12-16 14:43:02 +0100
commit958f74f77707340f34ee36d09492bdb74523aa2a (patch)
tree4ab59a7a532c8023a5e8bb4c9a6090886cb4e538 /src/eval/node.rs
parent2a3d0f4b390457174ed09347dd29e97ff9a783e4 (diff)
Set Rules Episode VIII: The First Macro
Diffstat (limited to 'src/eval/node.rs')
-rw-r--r--src/eval/node.rs7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/eval/node.rs b/src/eval/node.rs
index a04fe84b..acdf4ed6 100644
--- a/src/eval/node.rs
+++ b/src/eval/node.rs
@@ -1,6 +1,7 @@
use std::convert::TryFrom;
use std::fmt::Debug;
use std::hash::Hash;
+use std::iter::Sum;
use std::mem;
use std::ops::{Add, AddAssign};
@@ -127,6 +128,12 @@ impl AddAssign for Node {
}
}
+impl Sum for Node {
+ fn sum<I: Iterator<Item = Self>>(iter: I) -> Self {
+ Self::Sequence(iter.map(|n| (n, Styles::new())).collect())
+ }
+}
+
/// Packs a [`Node`] into a flow or whole document.
struct Packer {
/// Whether this packer produces the top-level document.