From db441a64b18487f3f64bb4f99192548d7fac6893 Mon Sep 17 00:00:00 2001
From: Héctor Ramón Jiménez <hector0193@gmail.com>
Date: Sat, 14 Mar 2020 06:35:43 +0100
Subject: Reintroduce `pane_grid::Split` as an identifier

---
 native/src/widget/pane_grid.rs       | 2 ++
 native/src/widget/pane_grid/node.rs  | 6 +++---
 native/src/widget/pane_grid/split.rs | 2 ++
 native/src/widget/pane_grid/state.rs | 8 ++++----
 4 files changed, 11 insertions(+), 7 deletions(-)
 create mode 100644 native/src/widget/pane_grid/split.rs

diff --git a/native/src/widget/pane_grid.rs b/native/src/widget/pane_grid.rs
index 12d0b09d..68f32bc0 100644
--- a/native/src/widget/pane_grid.rs
+++ b/native/src/widget/pane_grid.rs
@@ -2,11 +2,13 @@ mod axis;
 mod direction;
 mod node;
 mod pane;
+mod split;
 mod state;
 
 pub use axis::Axis;
 pub use direction::Direction;
 pub use pane::Pane;
+pub use split::Split;
 pub use state::{Focus, State};
 
 use crate::{
diff --git a/native/src/widget/pane_grid/node.rs b/native/src/widget/pane_grid/node.rs
index aaf775d8..08046956 100644
--- a/native/src/widget/pane_grid/node.rs
+++ b/native/src/widget/pane_grid/node.rs
@@ -1,5 +1,5 @@
 use crate::{
-    pane_grid::{Axis, Pane},
+    pane_grid::{Axis, Pane, Split},
     Rectangle, Size,
 };
 
@@ -8,7 +8,7 @@ use std::collections::HashMap;
 #[derive(Debug, Clone, Hash)]
 pub enum Node {
     Split {
-        id: usize,
+        id: Split,
         axis: Axis,
         ratio: u32,
         a: Box<Node>,
@@ -33,7 +33,7 @@ impl Node {
         }
     }
 
-    pub fn split(&mut self, id: usize, axis: Axis, new_pane: Pane) {
+    pub fn split(&mut self, id: Split, axis: Axis, new_pane: Pane) {
         *self = Node::Split {
             id,
             axis,
diff --git a/native/src/widget/pane_grid/split.rs b/native/src/widget/pane_grid/split.rs
new file mode 100644
index 00000000..c2dad980
--- /dev/null
+++ b/native/src/widget/pane_grid/split.rs
@@ -0,0 +1,2 @@
+#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
+pub struct Split(pub(super) usize);
diff --git a/native/src/widget/pane_grid/state.rs b/native/src/widget/pane_grid/state.rs
index f46252c7..b0e571f0 100644
--- a/native/src/widget/pane_grid/state.rs
+++ b/native/src/widget/pane_grid/state.rs
@@ -1,6 +1,6 @@
 use crate::{
     input::keyboard,
-    pane_grid::{node::Node, Axis, Direction, Pane},
+    pane_grid::{node::Node, Axis, Direction, Pane, Split},
     Hasher, Point, Rectangle, Size,
 };
 
@@ -107,13 +107,13 @@ impl<T> State<T> {
             Pane(self.internal.last_id)
         };
 
-        let split_id = {
+        let new_split = {
             self.internal.last_id = self.internal.last_id.checked_add(1)?;
 
-            self.internal.last_id
+            Split(self.internal.last_id)
         };
 
-        node.split(split_id, axis, new_pane);
+        node.split(new_split, axis, new_pane);
 
         let _ = self.panes.insert(new_pane, state);
         self.focus(&new_pane);
-- 
cgit