@@ -132,7 +132,7 @@ impl<K, V> Root<K, V> {
132132}
133133
134134impl < K , V > NodeRef < marker:: Owned , K , V , marker:: Leaf > {
135- fn new_leaf ( ) -> Self {
135+ pub fn new_leaf ( ) -> Self {
136136 Self :: from_new_leaf ( Box :: new ( unsafe { LeafNode :: new ( ) } ) )
137137 }
138138
@@ -142,7 +142,7 @@ impl<K, V> NodeRef<marker::Owned, K, V, marker::Leaf> {
142142}
143143
144144impl < K , V > NodeRef < marker:: Owned , K , V , marker:: Internal > {
145- fn new_internal ( child : Root < K , V > ) -> Self {
145+ pub fn new_internal ( child : Root < K , V > ) -> Self {
146146 let mut new_node = Box :: new ( unsafe { InternalNode :: new ( ) } ) ;
147147 new_node. edges [ 0 ] . write ( child. node ) ;
148148 NodeRef :: from_new_internal ( new_node, child. height + 1 )
@@ -1461,45 +1461,22 @@ impl<'a, K: 'a, V: 'a> BalancingContext<'a, K, V> {
14611461 }
14621462}
14631463
1464- impl < BorrowType , K , V > NodeRef < BorrowType , K , V , marker:: Leaf > {
1465- /// Removes any static information asserting that this node is a `Leaf` node.
1466- pub fn forget_type ( self ) -> NodeRef < BorrowType , K , V , marker:: LeafOrInternal > {
1467- NodeRef { height : self . height , node : self . node , _marker : PhantomData }
1468- }
1469- }
1470-
1471- impl < BorrowType , K , V > NodeRef < BorrowType , K , V , marker:: Internal > {
1472- /// Removes any static information asserting that this node is an `Internal` node.
1464+ impl < BorrowType , K , V , Type > NodeRef < BorrowType , K , V , Type > {
1465+ /// Removes any static information asserting that this node is a `Leaf` or `Internal` node.
14731466 pub fn forget_type ( self ) -> NodeRef < BorrowType , K , V , marker:: LeafOrInternal > {
14741467 NodeRef { height : self . height , node : self . node , _marker : PhantomData }
14751468 }
14761469}
14771470
1478- impl < BorrowType , K , V > Handle < NodeRef < BorrowType , K , V , marker:: Leaf > , marker:: Edge > {
1479- pub fn forget_node_type (
1480- self ,
1481- ) -> Handle < NodeRef < BorrowType , K , V , marker:: LeafOrInternal > , marker:: Edge > {
1482- unsafe { Handle :: new_edge ( self . node . forget_type ( ) , self . idx ) }
1483- }
1484- }
1485-
1486- impl < BorrowType , K , V > Handle < NodeRef < BorrowType , K , V , marker:: Internal > , marker:: Edge > {
1471+ impl < BorrowType , K , V , NodeType > Handle < NodeRef < BorrowType , K , V , NodeType > , marker:: Edge > {
14871472 pub fn forget_node_type (
14881473 self ,
14891474 ) -> Handle < NodeRef < BorrowType , K , V , marker:: LeafOrInternal > , marker:: Edge > {
14901475 unsafe { Handle :: new_edge ( self . node . forget_type ( ) , self . idx ) }
14911476 }
14921477}
14931478
1494- impl < BorrowType , K , V > Handle < NodeRef < BorrowType , K , V , marker:: Leaf > , marker:: KV > {
1495- pub fn forget_node_type (
1496- self ,
1497- ) -> Handle < NodeRef < BorrowType , K , V , marker:: LeafOrInternal > , marker:: KV > {
1498- unsafe { Handle :: new_kv ( self . node . forget_type ( ) , self . idx ) }
1499- }
1500- }
1501-
1502- impl < BorrowType , K , V > Handle < NodeRef < BorrowType , K , V , marker:: Internal > , marker:: KV > {
1479+ impl < BorrowType , K , V , NodeType > Handle < NodeRef < BorrowType , K , V , NodeType > , marker:: KV > {
15031480 pub fn forget_node_type (
15041481 self ,
15051482 ) -> Handle < NodeRef < BorrowType , K , V , marker:: LeafOrInternal > , marker:: KV > {
0 commit comments