summaryrefslogtreecommitdiff
path: root/src/library/stack.rs
diff options
context:
space:
mode:
authorLaurenz <laurmaedje@gmail.com>2022-01-05 16:01:56 +0100
committerLaurenz <laurmaedje@gmail.com>2022-01-05 23:55:06 +0100
commit5fd9c0b0d7b519802d56dd04cb61340c11014cb1 (patch)
treea791ad72a92037426c1b170ccc543fb1afff0c77 /src/library/stack.rs
parentf7e8624b4cf31744d600167dd7f3a9d9d1626014 (diff)
Lift styles out of individual nodes
Diffstat (limited to 'src/library/stack.rs')
-rw-r--r--src/library/stack.rs26
1 files changed, 10 insertions, 16 deletions
diff --git a/src/library/stack.rs b/src/library/stack.rs
index d36c2e15..f4f7a3cf 100644
--- a/src/library/stack.rs
+++ b/src/library/stack.rs
@@ -1,7 +1,7 @@
//! Side-by-side layout of nodes along an axis.
use super::prelude::*;
-use super::{AlignNode, SpacingKind, SpacingNode};
+use super::{AlignNode, SpacingKind};
/// `stack`: Stack children along an axis.
pub fn stack(_: &mut EvalContext, args: &mut Args) -> TypResult<Value> {
@@ -38,17 +38,11 @@ impl Layout for StackNode {
#[derive(Hash)]
pub enum StackChild {
/// Spacing between other nodes.
- Spacing(SpacingNode),
+ Spacing(SpacingKind),
/// An arbitrary node.
Node(PackedNode),
}
-impl From<SpacingKind> for StackChild {
- fn from(kind: SpacingKind) -> Self {
- Self::Spacing(SpacingNode { kind, styles: StyleMap::new() })
- }
-}
-
impl Debug for StackChild {
fn fmt(&self, f: &mut Formatter) -> fmt::Result {
match self {
@@ -61,10 +55,10 @@ impl Debug for StackChild {
castable! {
StackChild,
Expected: "linear, fractional or template",
- Value::Length(v) => SpacingKind::Linear(v.into()).into(),
- Value::Relative(v) => SpacingKind::Linear(v.into()).into(),
- Value::Linear(v) => SpacingKind::Linear(v).into(),
- Value::Fractional(v) => SpacingKind::Fractional(v).into(),
+ Value::Length(v) => Self::Spacing(SpacingKind::Linear(v.into())),
+ Value::Relative(v) => Self::Spacing(SpacingKind::Linear(v.into())),
+ Value::Linear(v) => Self::Spacing(SpacingKind::Linear(v)),
+ Value::Fractional(v) => Self::Spacing(SpacingKind::Fractional(v)),
Value::Node(v) => Self::Node(v.into_block()),
}
@@ -140,12 +134,12 @@ impl<'a> StackLayouter<'a> {
let mut deferred = None;
for child in self.children {
- match child {
- StackChild::Spacing(node) => {
- self.layout_spacing(node.kind);
+ match *child {
+ StackChild::Spacing(kind) => {
+ self.layout_spacing(kind);
deferred = None;
}
- StackChild::Node(node) => {
+ StackChild::Node(ref node) => {
if let Some(kind) = deferred {
self.layout_spacing(kind);
}