@@ -9,6 +9,11 @@ mod layoutfmt;
9
9
pub struct Layout ( u32 ) ;
10
10
11
11
impl Layout {
12
+ pub ( crate ) const CORDER : u32 = 0b01 ;
13
+ pub ( crate ) const FORDER : u32 = 0b10 ;
14
+ pub ( crate ) const CPREFER : u32 = 0b0100 ;
15
+ pub ( crate ) const FPREFER : u32 = 0b1000 ;
16
+
12
17
#[ inline( always) ]
13
18
pub ( crate ) fn is ( self , flag : u32 ) -> bool {
14
19
self . 0 & flag != 0
@@ -33,22 +38,22 @@ impl Layout {
33
38
34
39
#[ inline( always) ]
35
40
pub ( crate ) fn c ( ) -> Layout {
36
- Layout ( CORDER | CPREFER )
41
+ Layout ( Layout :: CORDER | Layout :: CPREFER )
37
42
}
38
43
39
44
#[ inline( always) ]
40
45
pub ( crate ) fn f ( ) -> Layout {
41
- Layout ( FORDER | FPREFER )
46
+ Layout ( Layout :: FORDER | Layout :: FPREFER )
42
47
}
43
48
44
49
#[ inline( always) ]
45
50
pub ( crate ) fn cpref ( ) -> Layout {
46
- Layout ( CPREFER )
51
+ Layout ( Layout :: CPREFER )
47
52
}
48
53
49
54
#[ inline( always) ]
50
55
pub ( crate ) fn fpref ( ) -> Layout {
51
- Layout ( FPREFER )
56
+ Layout ( Layout :: FPREFER )
52
57
}
53
58
54
59
#[ inline( always) ]
@@ -60,17 +65,12 @@ impl Layout {
60
65
/// Subject to change when we can describe other layouts
61
66
#[ inline]
62
67
pub ( crate ) fn tendency ( self ) -> i32 {
63
- ( self . is ( CORDER ) as i32 - self . is ( FORDER ) as i32 ) +
64
- ( self . is ( CPREFER ) as i32 - self . is ( FPREFER ) as i32 )
68
+ ( self . is ( Layout :: CORDER ) as i32 - self . is ( Layout :: FORDER ) as i32 ) +
69
+ ( self . is ( Layout :: CPREFER ) as i32 - self . is ( Layout :: FPREFER ) as i32 )
65
70
66
71
}
67
72
}
68
73
69
- pub const CORDER : u32 = 0b01 ;
70
- pub const FORDER : u32 = 0b10 ;
71
- pub const CPREFER : u32 = 0b0100 ;
72
- pub const FPREFER : u32 = 0b1000 ;
73
-
74
74
75
75
#[ cfg( test) ]
76
76
mod tests {
@@ -83,21 +83,23 @@ mod tests {
83
83
type M0 = Array0 < f32 > ;
84
84
85
85
macro_rules! assert_layouts {
86
- ( $mat: expr, $( $layout: expr ) ,* ) => { {
86
+ ( $mat: expr, $( $layout: ident ) ,* ) => { {
87
87
let layout = $mat. view( ) . layout( ) ;
88
88
$(
89
- assert!( layout. is( $layout) , "Assertion failed: array {:?} is not layout {}" ,
89
+ assert!( layout. is( Layout :: $layout) ,
90
+ "Assertion failed: array {:?} is not layout {}" ,
90
91
$mat,
91
92
stringify!( $layout) ) ;
92
93
) *
93
94
} }
94
95
}
95
96
96
97
macro_rules! assert_not_layouts {
97
- ( $mat: expr, $( $layout: expr ) ,* ) => { {
98
+ ( $mat: expr, $( $layout: ident ) ,* ) => { {
98
99
let layout = $mat. view( ) . layout( ) ;
99
100
$(
100
- assert!( !layout. is( $layout) , "Assertion failed: array {:?} show not have layout {}" ,
101
+ assert!( !layout. is( Layout :: $layout) ,
102
+ "Assertion failed: array {:?} show not have layout {}" ,
101
103
$mat,
102
104
stringify!( $layout) ) ;
103
105
) *
@@ -110,10 +112,10 @@ mod tests {
110
112
let b = M :: zeros ( ( 5 , 5 ) . f ( ) ) ;
111
113
let ac = a. view ( ) . layout ( ) ;
112
114
let af = b. view ( ) . layout ( ) ;
113
- assert ! ( ac. is( CORDER ) && ac. is( CPREFER ) ) ;
114
- assert ! ( !ac. is( FORDER ) && !ac. is( FPREFER ) ) ;
115
- assert ! ( !af. is( CORDER ) && !af. is( CPREFER ) ) ;
116
- assert ! ( af. is( FORDER ) && af. is( FPREFER ) ) ;
115
+ assert ! ( ac. is( Layout :: CORDER ) && ac. is( Layout :: CPREFER ) ) ;
116
+ assert ! ( !ac. is( Layout :: FORDER ) && !ac. is( Layout :: FPREFER ) ) ;
117
+ assert ! ( !af. is( Layout :: CORDER ) && !af. is( Layout :: CPREFER ) ) ;
118
+ assert ! ( af. is( Layout :: FORDER ) && af. is( Layout :: FPREFER ) ) ;
117
119
}
118
120
119
121
#[ test]
@@ -152,10 +154,10 @@ mod tests {
152
154
let v1 = a. slice ( s ! [ 1 .., ..] ) . layout ( ) ;
153
155
let v2 = a. slice ( s ! [ .., 1 ..] ) . layout ( ) ;
154
156
155
- assert ! ( v1. is( CORDER ) && v1. is( CPREFER ) ) ;
156
- assert ! ( !v1. is( FORDER ) && !v1. is( FPREFER ) ) ;
157
- assert ! ( !v2. is( CORDER ) && v2. is( CPREFER ) ) ;
158
- assert ! ( !v2. is( FORDER ) && !v2. is( FPREFER ) ) ;
157
+ assert ! ( v1. is( Layout :: CORDER ) && v1. is( Layout :: CPREFER ) ) ;
158
+ assert ! ( !v1. is( Layout :: FORDER ) && !v1. is( Layout :: FPREFER ) ) ;
159
+ assert ! ( !v2. is( Layout :: CORDER ) && v2. is( Layout :: CPREFER ) ) ;
160
+ assert ! ( !v2. is( Layout :: FORDER ) && !v2. is( Layout :: FPREFER ) ) ;
159
161
}
160
162
161
163
let b = M :: zeros ( ( 5 , 5 ) . f ( ) ) ;
@@ -164,10 +166,10 @@ mod tests {
164
166
let v1 = b. slice ( s ! [ 1 .., ..] ) . layout ( ) ;
165
167
let v2 = b. slice ( s ! [ .., 1 ..] ) . layout ( ) ;
166
168
167
- assert ! ( !v1. is( CORDER ) && !v1. is( CPREFER ) ) ;
168
- assert ! ( !v1. is( FORDER ) && v1. is( FPREFER ) ) ;
169
- assert ! ( !v2. is( CORDER ) && !v2. is( CPREFER ) ) ;
170
- assert ! ( v2. is( FORDER ) && v2. is( FPREFER ) ) ;
169
+ assert ! ( !v1. is( Layout :: CORDER ) && !v1. is( Layout :: CPREFER ) ) ;
170
+ assert ! ( !v1. is( Layout :: FORDER ) && v1. is( Layout :: FPREFER ) ) ;
171
+ assert ! ( !v2. is( Layout :: CORDER ) && !v2. is( Layout :: CPREFER ) ) ;
172
+ assert ! ( v2. is( Layout :: FORDER ) && v2. is( Layout :: FPREFER ) ) ;
171
173
}
172
174
}
173
175
@@ -206,21 +208,21 @@ mod tests {
206
208
let v1 = a. slice ( s ! [ ..; 2 , ..] ) . layout ( ) ;
207
209
let v2 = a. slice ( s ! [ .., ..; 2 ] ) . layout ( ) ;
208
210
209
- assert ! ( !v1. is( CORDER ) && v1. is( CPREFER ) ) ;
210
- assert ! ( !v1. is( FORDER ) && !v1. is( FPREFER ) ) ;
211
- assert ! ( !v2. is( CORDER ) && !v2. is( CPREFER ) ) ;
212
- assert ! ( !v2. is( FORDER ) && !v2. is( FPREFER ) ) ;
211
+ assert ! ( !v1. is( Layout :: CORDER ) && v1. is( Layout :: CPREFER ) ) ;
212
+ assert ! ( !v1. is( Layout :: FORDER ) && !v1. is( Layout :: FPREFER ) ) ;
213
+ assert ! ( !v2. is( Layout :: CORDER ) && !v2. is( Layout :: CPREFER ) ) ;
214
+ assert ! ( !v2. is( Layout :: FORDER ) && !v2. is( Layout :: FPREFER ) ) ;
213
215
}
214
216
215
217
let b = M :: zeros ( ( 5 , 5 ) . f ( ) ) ;
216
218
{
217
219
let v1 = b. slice ( s ! [ ..; 2 , ..] ) . layout ( ) ;
218
220
let v2 = b. slice ( s ! [ .., ..; 2 ] ) . layout ( ) ;
219
221
220
- assert ! ( !v1. is( CORDER ) && !v1. is( CPREFER ) ) ;
221
- assert ! ( !v1. is( FORDER ) && !v1. is( FPREFER ) ) ;
222
- assert ! ( !v2. is( CORDER ) && !v2. is( CPREFER ) ) ;
223
- assert ! ( !v2. is( FORDER ) && v2. is( FPREFER ) ) ;
222
+ assert ! ( !v1. is( Layout :: CORDER ) && !v1. is( Layout :: CPREFER ) ) ;
223
+ assert ! ( !v1. is( Layout :: FORDER ) && !v1. is( Layout :: FPREFER ) ) ;
224
+ assert ! ( !v2. is( Layout :: CORDER ) && !v2. is( Layout :: CPREFER ) ) ;
225
+ assert ! ( !v2. is( Layout :: FORDER ) && v2. is( Layout :: FPREFER ) ) ;
224
226
}
225
227
}
226
228
}
0 commit comments