gioser

tawasuyu/taffy

A high performance rust-powered UI layout library

HTML 227Rust 7TOML 3CSS 1307 Definiciones

remove mutable is_first

095674e994445f73fcc7f938bdde76a446a56ff9 · por Emil Sjölander · (hace 7 años) · padre f3ecc400b · ver el árbol en este commit

Delta semántico · 1

src/algo.rs

1 archivos · +10 −11

diff --git a/src/algo.rs b/src/algo.rs
index d37871634..fb1b2c283 100644
--- a/src/algo.rs
+++ b/src/algo.rs
@@ -949,10 +949,11 @@ fn compute_internal(
             });
         } else {
             let num_items = line.items.len();
-            let mut is_first = true;
             let layout_reverse = node.flex_direction.is_reverse();
 
-            let justify_item = |child: &mut FlexItem| {
+            let justify_item = |(i, child): (usize, &mut FlexItem)| {
+                let is_first = i == 0;
+
                 child.offset_main = match node.justify_content {
                     style::JustifyContent::FlexStart => {
                         if layout_reverse && is_first {
@@ -991,14 +992,12 @@ fn compute_internal(
                     }
                     style::JustifyContent::SpaceEvenly => free_space / (num_items + 1) as f32,
                 };
-
-                is_first = false;
             };
 
             if layout_reverse {
-                line.items.iter_mut().rev().for_each(justify_item);
+                line.items.iter_mut().rev().enumerate().for_each(justify_item);
             } else {
-                line.items.iter_mut().for_each(justify_item);
+                line.items.iter_mut().enumerate().for_each(justify_item);
             }
         }
     });
@@ -1093,9 +1092,10 @@ fn compute_internal(
 
     let free_space = inner_container_cross_size - total_cross_size;
     let num_lines = flex_lines.len();
-    let mut is_first = true;
 
-    let align_line = |line: &mut FlexLine| {
+    let align_line = |(i, line): (usize, &mut FlexLine)| {
+        let is_first = i == 0;
+
         line.offset_cross = match node.align_content {
             style::AlignContent::FlexStart => {
                 if is_first && is_wrap_reverse {
@@ -1134,13 +1134,12 @@ fn compute_internal(
                 }
             }
         };
-        is_first = false;
     };
 
     if is_wrap_reverse {
-        flex_lines.iter_mut().rev().for_each(align_line);
+        flex_lines.iter_mut().rev().enumerate().for_each(align_line);
     } else {
-        flex_lines.iter_mut().for_each(align_line);
+        flex_lines.iter_mut().enumerate().for_each(align_line);
     }
 
     // Do a final layout pass and gather the resulting layouts