@@ -384,7 +384,7 @@ use core::{
384384#[ cfg( feature = "std" ) ]  
385385use  std:: io; 
386386
387- use  crate :: pointer:: invariant :: { self ,   BecauseExclusive } ; 
387+ use  crate :: pointer:: { invariant ,   BecauseBidirectional } ; 
388388
389389#[ cfg( any( feature = "alloc" ,  test,  kani) ) ]  
390390extern  crate  alloc; 
@@ -1843,7 +1843,7 @@ pub unsafe trait TryFromBytes {
18431843        Self :  KnownLayout  + IntoBytes , 
18441844    { 
18451845        static_assert_dst_is_not_zst ! ( Self ) ; 
1846-         match  Ptr :: from_mut ( bytes) . try_cast_into_no_leftover :: < Self ,   BecauseExclusive > ( None )  { 
1846+         match  Ptr :: from_mut ( bytes) . try_cast_into_no_leftover ( None )  { 
18471847            Ok ( source)  => { 
18481848                // This call may panic. If that happens, it doesn't cause any soundness 
18491849                // issues, as we have not generated any invalid state which we need to 
@@ -1855,9 +1855,7 @@ pub unsafe trait TryFromBytes {
18551855                // condition will not happen. 
18561856                match  source. try_into_valid ( )  { 
18571857                    Ok ( source)  => Ok ( source. as_mut ( ) ) , 
1858-                     Err ( e)  => { 
1859-                         Err ( e. map_src ( |src| src. as_bytes :: < BecauseExclusive > ( ) . as_mut ( ) ) . into ( ) ) 
1860-                     } 
1858+                     Err ( e)  => Err ( e. map_src ( |src| src. as_bytes ( ) . as_mut ( ) ) . into ( ) ) , 
18611859                } 
18621860            } 
18631861            Err ( e)  => Err ( e. map_src ( Ptr :: as_mut) . into ( ) ) , 
@@ -2424,8 +2422,7 @@ pub unsafe trait TryFromBytes {
24242422    where 
24252423        Self :  KnownLayout < PointerMetadata  = usize >  + IntoBytes , 
24262424    { 
2427-         match  Ptr :: from_mut ( source) . try_cast_into_no_leftover :: < Self ,  BecauseExclusive > ( Some ( count) ) 
2428-         { 
2425+         match  Ptr :: from_mut ( source) . try_cast_into_no_leftover ( Some ( count) )  { 
24292426            Ok ( source)  => { 
24302427                // This call may panic. If that happens, it doesn't cause any soundness 
24312428                // issues, as we have not generated any invalid state which we need to 
@@ -2437,9 +2434,7 @@ pub unsafe trait TryFromBytes {
24372434                // condition will not happen. 
24382435                match  source. try_into_valid ( )  { 
24392436                    Ok ( source)  => Ok ( source. as_mut ( ) ) , 
2440-                     Err ( e)  => { 
2441-                         Err ( e. map_src ( |src| src. as_bytes :: < BecauseExclusive > ( ) . as_mut ( ) ) . into ( ) ) 
2442-                     } 
2437+                     Err ( e)  => Err ( e. map_src ( |src| src. as_bytes ( ) . as_mut ( ) ) . into ( ) ) , 
24432438                } 
24442439            } 
24452440            Err ( e)  => Err ( e. map_src ( Ptr :: as_mut) . into ( ) ) , 
@@ -2847,7 +2842,7 @@ fn try_mut_from_prefix_suffix<T: IntoBytes + TryFromBytes + KnownLayout + ?Sized
28472842    cast_type :  CastType , 
28482843    meta :  Option < T :: PointerMetadata > , 
28492844)  -> Result < ( & mut  T ,  & mut  [ u8 ] ) ,  TryCastError < & mut  [ u8 ] ,  T > >  { 
2850-     match  Ptr :: from_mut ( candidate) . try_cast_into :: < T ,   BecauseExclusive > ( cast_type,  meta)  { 
2845+     match  Ptr :: from_mut ( candidate) . try_cast_into ( cast_type,  meta)  { 
28512846        Ok ( ( candidate,  prefix_suffix) )  => { 
28522847            // This call may panic. If that happens, it doesn't cause any soundness 
28532848            // issues, as we have not generated any invalid state which we need to 
@@ -2859,7 +2854,7 @@ fn try_mut_from_prefix_suffix<T: IntoBytes + TryFromBytes + KnownLayout + ?Sized
28592854            // condition will not happen. 
28602855            match  candidate. try_into_valid ( )  { 
28612856                Ok ( valid)  => Ok ( ( valid. as_mut ( ) ,  prefix_suffix. as_mut ( ) ) ) , 
2862-                 Err ( e)  => Err ( e. map_src ( |src| src. as_bytes :: < BecauseExclusive > ( ) . as_mut ( ) ) . into ( ) ) , 
2857+                 Err ( e)  => Err ( e. map_src ( |src| src. as_bytes ( ) . as_mut ( ) ) . into ( ) ) , 
28632858            } 
28642859        } 
28652860        Err ( e)  => Err ( e. map_src ( Ptr :: as_mut) . into ( ) ) , 
@@ -3838,8 +3833,8 @@ pub unsafe trait FromBytes: FromZeros {
38383833        Self :  IntoBytes  + KnownLayout , 
38393834    { 
38403835        static_assert_dst_is_not_zst ! ( Self ) ; 
3841-         match  Ptr :: from_mut ( source) . try_cast_into_no_leftover :: < _ ,   BecauseExclusive > ( None )  { 
3842-             Ok ( ptr)  => Ok ( ptr. recall_validity :: < _ ,  ( _ ,   ( _ ,   _ ) ) > ( ) . as_mut ( ) ) , 
3836+         match  Ptr :: from_mut ( source) . try_cast_into_no_leftover ( None )  { 
3837+             Ok ( ptr)  => Ok ( ptr. recall_validity :: < _ ,  BecauseBidirectional > ( ) . as_mut ( ) ) , 
38433838            Err ( err)  => Err ( err. map_src ( |src| src. as_mut ( ) ) ) , 
38443839        } 
38453840    } 
@@ -4307,11 +4302,9 @@ pub unsafe trait FromBytes: FromZeros {
43074302        Self :  IntoBytes  + KnownLayout < PointerMetadata  = usize >  + Immutable , 
43084303    { 
43094304        let  source = Ptr :: from_mut ( source) ; 
4310-         let  maybe_slf = source. try_cast_into_no_leftover :: < _ ,   BecauseImmutable > ( Some ( count) ) ; 
4305+         let  maybe_slf = source. try_cast_into_no_leftover ( Some ( count) ) ; 
43114306        match  maybe_slf { 
4312-             Ok ( slf)  => Ok ( slf
4313-                 . recall_validity :: < _ ,  ( _ ,  ( _ ,  ( BecauseExclusive ,  BecauseExclusive ) ) ) > ( ) 
4314-                 . as_mut ( ) ) , 
4307+             Ok ( slf)  => Ok ( slf. recall_validity :: < _ ,  BecauseBidirectional > ( ) . as_mut ( ) ) , 
43154308            Err ( err)  => Err ( err. map_src ( |s| s. as_mut ( ) ) ) , 
43164309        } 
43174310    } 
@@ -4668,7 +4661,7 @@ pub unsafe trait FromBytes: FromZeros {
46684661        // cannot be violated even though `buf` may have more permissive bit 
46694662        // validity than `ptr`. 
46704663        let  ptr = unsafe  {  ptr. assume_validity :: < invariant:: Initialized > ( )  } ; 
4671-         let  ptr = ptr. as_bytes :: < BecauseExclusive > ( ) ; 
4664+         let  ptr = ptr. as_bytes ( ) ; 
46724665        src. read_exact ( ptr. as_mut ( ) ) ?; 
46734666        // SAFETY: `buf` entirely consists of initialized bytes, and `Self` is 
46744667        // `FromBytes`. 
@@ -4787,9 +4780,9 @@ fn mut_from_prefix_suffix<T: FromBytes + IntoBytes + KnownLayout + ?Sized>(
47874780    cast_type :  CastType , 
47884781)  -> Result < ( & mut  T ,  & mut  [ u8 ] ) ,  CastError < & mut  [ u8 ] ,  T > >  { 
47894782    let  ( slf,  prefix_suffix)  = Ptr :: from_mut ( source) 
4790-         . try_cast_into :: < _ ,   BecauseExclusive > ( cast_type,  meta) 
4783+         . try_cast_into ( cast_type,  meta) 
47914784        . map_err ( |err| err. map_src ( |s| s. as_mut ( ) ) ) ?; 
4792-     Ok ( ( slf. recall_validity :: < _ ,  ( _ ,   ( _ ,   _ ) ) > ( ) . as_mut ( ) ,  prefix_suffix. as_mut ( ) ) ) 
4785+     Ok ( ( slf. recall_validity :: < _ ,  BecauseBidirectional > ( ) . as_mut ( ) ,  prefix_suffix. as_mut ( ) ) ) 
47934786} 
47944787
47954788/// Analyzes whether a type is [`IntoBytes`]. 
0 commit comments