Commit 38f707b 1 parent ba68eff commit 38f707b Copy full SHA for 38f707b
File tree 1 file changed +14
-9
lines changed
1 file changed +14
-9
lines changed Original file line number Diff line number Diff line change @@ -213,30 +213,32 @@ impl UserBoundsTrait<i32> for UserBounds {
213
213
/// );
214
214
/// ```
215
215
fn try_into_range ( & self , parts_length : usize ) -> Result < Range < usize > > {
216
- let start: usize = match self . l {
216
+ let parts_length = parts_length as i32 ;
217
+
218
+ let start: i32 = match self . l {
217
219
Side :: Continue => 0 ,
218
220
Side :: Some ( v) => {
219
- if v. unsigned_abs ( ) as usize > parts_length {
221
+ if v > parts_length || v < - parts_length {
220
222
bail ! ( "Out of bounds: {}" , v) ;
221
223
}
222
224
if v < 0 {
223
- parts_length - v . unsigned_abs ( ) as usize
225
+ parts_length + v
224
226
} else {
225
- v as usize - 1
227
+ v - 1
226
228
}
227
229
}
228
230
} ;
229
231
230
- let end: usize = match self . r {
232
+ let end: i32 = match self . r {
231
233
Side :: Continue => parts_length,
232
234
Side :: Some ( v) => {
233
- if v. unsigned_abs ( ) as usize > parts_length {
235
+ if v > parts_length || v < - parts_length {
234
236
bail ! ( "Out of bounds: {}" , v) ;
235
237
}
236
238
if v < 0 {
237
- parts_length - v . unsigned_abs ( ) as usize + 1
239
+ parts_length + v + 1
238
240
} else {
239
- v as usize
241
+ v
240
242
}
241
243
}
242
244
} ;
@@ -246,7 +248,10 @@ impl UserBoundsTrait<i32> for UserBounds {
246
248
bail ! ( "Field left value cannot be greater than right value" ) ;
247
249
}
248
250
249
- Ok ( Range { start, end } )
251
+ Ok ( Range {
252
+ start : start as usize ,
253
+ end : end as usize ,
254
+ } )
250
255
}
251
256
252
257
/// Transform a ranged bound into a list of one or more
You can’t perform that action at this time.
0 commit comments