@@ -6,9 +6,14 @@ mod layoutfmt;
66#[ doc( hidden) ]
77/// Memory layout description
88#[ derive( Copy , Clone ) ]
9- pub struct Layout ( u32 ) ;
9+ pub struct LayoutBitset ( u32 ) ;
1010
11- impl Layout
11+ #[ deprecated( since = "0.18.0" , note = "Layout has been renamed to LayoutBitset" ) ]
12+ #[ allow( dead_code) ]
13+ /// Memory layout description, deprecated. See [`LayoutBitset`] instead.
14+ pub type Layout = LayoutBitset ;
15+
16+ impl LayoutBitset
1217{
1318 pub ( crate ) const CORDER : u32 = 0b01 ;
1419 pub ( crate ) const FORDER : u32 = 0b10 ;
@@ -23,61 +28,61 @@ impl Layout
2328
2429 /// Return layout common to both inputs
2530 #[ inline( always) ]
26- pub ( crate ) fn intersect ( self , other : Layout ) -> Layout
31+ pub ( crate ) fn intersect ( self , other : LayoutBitset ) -> LayoutBitset
2732 {
28- Layout ( self . 0 & other. 0 )
33+ LayoutBitset ( self . 0 & other. 0 )
2934 }
3035
3136 /// Return a layout that simultaneously "is" what both of the inputs are
3237 #[ inline( always) ]
33- pub ( crate ) fn also ( self , other : Layout ) -> Layout
38+ pub ( crate ) fn also ( self , other : LayoutBitset ) -> LayoutBitset
3439 {
35- Layout ( self . 0 | other. 0 )
40+ LayoutBitset ( self . 0 | other. 0 )
3641 }
3742
3843 #[ inline( always) ]
39- pub ( crate ) fn one_dimensional ( ) -> Layout
44+ pub ( crate ) fn one_dimensional ( ) -> LayoutBitset
4045 {
41- Layout :: c ( ) . also ( Layout :: f ( ) )
46+ LayoutBitset :: c ( ) . also ( LayoutBitset :: f ( ) )
4247 }
4348
4449 #[ inline( always) ]
45- pub ( crate ) fn c ( ) -> Layout
50+ pub ( crate ) fn c ( ) -> LayoutBitset
4651 {
47- Layout ( Layout :: CORDER | Layout :: CPREFER )
52+ LayoutBitset ( LayoutBitset :: CORDER | LayoutBitset :: CPREFER )
4853 }
4954
5055 #[ inline( always) ]
51- pub ( crate ) fn f ( ) -> Layout
56+ pub ( crate ) fn f ( ) -> LayoutBitset
5257 {
53- Layout ( Layout :: FORDER | Layout :: FPREFER )
58+ LayoutBitset ( LayoutBitset :: FORDER | LayoutBitset :: FPREFER )
5459 }
5560
5661 #[ inline( always) ]
57- pub ( crate ) fn cpref ( ) -> Layout
62+ pub ( crate ) fn cpref ( ) -> LayoutBitset
5863 {
59- Layout ( Layout :: CPREFER )
64+ LayoutBitset ( LayoutBitset :: CPREFER )
6065 }
6166
6267 #[ inline( always) ]
63- pub ( crate ) fn fpref ( ) -> Layout
68+ pub ( crate ) fn fpref ( ) -> LayoutBitset
6469 {
65- Layout ( Layout :: FPREFER )
70+ LayoutBitset ( LayoutBitset :: FPREFER )
6671 }
6772
6873 #[ inline( always) ]
69- pub ( crate ) fn none ( ) -> Layout
74+ pub ( crate ) fn none ( ) -> LayoutBitset
7075 {
71- Layout ( 0 )
76+ LayoutBitset ( 0 )
7277 }
7378
7479 /// A simple "score" method which scores positive for preferring C-order, negative for F-order
7580 /// Subject to change when we can describe other layouts
7681 #[ inline]
7782 pub ( crate ) fn tendency ( self ) -> i32
7883 {
79- ( self . is ( Layout :: CORDER ) as i32 - self . is ( Layout :: FORDER ) as i32 )
80- + ( self . is ( Layout :: CPREFER ) as i32 - self . is ( Layout :: FPREFER ) as i32 )
84+ ( self . is ( LayoutBitset :: CORDER ) as i32 - self . is ( LayoutBitset :: FORDER ) as i32 )
85+ + ( self . is ( LayoutBitset :: CPREFER ) as i32 - self . is ( LayoutBitset :: FPREFER ) as i32 )
8186 }
8287}
8388
@@ -96,7 +101,7 @@ mod tests
96101 ( $mat: expr, $( $layout: ident) ,* ) => { {
97102 let layout = $mat. view( ) . layout( ) ;
98103 $(
99- assert!( layout. is( Layout :: $layout) ,
104+ assert!( layout. is( LayoutBitset :: $layout) ,
100105 "Assertion failed: array {:?} is not layout {}" ,
101106 $mat,
102107 stringify!( $layout) ) ;
@@ -108,7 +113,7 @@ mod tests
108113 ( $mat: expr, $( $layout: ident) ,* ) => { {
109114 let layout = $mat. view( ) . layout( ) ;
110115 $(
111- assert!( !layout. is( Layout :: $layout) ,
116+ assert!( !layout. is( LayoutBitset :: $layout) ,
112117 "Assertion failed: array {:?} show not have layout {}" ,
113118 $mat,
114119 stringify!( $layout) ) ;
@@ -123,10 +128,10 @@ mod tests
123128 let b = M :: zeros ( ( 5 , 5 ) . f ( ) ) ;
124129 let ac = a. view ( ) . layout ( ) ;
125130 let af = b. view ( ) . layout ( ) ;
126- assert ! ( ac. is( Layout :: CORDER ) && ac. is( Layout :: CPREFER ) ) ;
127- assert ! ( !ac. is( Layout :: FORDER ) && !ac. is( Layout :: FPREFER ) ) ;
128- assert ! ( !af. is( Layout :: CORDER ) && !af. is( Layout :: CPREFER ) ) ;
129- assert ! ( af. is( Layout :: FORDER ) && af. is( Layout :: FPREFER ) ) ;
131+ assert ! ( ac. is( LayoutBitset :: CORDER ) && ac. is( LayoutBitset :: CPREFER ) ) ;
132+ assert ! ( !ac. is( LayoutBitset :: FORDER ) && !ac. is( LayoutBitset :: FPREFER ) ) ;
133+ assert ! ( !af. is( LayoutBitset :: CORDER ) && !af. is( LayoutBitset :: CPREFER ) ) ;
134+ assert ! ( af. is( LayoutBitset :: FORDER ) && af. is( LayoutBitset :: FPREFER ) ) ;
130135 }
131136
132137 #[ test]
@@ -167,10 +172,10 @@ mod tests
167172 let v1 = a. slice ( s ! [ 1 .., ..] ) . layout ( ) ;
168173 let v2 = a. slice ( s ! [ .., 1 ..] ) . layout ( ) ;
169174
170- assert ! ( v1. is( Layout :: CORDER ) && v1. is( Layout :: CPREFER ) ) ;
171- assert ! ( !v1. is( Layout :: FORDER ) && !v1. is( Layout :: FPREFER ) ) ;
172- assert ! ( !v2. is( Layout :: CORDER ) && v2. is( Layout :: CPREFER ) ) ;
173- assert ! ( !v2. is( Layout :: FORDER ) && !v2. is( Layout :: FPREFER ) ) ;
175+ assert ! ( v1. is( LayoutBitset :: CORDER ) && v1. is( LayoutBitset :: CPREFER ) ) ;
176+ assert ! ( !v1. is( LayoutBitset :: FORDER ) && !v1. is( LayoutBitset :: FPREFER ) ) ;
177+ assert ! ( !v2. is( LayoutBitset :: CORDER ) && v2. is( LayoutBitset :: CPREFER ) ) ;
178+ assert ! ( !v2. is( LayoutBitset :: FORDER ) && !v2. is( LayoutBitset :: FPREFER ) ) ;
174179 }
175180
176181 let b = M :: zeros ( ( 5 , 5 ) . f ( ) ) ;
@@ -179,10 +184,10 @@ mod tests
179184 let v1 = b. slice ( s ! [ 1 .., ..] ) . layout ( ) ;
180185 let v2 = b. slice ( s ! [ .., 1 ..] ) . layout ( ) ;
181186
182- assert ! ( !v1. is( Layout :: CORDER ) && !v1. is( Layout :: CPREFER ) ) ;
183- assert ! ( !v1. is( Layout :: FORDER ) && v1. is( Layout :: FPREFER ) ) ;
184- assert ! ( !v2. is( Layout :: CORDER ) && !v2. is( Layout :: CPREFER ) ) ;
185- assert ! ( v2. is( Layout :: FORDER ) && v2. is( Layout :: FPREFER ) ) ;
187+ assert ! ( !v1. is( LayoutBitset :: CORDER ) && !v1. is( LayoutBitset :: CPREFER ) ) ;
188+ assert ! ( !v1. is( LayoutBitset :: FORDER ) && v1. is( LayoutBitset :: FPREFER ) ) ;
189+ assert ! ( !v2. is( LayoutBitset :: CORDER ) && !v2. is( LayoutBitset :: CPREFER ) ) ;
190+ assert ! ( v2. is( LayoutBitset :: FORDER ) && v2. is( LayoutBitset :: FPREFER ) ) ;
186191 }
187192 }
188193
@@ -223,21 +228,21 @@ mod tests
223228 let v1 = a. slice ( s ! [ ..; 2 , ..] ) . layout ( ) ;
224229 let v2 = a. slice ( s ! [ .., ..; 2 ] ) . layout ( ) ;
225230
226- assert ! ( !v1. is( Layout :: CORDER ) && v1. is( Layout :: CPREFER ) ) ;
227- assert ! ( !v1. is( Layout :: FORDER ) && !v1. is( Layout :: FPREFER ) ) ;
228- assert ! ( !v2. is( Layout :: CORDER ) && !v2. is( Layout :: CPREFER ) ) ;
229- assert ! ( !v2. is( Layout :: FORDER ) && !v2. is( Layout :: FPREFER ) ) ;
231+ assert ! ( !v1. is( LayoutBitset :: CORDER ) && v1. is( LayoutBitset :: CPREFER ) ) ;
232+ assert ! ( !v1. is( LayoutBitset :: FORDER ) && !v1. is( LayoutBitset :: FPREFER ) ) ;
233+ assert ! ( !v2. is( LayoutBitset :: CORDER ) && !v2. is( LayoutBitset :: CPREFER ) ) ;
234+ assert ! ( !v2. is( LayoutBitset :: FORDER ) && !v2. is( LayoutBitset :: FPREFER ) ) ;
230235 }
231236
232237 let b = M :: zeros ( ( 5 , 5 ) . f ( ) ) ;
233238 {
234239 let v1 = b. slice ( s ! [ ..; 2 , ..] ) . layout ( ) ;
235240 let v2 = b. slice ( s ! [ .., ..; 2 ] ) . layout ( ) ;
236241
237- assert ! ( !v1. is( Layout :: CORDER ) && !v1. is( Layout :: CPREFER ) ) ;
238- assert ! ( !v1. is( Layout :: FORDER ) && !v1. is( Layout :: FPREFER ) ) ;
239- assert ! ( !v2. is( Layout :: CORDER ) && !v2. is( Layout :: CPREFER ) ) ;
240- assert ! ( !v2. is( Layout :: FORDER ) && v2. is( Layout :: FPREFER ) ) ;
242+ assert ! ( !v1. is( LayoutBitset :: CORDER ) && !v1. is( LayoutBitset :: CPREFER ) ) ;
243+ assert ! ( !v1. is( LayoutBitset :: FORDER ) && !v1. is( LayoutBitset :: FPREFER ) ) ;
244+ assert ! ( !v2. is( LayoutBitset :: CORDER ) && !v2. is( LayoutBitset :: CPREFER ) ) ;
245+ assert ! ( !v2. is( LayoutBitset :: FORDER ) && v2. is( LayoutBitset :: FPREFER ) ) ;
241246 }
242247 }
243248}
0 commit comments