diff --git a/src/algo.rs b/src/algo.rs
index 42859261b..a1c63965e 100644
--- a/src/algo.rs
+++ b/src/algo.rs
@@ -173,7 +173,7 @@ fn compute_internal(
let mut flex_items: Vec<FlexItem> = node
.children
.iter()
- .filter(|child| child.position != style::Position::Absolute)
+ .filter(|child| child.position_type != style::PositionType::Absolute)
.map(|child| FlexItem {
node: child,
@@ -193,10 +193,10 @@ fn compute_internal(
},
position: Rect {
- start: child.start.resolve(percent_calc_base_child),
- end: child.end.resolve(percent_calc_base_child),
- top: child.top.resolve(percent_calc_base_child),
- bottom: child.bottom.resolve(percent_calc_base_child),
+ start: child.position.start.resolve(percent_calc_base_child),
+ end: child.position.end.resolve(percent_calc_base_child),
+ top: child.position.top.resolve(percent_calc_base_child),
+ bottom: child.position.bottom.resolve(percent_calc_base_child),
},
margin: Rect {
@@ -1137,15 +1137,16 @@ fn compute_internal(
let mut absolute_children: Vec<layout::Node> = node
.children
.iter()
- .filter(|child| child.position == style::Position::Absolute)
+ .filter(|child| child.position_type == style::PositionType::Absolute)
.map(|child| {
let container_width = container_width.to_number();
let container_height = container_height.to_number();
- let start = child.start.resolve(container_width) + child.margin.start.resolve(container_width);
- let end = child.end.resolve(container_width) + child.margin.end.resolve(container_width);
- let top = child.top.resolve(container_height) + child.margin.top.resolve(container_height);
- let bottom = child.bottom.resolve(container_height) + child.margin.bottom.resolve(container_height);
+ let start = child.position.start.resolve(container_width) + child.margin.start.resolve(container_width);
+ let end = child.position.end.resolve(container_width) + child.margin.end.resolve(container_width);
+ let top = child.position.top.resolve(container_height) + child.margin.top.resolve(container_height);
+ let bottom =
+ child.position.bottom.resolve(container_height) + child.margin.bottom.resolve(container_height);
let (start_main, end_main) = if is_row { (start, end) } else { (top, bottom) };
let (start_cross, end_cross) = if is_row { (top, bottom) } else { (start, end) };
diff --git a/src/style.rs b/src/style.rs
index 554c758ba..12c10d21c 100644
--- a/src/style.rs
+++ b/src/style.rs
@@ -131,14 +131,14 @@ impl Default for Overflow {
}
#[derive(Copy, Clone, PartialEq, Debug)]
-pub enum Position {
+pub enum PositionType {
Relative,
Absolute,
}
-impl Default for Position {
- fn default() -> Position {
- Position::Relative
+impl Default for PositionType {
+ fn default() -> PositionType {
+ PositionType::Relative
}
}
@@ -191,7 +191,7 @@ impl Default for Rect<Dimension> {
#[derive(Debug)]
pub struct Node {
- pub position: Position,
+ pub position_type: PositionType,
pub direction: Direction,
pub flex_direction: FlexDirection,
@@ -204,6 +204,7 @@ pub struct Node {
pub justify_content: JustifyContent,
+ pub position: Rect<Dimension>,
pub margin: Rect<Dimension>,
pub padding: Rect<Dimension>,
pub border: Rect<Dimension>,
@@ -212,11 +213,6 @@ pub struct Node {
pub flex_shrink: f32,
pub flex_basis: Dimension,
- pub start: Dimension,
- pub end: Dimension,
- pub top: Dimension,
- pub bottom: Dimension,
-
pub width: Dimension,
pub min_width: Dimension,
pub max_width: Dimension,
@@ -233,7 +229,7 @@ pub struct Node {
impl Default for Node {
fn default() -> Node {
Node {
- position: Default::default(),
+ position_type: Default::default(),
direction: Default::default(),
flex_direction: Default::default(),
@@ -246,6 +242,7 @@ impl Default for Node {
justify_content: Default::default(),
+ position: Default::default(),
margin: Default::default(),
padding: Default::default(),
border: Default::default(),
@@ -254,11 +251,6 @@ impl Default for Node {
flex_shrink: 1.0,
flex_basis: Default::default(),
- start: Default::default(),
- end: Default::default(),
- top: Default::default(),
- bottom: Default::default(),
-
width: Default::default(),
min_width: Default::default(),
max_width: Default::default(),