Delta semántico · 264
examples/basic.rs
- cambió por dentro fn main
scripts/gentest/src/main.rs
tests/root_constraints.rs
diff --git a/Cargo.toml b/Cargo.toml
index 6cb02b860..c42025a33 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -17,6 +17,7 @@ maintenance = { status = "experimental" }
[dependencies]
libm = "0.1.2"
+simple-error = "0.1"
[features]
default = ["std"]
diff --git a/benches/generated.rs b/benches/generated.rs
index 3859104bd..92fea1d20 100644
--- a/benches/generated.rs
+++ b/benches/generated.rs
@@ -99,6 +99,7 @@ fn stretch_benchmarks(c: &mut Criterion) {
},
stretch::geometry::Size::undefined(),
)
+ .unwrap()
})
});
}
diff --git a/examples/basic.rs b/examples/basic.rs
index 59c8ecdba..a06cbef34 100644
--- a/examples/basic.rs
+++ b/examples/basic.rs
@@ -14,7 +14,7 @@ fn main() {
..Default::default()
};
- let layout = stretch::compute(&node, Size::undefined());
+ let layout = stretch::compute(&node, Size::undefined()).unwrap();
println!("{:#?}", layout);
}
diff --git a/scripts/gentest/src/main.rs b/scripts/gentest/src/main.rs
index 54bd74e2f..18f5e83a4 100644
--- a/scripts/gentest/src/main.rs
+++ b/scripts/gentest/src/main.rs
@@ -73,7 +73,7 @@ fn generate_test(name: &str, root: Element) -> String {
src.push_str("let layout = stretch::compute(\n");
src.push_str(&format!("&{}", &generate_node(&description)));
- src.push_str(", stretch::geometry::Size::undefined());\n\n");
+ src.push_str(", stretch::geometry::Size::undefined()).unwrap();\n\n");
src.push_str(&generate_assertions("layout".to_string(), &description));
src.push_str("}\n");
diff --git a/src/algo.rs b/src/algo.rs
index 63f572a7f..8b402c904 100644
--- a/src/algo.rs
+++ b/src/algo.rs
@@ -3,6 +3,8 @@ use alloc::{vec, vec::Vec};
#[cfg(not(feature = "std"))]
use libm::F32Ext;
+use simple_error::SimpleError;
+
use core::f32;
use crate::layout;
@@ -59,7 +61,7 @@ struct FlexLine<'a> {
offset_cross: f32,
}
-pub fn compute(root: &style::Node, size: Size<Number>) -> layout::Node {
+pub fn compute(root: &style::Node, size: Size<Number>) -> Result<layout::Node, SimpleError> {
let has_root_min_max = root.min_size.width.is_defined()
|| root.min_size.height.is_defined()
|| root.max_size.width.is_defined()
@@ -71,7 +73,7 @@ pub fn compute(root: &style::Node, size: Size<Number>) -> layout::Node {
Size { width: root.size.width.resolve(size.width), height: root.size.height.resolve(size.height) },
size,
false,
- );
+ )?;
compute_internal(
root,
@@ -91,14 +93,14 @@ pub fn compute(root: &style::Node, size: Size<Number>) -> layout::Node {
},
size,
true,
- )
+ )?
} else {
compute_internal(
root,
Size { width: root.size.width.resolve(size.width), height: root.size.height.resolve(size.height) },
size,
true,
- )
+ )?
};
let mut layout = layout::Node {
@@ -109,7 +111,7 @@ pub fn compute(root: &style::Node, size: Size<Number>) -> layout::Node {
};
round_layout(&mut layout, 0.0, 0.0);
- layout
+ Ok(layout)
}
fn round_layout(layout: &mut layout::Node, abs_x: f32, abs_y: f32) {
@@ -128,7 +130,7 @@ fn compute_internal(
node_size: Size<Number>,
parent_size: Size<Number>,
perform_layout: bool,
-) -> ComputeResult {
+) -> Result<ComputeResult, SimpleError> {
// First we check if we have a result for the given input
{
let layout_cache = node.layout_cache.borrow();
@@ -147,11 +149,11 @@ fn compute_internal(
};
if width_compatible && height_compatible {
- return cache.result.clone();
+ return Ok(cache.result.clone());
}
if cache.node_size == node_size && cache.parent_size == parent_size {
- return cache.result.clone();
+ return Ok(cache.result.clone());
}
}
}
@@ -160,18 +162,18 @@ fn compute_internal(
// If this is a leaf node we can skip a lot of this function in some cases
if node.children.is_empty() {
if node_size.width.is_defined() && node_size.height.is_defined() {
- return ComputeResult { size: node_size.map(|s| s.or_else(0.0)), children: vec![] };
+ return Ok(ComputeResult { size: node_size.map(|s| s.or_else(0.0)), children: vec![] });
}
if let Some(ref measure) = node.measure {
- let result = ComputeResult { size: measure(node_size), children: vec![] };
+ let result = ComputeResult { size: measure(node_size)?, children: vec![] };
node.layout_cache.replace(Some(LayoutCache {
node_size,
parent_size,
perform_layout,
result: result.clone(),
}));
- return result;
+ return Ok(result);
}
}
@@ -266,13 +268,13 @@ fn compute_internal(
// TODO - this does not follow spec. See commented out code below
// 3. Determine the flex base size and hypothetical main size of each item:
- flex_items.iter_mut().for_each(|child| {
+ flex_items.iter_mut().try_for_each(|child| -> Result<(), SimpleError> {
// A. If the item has a definite used flex basis, that’s the flex base size.
let flex_basis = child.node.flex_basis.resolve(node_inner_size.main(dir));
if flex_basis.is_defined() {
child.flex_basis = flex_basis.or_else(0.0);
- return;
+ return Ok(());
};
// B. If the flex item has an intrinsic aspect ratio,
@@ -284,7 +286,7 @@ fn compute_internal(
if let Defined(cross) = node_size.cross(dir) {
if child.node.flex_basis == Dimension::Auto {
child.flex_basis = cross * ratio;
- return;
+ return Ok(());
}
}
}
@@ -336,17 +338,19 @@ fn compute_internal(
},
available_space,
false,
- )
+ )?
.size
.main(dir)
.maybe_max(child.min_size.main(dir))
.maybe_min(child.max_size.main(dir));
- });
+
+ Ok(())
+ })?;
// The hypothetical main size is the item’s flex base size clamped according to its
// used min and max main sizes (and flooring the content box size at zero).
- flex_items.iter_mut().for_each(|child| {
+ flex_items.iter_mut().try_for_each(|child| -> Result<(), SimpleError> {
child.inner_flex_basis = child.flex_basis - child.padding.main(dir) - child.border.main(dir);
// TODO - not really spec abiding but needs to be done somewhere. probably somewhere else though.
@@ -354,7 +358,7 @@ fn compute_internal(
// webkit handled various scenarios. Can probably be solved better by passing in
// min-content max-content constraints from the top
let min_main = if is_row {
- compute_internal(child.node, Size { width: Undefined, height: Undefined }, available_space, false)
+ compute_internal(child.node, Size { width: Undefined, height: Undefined }, available_space, false)?
.size
.width
.maybe_max(child.min_size.width)
@@ -369,7 +373,9 @@ fn compute_internal(
.set_main(dir, child.flex_basis.maybe_max(min_main).maybe_min(child.max_size.main(dir)));
child.hypothetical_outer_size.set_main(dir, child.hypothetical_inner_size.main(dir) + child.margin.main(dir));
- });
+
+ Ok(())
+ })?;
// 9.3. Main Size Determination
@@ -422,7 +428,7 @@ fn compute_internal(
//
// 9.7. Resolving Flexible Lengths
- flex_lines.iter_mut().for_each(|line| {
+ flex_lines.iter_mut().try_for_each(|line| -> Result<(), SimpleError> {
// 1. Determine the used flex factor. Sum the outer hypothetical main sizes of all
// items on the line. If the sum is less than the flex container’s inner main size,
// use the flex grow factor for the rest of this algorithm; otherwise, use the
@@ -439,7 +445,7 @@ fn compute_internal(
// - If using the flex shrink factor: any item that has a flex base size
// smaller than its hypothetical main size
- line.items.iter_mut().for_each(|child| {
+ line.items.iter_mut().try_for_each(|child| -> Result<(), SimpleError> {
// TODO - This is not found by reading the spec. Maybe this can be done in some other place
// instead. This was found by trail and error fixing tests to align with webkit output.
if node_inner_size.main(dir).is_undefined() && is_row {
@@ -453,7 +459,7 @@ fn compute_internal(
},
available_space,
false,
- )
+ )?
.size
.main(dir)
.maybe_max(child.min_size.main(dir))
@@ -474,7 +480,9 @@ fn compute_internal(
{
child.frozen = true;
}
- });
+
+ Ok(())
+ })?;
// 3. Calculate initial free space. Sum the outer sizes of all items on the line,
// and subtract this from the flex container’s inner main size. For frozen items,
@@ -581,14 +589,14 @@ fn compute_internal(
// item’s target main size was made smaller by this, it’s a max violation.
// If the item’s target main size was made larger by this, it’s a min violation.
- let total_violation = unfrozen.iter_mut().fold(0.0, |acc, child| {
+ let total_violation = unfrozen.iter_mut().try_fold(0.0, |acc, child| -> Result<f32, SimpleError> {
// TODO - not really spec abiding but needs to be done somewhere. probably somewhere else though.
// The following logic was developed not from the spec but by trail and error looking into how
// webkit handled various scenarios. Can probably be solved better by passing in
// min-content max-content constraints from the top. Need to figure out correct thing to do here as
// just piling on more conditionals.
let min_main = if is_row && child.node.measure.is_none() {
- compute_internal(child.node, Size { width: Undefined, height: Undefined }, available_space, false)
+ compute_internal(child.node, Size { width: Undefined, height: Undefined }, available_space, false)?
.size
.width
.maybe_min(child.size.width)
@@ -604,8 +612,8 @@ fn compute_internal(
child.target_size.set_main(dir, clamped);
child.outer_target_size.set_main(dir, child.target_size.main(dir) + child.margin.main(dir));
- acc + child.violation
- });
+ Ok(acc + child.violation)
+ })?;
// e. Freeze over-flexed items. The total violation is the sum of the adjustments
// from the previous step ∑(clamped size - unclamped size). If the total violation is:
@@ -624,7 +632,9 @@ fn compute_internal(
// f. Return to the start of this loop.
}
- });
+
+ Ok(())
+ })?;
// Not part of the spec from what i can see but seems correct
container_size.set_main(
@@ -650,8 +660,8 @@ fn compute_internal(
// 7. Determine the hypothetical cross size of each item by performing layout with the
// used main size and the available space, treating auto as fit-content.
- flex_lines.iter_mut().for_each(|line| {
- line.items.iter_mut().for_each(|child| {
+ flex_lines.iter_mut().try_for_each(|line| {
+ line.items.iter_mut().try_for_each(|child| -> Result<(), SimpleError> {
let child_cross =
child.size.cross(dir).maybe_max(child.min_size.cross(dir)).maybe_min(child.max_size.cross(dir));
@@ -668,7 +678,7 @@ fn compute_internal(
height: if is_row { available_space.height } else { container_size.main(dir).to_number() },
},
false,
- )
+ )?
.size
.cross(dir)
.maybe_max(child.min_size.cross(dir))
@@ -678,8 +688,10 @@ fn compute_internal(
child
.hypothetical_outer_size
.set_cross(dir, child.hypothetical_inner_size.cross(dir) + child.margin.cross(dir));
- });
- });
+
+ Ok(())
+ })
+ })?;
// TODO - probably should move this somewhere else as it doesn't make a ton of sense here but we need it below
// TODO - This is expensive and should only be done if we really require a baseline. aka, make it lazy
@@ -692,8 +704,8 @@ fn compute_internal(
}
};
- flex_lines.iter_mut().for_each(|line| {
- line.items.iter_mut().for_each(|child| {
+ flex_lines.iter_mut().try_for_each(|line| {
+ line.items.iter_mut().try_for_each(|child| -> Result<(), SimpleError> {
let result = compute_internal(
child.node,
Size {
@@ -713,15 +725,18 @@ fn compute_internal(
height: if is_row { node_size.height } else { container_size.height.to_number() },
},
true,
- );
+ )?;
+
child.baseline = calc_baseline(&layout::Node {
order: node.children.iter().position(|n| ref_eq(n, child.node)).unwrap() as u32,
size: result.size,
location: Point { x: 0.0, y: 0.0 },
children: result.children,
});
- });
- });
+
+ Ok(())
+ })
+ })?;
// 8. Calculate the cross size of each flex line.
// If the flex container is single-line and has a definite cross size, the cross size
@@ -1029,7 +1044,7 @@ fn compute_internal(
if !perform_layout {
let result = ComputeResult { size: container_size, children: vec![] };
node.layout_cache.replace(Some(LayoutCache { node_size, parent_size, perform_layout, result: result.clone() }));
- return result;
+ return Ok(result);
}
// 16. Align all flex lines per align-content.
@@ -1091,18 +1106,18 @@ fn compute_internal(
let mut lines: Vec<Vec<layout::Node>> = vec![];
let mut total_offset_cross = padding_border.cross_start(dir);
- let layout_line = |line: &mut FlexLine| {
+ let layout_line = |line: &mut FlexLine| -> Result<(), SimpleError> {
let mut children: Vec<layout::Node> = vec![];
let mut total_offset_main = padding_border.main_start(dir);
let line_offset_cross = line.offset_cross;
- let layout_item = |child: &mut FlexItem| {
+ let layout_item = |child: &mut FlexItem| -> Result<(), SimpleError> {
let result = compute_internal(
child.node,
child.target_size.map(|s| s.to_number()),
container_size.map(|s| s.to_number()),
true,
- );
+ )?;
let offset_main = total_offset_main
+ child.offset_main
@@ -1126,12 +1141,14 @@ fn compute_internal(
});
total_offset_main += child.offset_main + child.margin.main(dir) + result.size.main(dir);
+
+ Ok(())
};
if dir.is_reverse() {
- line.items.iter_mut().rev().for_each(layout_item);
+ line.items.iter_mut().rev().try_for_each(layout_item)?;
} else {
- line.items.iter_mut().for_each(layout_item);
+ line.items.iter_mut().try_for_each(layout_item)?;
}
total_offset_cross += line_offset_cross + line.cross_size;
@@ -1141,12 +1158,14 @@ fn compute_internal(
}
lines.push(children);
+
+ Ok(())
};
if is_wrap_reverse {
- flex_lines.iter_mut().rev().for_each(layout_line);
+ flex_lines.iter_mut().rev().try_for_each(layout_line)?;
} else {
- flex_lines.iter_mut().for_each(layout_line);
+ flex_lines.iter_mut().try_for_each(layout_line)?;
}
if is_wrap_reverse {
@@ -1157,7 +1176,7 @@ fn compute_internal(
};
// Before returning we perform absolute layout on all absolutely positioned children
- let mut absolute_children: Vec<layout::Node> = node
+ let absolute_children: Vec<Result<layout::Node, SimpleError>> = node
.children
.iter()
.enumerate()
@@ -1204,7 +1223,7 @@ fn compute_internal(
Size { width, height },
Size { width: container_width, height: container_height },
true,
- );
+ )?;
let free_main_space = container_size.main(dir)
- result
@@ -1267,7 +1286,7 @@ fn compute_internal(
}
};
- layout::Node {
+ Ok(layout::Node {
order: order as u32,
size: result.size,
location: Point {
@@ -1275,11 +1294,13 @@ fn compute_internal(
y: if is_column { offset_main } else { offset_cross },
},
children: result.children,
- }
+ })
})
.collect();
- children.append(&mut absolute_children);
+ for abs_child in absolute_children {
+ children.push(abs_child?);
+ }
fn hidden_layout(node: &style::Node, order: u32) -> layout::Node {
layout::Node {
@@ -1304,5 +1325,5 @@ fn compute_internal(
let result = ComputeResult { size: container_size, children };
node.layout_cache.replace(Some(LayoutCache { node_size, parent_size, perform_layout, result: result.clone() }));
- result
+ Ok(result)
}
diff --git a/src/style.rs b/src/style.rs
index 7bcbf0433..d917074e9 100644
--- a/src/style.rs
+++ b/src/style.rs
@@ -3,6 +3,8 @@ use alloc::boxed::Box;
#[cfg(not(feature = "std"))]
use alloc::{vec, vec::Vec};
+use simple_error::SimpleError;
+
use crate::algo;
use crate::geometry::{Rect, Size};
use crate::number::Number;
@@ -205,7 +207,7 @@ impl Default for Size<Dimension> {
}
}
-type MeasureFunc = Box<Fn(Size<Number>) -> Size<f32>>;
+type MeasureFunc = Box<Fn(Size<Number>) -> Result<Size<f32>, SimpleError>>;
#[derive(Debug, Clone)]
pub struct LayoutCache {
diff --git a/tests/generated.rs b/tests/generated.rs
index 05cb78909..df89457fc 100644
--- a/tests/generated.rs
+++ b/tests/generated.rs
@@ -36,7 +36,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -80,7 +81,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -115,7 +117,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 110.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -164,7 +167,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 200.0000);
assert_eq!(layout.size.height, 200.0000);
@@ -217,7 +221,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 200.0000);
assert_eq!(layout.size.height, 200.0000);
@@ -275,7 +280,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 113.0000);
@@ -322,7 +328,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 200.0000);
assert_eq!(layout.size.height, 200.0000);
@@ -380,7 +387,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 113.0000);
@@ -425,7 +433,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -498,7 +507,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 700.0000);
assert_eq!(layout.size.height, 500.0000);
@@ -561,7 +571,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -599,7 +610,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 0.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -636,7 +648,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -674,7 +687,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 500.0000);
assert_eq!(layout.size.height, 500.0000);
@@ -715,7 +729,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 0.0000);
@@ -757,7 +772,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 150.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -811,7 +827,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -875,7 +892,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 110.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -951,7 +969,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 200.0000);
@@ -997,7 +1016,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 110.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -1033,7 +1053,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -1086,7 +1107,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -1143,7 +1165,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 120.0000);
assert_eq!(layout.size.height, 50.0000);
@@ -1184,7 +1207,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -1219,7 +1243,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -1254,7 +1279,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -1297,7 +1323,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 20.0000);
assert_eq!(layout.size.height, 50.0000);
@@ -1356,7 +1383,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 50.0000);
assert_eq!(layout.size.height, 110.0000);
@@ -1436,7 +1464,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 200.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -1493,7 +1522,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -1542,7 +1572,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -1612,7 +1643,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 300.0000);
@@ -1648,7 +1680,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -1686,7 +1719,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -1732,7 +1766,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 20.0000);
assert_eq!(layout.size.height, 80.0000);
@@ -1773,7 +1808,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -1806,7 +1842,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -1849,7 +1886,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -1894,7 +1932,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 110.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -1931,7 +1970,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -1985,7 +2025,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -2031,7 +2072,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -2072,7 +2114,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 250.0000);
assert_eq!(layout.size.height, 250.0000);
@@ -2101,7 +2144,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -2141,7 +2185,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -2200,7 +2245,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 60.0000);
@@ -2252,7 +2298,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -2309,7 +2356,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -2363,7 +2411,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 500.0000);
assert_eq!(layout.size.height, 500.0000);
@@ -2427,7 +2476,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -2474,7 +2524,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -2514,7 +2565,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -2558,7 +2610,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -2622,7 +2675,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 500.0000);
assert_eq!(layout.size.height, 500.0000);
@@ -2689,7 +2743,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 500.0000);
assert_eq!(layout.size.height, 500.0000);
@@ -2730,7 +2785,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -2777,7 +2833,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -2827,7 +2884,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 90.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -2879,7 +2937,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 50.0000);
assert_eq!(layout.size.height, 20.0000);
@@ -2913,7 +2972,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -2951,7 +3011,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 400.0000);
assert_eq!(layout.size.height, 400.0000);
@@ -2990,7 +3051,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -3043,7 +3105,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 114.0000);
@@ -3098,7 +3161,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 200.0000);
assert_eq!(layout.size.height, 400.0000);
@@ -3152,7 +3216,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 200.0000);
assert_eq!(layout.size.height, 200.0000);
@@ -3261,7 +3326,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 200.0000);
assert_eq!(layout.size.height, 200.0000);
@@ -3311,7 +3377,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 0.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -3350,7 +3417,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -3403,7 +3471,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 200.0000);
assert_eq!(layout.size.height, 200.0000);
@@ -3446,7 +3515,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 200.0000);
assert_eq!(layout.size.height, 400.0000);
@@ -3491,7 +3561,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 200.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -3524,7 +3595,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -3566,7 +3638,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -3614,7 +3687,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -3663,7 +3737,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 52.0000);
assert_eq!(layout.size.height, 52.0000);
@@ -3701,7 +3776,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -3745,7 +3821,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 52.0000);
assert_eq!(layout.size.height, 52.0000);
@@ -3803,7 +3880,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 200.0000);
assert_eq!(layout.size.height, 200.0000);
@@ -3864,7 +3942,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 200.0000);
assert_eq!(layout.size.height, 200.0000);
@@ -3923,7 +4002,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 10.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -3984,7 +4064,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 200.0000);
assert_eq!(layout.size.height, 400.0000);
@@ -4028,7 +4109,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 50.0000);
assert_eq!(layout.size.height, 50.0000);
@@ -4093,7 +4175,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 200.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -4143,7 +4226,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 30.0000);
assert_eq!(layout.size.height, 30.0000);
@@ -4254,7 +4338,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -4308,7 +4393,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 52.0000);
assert_eq!(layout.size.height, 52.0000);
@@ -4357,7 +4443,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -4405,7 +4492,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -4446,7 +4534,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 250.0000);
assert_eq!(layout.size.height, 250.0000);
@@ -4479,7 +4568,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 50.0000);
@@ -4523,7 +4613,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 200.0000);
assert_eq!(layout.size.height, 400.0000);
@@ -4569,7 +4660,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -4623,7 +4715,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 200.0000);
assert_eq!(layout.size.height, 200.0000);
@@ -4683,7 +4776,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -4737,7 +4831,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 50.0000);
assert_eq!(layout.size.height, 50.0000);
@@ -4775,7 +4870,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 200.0000);
assert_eq!(layout.size.height, 400.0000);
@@ -4830,7 +4926,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 200.0000);
assert_eq!(layout.size.height, 200.0000);
@@ -4868,7 +4965,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 0.0000);
@@ -4915,7 +5013,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 200.0000);
@@ -4994,7 +5093,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 500.0000);
assert_eq!(layout.size.height, 500.0000);
@@ -5058,7 +5158,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -5099,7 +5200,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -5172,7 +5274,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 80.0000);
@@ -5253,7 +5356,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -5306,7 +5410,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -5355,7 +5460,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -5414,7 +5520,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -5463,7 +5570,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 50.0000);
assert_eq!(layout.size.height, 50.0000);
@@ -5503,7 +5611,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -5556,7 +5665,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 87.0000);
assert_eq!(layout.size.height, 113.0000);
@@ -5643,7 +5753,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 80.0000);
@@ -5703,7 +5814,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 110.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -5771,7 +5883,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 300.0000);
assert_eq!(layout.size.height, 50.0000);
@@ -5844,7 +5957,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 113.0000);
@@ -5910,7 +6024,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 0.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -5965,7 +6080,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -6014,7 +6130,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -6065,7 +6182,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 200.0000);
assert_eq!(layout.size.height, 400.0000);
@@ -6132,7 +6250,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 80.0000);
@@ -6197,7 +6316,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 200.0000);
assert_eq!(layout.size.height, 200.0000);
@@ -6252,7 +6372,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 200.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -6298,7 +6419,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 110.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -6332,7 +6454,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -6367,7 +6490,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 52.0000);
assert_eq!(layout.size.height, 52.0000);
@@ -6416,7 +6540,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 200.0000);
assert_eq!(layout.size.height, 200.0000);
@@ -6457,7 +6582,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 0.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -6501,7 +6627,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -6571,7 +6698,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 60.0000);
@@ -6621,7 +6749,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 30.0000);
assert_eq!(layout.size.height, 30.0000);
@@ -6670,7 +6799,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 200.0000);
assert_eq!(layout.size.height, 200.0000);
@@ -6727,7 +6857,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -6786,7 +6917,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 200.0000);
assert_eq!(layout.size.height, 200.0000);
@@ -6841,7 +6973,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -6896,7 +7029,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 200.0000);
assert_eq!(layout.size.height, 200.0000);
@@ -6969,7 +7103,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 80.0000);
@@ -7016,7 +7151,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 20.0000);
assert_eq!(layout.size.height, 20.0000);
@@ -7048,7 +7184,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -7100,7 +7237,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 30.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -7138,7 +7276,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 0.0000);
@@ -7181,7 +7320,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 200.0000);
assert_eq!(layout.size.height, 200.0000);
@@ -7234,7 +7374,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 30.0000);
@@ -7273,7 +7414,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 50.0000);
@@ -7333,7 +7475,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 10.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -7383,7 +7526,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -7429,7 +7573,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 50.0000);
@@ -7468,7 +7613,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 50.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -7514,7 +7660,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 200.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -7555,7 +7702,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -7591,7 +7739,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -7624,7 +7773,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 0.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -7658,7 +7808,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -7692,7 +7843,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -7759,7 +7911,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 700.0000);
assert_eq!(layout.size.height, 500.0000);
@@ -7828,7 +7981,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 60.0000);
@@ -7879,7 +8033,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -7908,7 +8063,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 0.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -7944,7 +8100,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -7993,7 +8150,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 50.0000);
assert_eq!(layout.size.height, 50.0000);
@@ -8039,7 +8197,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 80.0000);
assert_eq!(layout.size.height, 20.0000);
@@ -8075,7 +8234,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -8103,7 +8263,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -8185,7 +8346,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 87.0000);
assert_eq!(layout.size.height, 113.0000);
@@ -8245,7 +8407,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -8299,7 +8462,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 200.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -8367,7 +8531,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 350.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -8416,7 +8581,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -8453,7 +8619,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -8498,7 +8665,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 200.0000);
assert_eq!(layout.size.height, 400.0000);
@@ -8552,7 +8720,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 200.0000);
assert_eq!(layout.size.height, 200.0000);
@@ -8591,7 +8760,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -8642,7 +8812,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -8707,7 +8878,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 60.0000);
@@ -8766,7 +8938,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -8805,7 +8978,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -8850,7 +9024,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 110.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -8883,7 +9058,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -8920,7 +9096,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -8986,7 +9163,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -9051,7 +9229,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -9104,7 +9283,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -9159,7 +9339,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -9206,7 +9387,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -9251,7 +9433,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 110.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -9296,7 +9479,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 200.0000);
assert_eq!(layout.size.height, 400.0000);
@@ -9349,7 +9533,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 200.0000);
assert_eq!(layout.size.height, 200.0000);
@@ -9387,7 +9572,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -9438,7 +9624,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 200.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -9496,7 +9683,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 75.0000);
assert_eq!(layout.size.height, 50.0000);
@@ -9560,7 +9748,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 200.0000);
assert_eq!(layout.size.height, 200.0000);
@@ -9620,7 +9809,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 1080.0000);
assert_eq!(layout.size.height, 1584.0000);
@@ -9661,7 +9851,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -9706,7 +9897,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 110.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -9748,7 +9940,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -9790,7 +9983,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 200.0000);
assert_eq!(layout.size.height, 200.0000);
@@ -9839,7 +10033,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -9902,7 +10097,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -9965,7 +10161,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 113.0000);
@@ -10010,7 +10207,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 110.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -10064,7 +10262,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -10125,7 +10324,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 200.0000);
assert_eq!(layout.size.height, 400.0000);
@@ -10179,7 +10379,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 200.0000);
assert_eq!(layout.size.height, 200.0000);
@@ -10219,7 +10420,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 500.0000);
assert_eq!(layout.size.height, 200.0000);
@@ -10263,7 +10465,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 0.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -10314,7 +10517,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 200.0000);
assert_eq!(layout.size.height, 400.0000);
@@ -10369,7 +10573,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -10409,7 +10614,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -10456,7 +10662,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -10529,7 +10736,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 80.0000);
@@ -10596,7 +10804,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 500.0000);
assert_eq!(layout.size.height, 500.0000);
@@ -10629,7 +10838,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 0.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -10663,7 +10873,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -10702,7 +10913,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -10742,7 +10954,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 101.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -10792,7 +11005,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -10826,7 +11040,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -10853,7 +11068,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 20.0000);
assert_eq!(layout.size.height, 20.0000);
@@ -10880,7 +11096,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 113.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -10938,7 +11155,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -10998,7 +11216,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -11046,7 +11265,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -11089,7 +11309,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -11123,7 +11344,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 0.0000);
assert_eq!(layout.size.height, 0.0000);
@@ -11164,7 +11386,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 200.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -11222,7 +11445,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 500.0000);
@@ -11263,7 +11487,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 0.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -11313,7 +11538,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -11368,7 +11594,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 1000.0000);
assert_eq!(layout.size.height, 1584.0000);
@@ -11433,7 +11660,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 120.0000);
assert_eq!(layout.size.height, 20.0000);
@@ -11493,7 +11721,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 60.0000);
assert_eq!(layout.size.height, 50.0000);
@@ -11550,7 +11779,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 300.0000);
@@ -11605,7 +11835,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -11656,7 +11887,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 200.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -11698,7 +11930,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 100.0000);
@@ -11734,7 +11967,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0000);
assert_eq!(layout.size.height, 0.0000);
@@ -11772,7 +12006,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 500.0000);
assert_eq!(layout.size.height, 500.0000);
@@ -11815,7 +12050,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 200.0000);
assert_eq!(layout.size.height, 200.0000);
@@ -11859,7 +12095,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 500.0000);
assert_eq!(layout.size.height, 500.0000);
@@ -11907,7 +12144,8 @@ mod generated {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 20.0000);
assert_eq!(layout.size.height, 50.0000);
diff --git a/tests/measure.rs b/tests/measure.rs
index a174ade73..33d2ee78f 100644
--- a/tests/measure.rs
+++ b/tests/measure.rs
@@ -1,19 +1,23 @@
#[cfg(test)]
mod measure {
+ use simple_error::SimpleError;
use stretch::number::OrElse;
#[test]
fn measure_root() {
let layout = stretch::compute(
&stretch::style::Node {
- measure: Some(Box::new(|constraint| stretch::geometry::Size {
- width: constraint.width.or_else(100.0),
- height: constraint.height.or_else(100.0),
+ measure: Some(Box::new(|constraint| {
+ Ok(stretch::geometry::Size {
+ width: constraint.width.or_else(100.0),
+ height: constraint.height.or_else(100.0),
+ })
})),
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0);
assert_eq!(layout.size.height, 100.0);
@@ -24,16 +28,19 @@ mod measure {
let layout = stretch::compute(
&stretch::style::Node {
children: vec![stretch::style::Node {
- measure: Some(Box::new(|constraint| stretch::geometry::Size {
- width: constraint.width.or_else(100.0),
- height: constraint.height.or_else(100.0),
+ measure: Some(Box::new(|constraint| {
+ Ok(stretch::geometry::Size {
+ width: constraint.width.or_else(100.0),
+ height: constraint.height.or_else(100.0),
+ })
})),
..Default::default()
}],
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0);
assert_eq!(layout.size.height, 100.0);
@@ -48,16 +55,19 @@ mod measure {
&stretch::style::Node {
size: stretch::geometry::Size { width: stretch::style::Dimension::Points(50.0), ..Default::default() },
children: vec![stretch::style::Node {
- measure: Some(Box::new(|constraint| stretch::geometry::Size {
- width: constraint.width.or_else(100.0),
- height: constraint.height.or_else(100.0),
+ measure: Some(Box::new(|constraint| {
+ Ok(stretch::geometry::Size {
+ width: constraint.width.or_else(100.0),
+ height: constraint.height.or_else(100.0),
+ })
})),
..Default::default()
}],
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 50.0);
assert_eq!(layout.size.height, 100.0);
@@ -78,16 +88,19 @@ mod measure {
bottom: stretch::style::Dimension::Points(10.0),
},
children: vec![stretch::style::Node {
- measure: Some(Box::new(|constraint| stretch::geometry::Size {
- width: constraint.width.or_else(100.0),
- height: constraint.height.or_else(100.0),
+ measure: Some(Box::new(|constraint| {
+ Ok(stretch::geometry::Size {
+ width: constraint.width.or_else(100.0),
+ height: constraint.height.or_else(100.0),
+ })
})),
..Default::default()
}],
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 50.0);
assert_eq!(layout.size.height, 120.0);
@@ -110,9 +123,11 @@ mod measure {
..Default::default()
},
stretch::style::Node {
- measure: Some(Box::new(|constraint| stretch::geometry::Size {
- width: constraint.width.or_else(10.0),
- height: constraint.height.or_else(50.0),
+ measure: Some(Box::new(|constraint| {
+ Ok(stretch::geometry::Size {
+ width: constraint.width.or_else(10.0),
+ height: constraint.height.or_else(50.0),
+ })
})),
flex_grow: 1.0,
..Default::default()
@@ -121,7 +136,8 @@ mod measure {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.children[1].size.width, 50.0);
assert_eq!(layout.children[1].size.height, 50.0);
@@ -142,9 +158,11 @@ mod measure {
..Default::default()
},
stretch::style::Node {
- measure: Some(Box::new(|constraint| stretch::geometry::Size {
- width: constraint.width.or_else(100.0),
- height: constraint.height.or_else(50.0),
+ measure: Some(Box::new(|constraint| {
+ Ok(stretch::geometry::Size {
+ width: constraint.width.or_else(100.0),
+ height: constraint.height.or_else(50.0),
+ })
})),
..Default::default()
},
@@ -152,7 +170,8 @@ mod measure {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.children[1].size.width, 50.0);
assert_eq!(layout.children[1].size.height, 50.0);
@@ -176,7 +195,7 @@ mod measure {
measure: Some(Box::new(|constraint| {
let width = constraint.width.or_else(10.0);
let height = constraint.height.or_else(width * 2.0);
- stretch::geometry::Size { width, height }
+ Ok(stretch::geometry::Size { width, height })
})),
flex_grow: 1.0,
..Default::default()
@@ -185,7 +204,8 @@ mod measure {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.children[1].size.width, 50.0);
assert_eq!(layout.children[1].size.height, 100.0);
@@ -210,7 +230,7 @@ mod measure {
measure: Some(Box::new(|constraint| {
let width = constraint.width.or_else(100.0);
let height = constraint.height.or_else(width * 2.0);
- stretch::geometry::Size { width, height }
+ Ok(stretch::geometry::Size { width, height })
})),
..Default::default()
},
@@ -218,7 +238,8 @@ mod measure {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.children[1].size.width, 50.0);
assert_eq!(layout.children[1].size.height, 100.0);
@@ -236,14 +257,15 @@ mod measure {
measure: Some(Box::new(|constraint| {
let height = constraint.height.or_else(50.0);
let width = constraint.width.or_else(height);
- stretch::geometry::Size { width, height }
+ Ok(stretch::geometry::Size { width, height })
})),
..Default::default()
}],
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.children[0].size.width, 100.0);
assert_eq!(layout.children[0].size.height, 100.0);
@@ -258,16 +280,19 @@ mod measure {
width: stretch::style::Dimension::Points(50.0),
..Default::default()
},
- measure: Some(Box::new(|constraint| stretch::geometry::Size {
- width: constraint.width.or_else(100.0),
- height: constraint.height.or_else(100.0),
+ measure: Some(Box::new(|constraint| {
+ Ok(stretch::geometry::Size {
+ width: constraint.width.or_else(100.0),
+ height: constraint.height.or_else(100.0),
+ })
})),
..Default::default()
}],
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.children[0].size.width, 50.0);
assert_eq!(layout.children[0].size.height, 100.0);
@@ -282,16 +307,19 @@ mod measure {
height: stretch::style::Dimension::Points(50.0),
..Default::default()
},
- measure: Some(Box::new(|constraint| stretch::geometry::Size {
- width: constraint.width.or_else(100.0),
- height: constraint.height.or_else(100.0),
+ measure: Some(Box::new(|constraint| {
+ Ok(stretch::geometry::Size {
+ width: constraint.width.or_else(100.0),
+ height: constraint.height.or_else(100.0),
+ })
})),
..Default::default()
}],
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.children[0].size.width, 100.0);
assert_eq!(layout.children[0].size.height, 50.0);
@@ -314,9 +342,11 @@ mod measure {
stretch::style::Node {
flex_basis: stretch::style::Dimension::Points(50.0),
flex_grow: 1.0,
- measure: Some(Box::new(|constraint| stretch::geometry::Size {
- width: constraint.width.or_else(100.0),
- height: constraint.height.or_else(100.0),
+ measure: Some(Box::new(|constraint| {
+ Ok(stretch::geometry::Size {
+ width: constraint.width.or_else(100.0),
+ height: constraint.height.or_else(100.0),
+ })
})),
..Default::default()
},
@@ -324,7 +354,8 @@ mod measure {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.children[0].size.width, 100.0);
assert_eq!(layout.children[0].size.height, 100.0);
@@ -341,16 +372,19 @@ mod measure {
height: stretch::style::Dimension::Points(100.0),
},
children: vec![stretch::style::Node {
- measure: Some(Box::new(|constraint| stretch::geometry::Size {
- width: constraint.width.or_else(50.0),
- height: constraint.height.or_else(50.0),
+ measure: Some(Box::new(|constraint| {
+ Ok(stretch::geometry::Size {
+ width: constraint.width.or_else(50.0),
+ height: constraint.height.or_else(50.0),
+ })
})),
..Default::default()
}],
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.children[0].size.width, 50.0);
assert_eq!(layout.children[0].size.height, 100.0);
@@ -366,16 +400,19 @@ mod measure {
},
children: vec![stretch::style::Node {
position_type: stretch::style::PositionType::Absolute,
- measure: Some(Box::new(|constraint| stretch::geometry::Size {
- width: constraint.width.or_else(50.0),
- height: constraint.height.or_else(50.0),
+ measure: Some(Box::new(|constraint| {
+ Ok(stretch::geometry::Size {
+ width: constraint.width.or_else(50.0),
+ height: constraint.height.or_else(50.0),
+ })
})),
..Default::default()
}],
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.children[0].size.width, 50.0);
assert_eq!(layout.children[0].size.height, 50.0);
@@ -391,13 +428,14 @@ mod measure {
},
children: vec![stretch::style::Node {
flex_grow: 1.0,
- measure: Some(Box::new(|_| stretch::geometry::Size { width: 200.0, height: 200.0 })),
+ measure: Some(Box::new(|_| Ok(stretch::geometry::Size { width: 200.0, height: 200.0 }))),
..Default::default()
}],
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(layout.children[0].size.width, 100.0);
assert_eq!(layout.children[0].size.height, 100.0);
@@ -414,10 +452,10 @@ mod measure {
children: vec![stretch::style::Node {
measure: Some(Box::new(move |constraint| {
unsafe { (*num_measure_ptr) += 1 };
- stretch::geometry::Size {
+ Ok(stretch::geometry::Size {
width: constraint.width.or_else(50.0),
height: constraint.height.or_else(50.0),
- }
+ })
})),
..Default::default()
}],
@@ -426,8 +464,30 @@ mod measure {
..Default::default()
},
stretch::geometry::Size::undefined(),
- );
+ )
+ .unwrap();
assert_eq!(num_measure, 1);
}
+
+ #[test]
+ fn propagate_measure_error() {
+ let layout = stretch::compute(
+ &stretch::style::Node {
+ size: stretch::geometry::Size {
+ width: stretch::style::Dimension::Points(100.0),
+ height: stretch::style::Dimension::Points(100.0),
+ },
+ children: vec![stretch::style::Node {
+ flex_grow: 1.0,
+ measure: Some(Box::new(|_| Err(SimpleError::new("")))),
+ ..Default::default()
+ }],
+ ..Default::default()
+ },
+ stretch::geometry::Size::undefined(),
+ );
+
+ assert_eq!(layout.is_err(), true);
+ }
}
diff --git a/tests/root_constraints.rs b/tests/root_constraints.rs
index ab12421d0..6ae6aabd5 100644
--- a/tests/root_constraints.rs
+++ b/tests/root_constraints.rs
@@ -13,7 +13,8 @@ mod root_constraints {
..Default::default()
},
stretch::geometry::Size { width: Number::Defined(100.0), height: Number::Defined(200.0) },
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 100.0);
assert_eq!(layout.size.height, 200.0);
@@ -24,7 +25,8 @@ mod root_constraints {
let layout = stretch::compute(
&stretch::style::Node { ..Default::default() },
stretch::geometry::Size { width: Number::Defined(100.0), height: Number::Defined(100.0) },
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 0.0);
assert_eq!(layout.size.height, 0.0);
@@ -41,7 +43,8 @@ mod root_constraints {
..Default::default()
},
stretch::geometry::Size { width: Number::Defined(100.0), height: Number::Defined(100.0) },
- );
+ )
+ .unwrap();
assert_eq!(layout.size.width, 200.0);
assert_eq!(layout.size.height, 200.0);