Commit 4961f6c 1 parent a457d67 commit 4961f6c Copy full SHA for 4961f6c
File tree 2 files changed +33
-0
lines changed
2 files changed +33
-0
lines changed Original file line number Diff line number Diff line change 42
42
#![ feature( fused) ]
43
43
#![ feature( generic_param_attrs) ]
44
44
#![ feature( heap_api) ]
45
+ #![ feature( i128_type) ]
45
46
#![ feature( inclusive_range) ]
46
47
#![ feature( lang_items) ]
47
48
#![ feature( nonzero) ]
Original file line number Diff line number Diff line change @@ -1399,6 +1399,38 @@ impl SpecFromElem for u8 {
1399
1399
}
1400
1400
}
1401
1401
1402
+ macro_rules! impl_spec_from_elem_int {
1403
+ ( $t: ty) => {
1404
+ impl SpecFromElem for $t {
1405
+ #[ inline]
1406
+ fn from_elem( elem: $t, n: usize ) -> Vec <$t> {
1407
+ if elem == 0 {
1408
+ return Vec {
1409
+ buf: RawVec :: with_capacity_zeroed( n) ,
1410
+ len: n,
1411
+ }
1412
+ }
1413
+ let mut v = Vec :: with_capacity( n) ;
1414
+ v. extend_with_element( n, elem) ;
1415
+ v
1416
+ }
1417
+ }
1418
+ }
1419
+ }
1420
+
1421
+ impl_spec_from_elem_int ! ( i8 ) ;
1422
+ impl_spec_from_elem_int ! ( i16 ) ;
1423
+ impl_spec_from_elem_int ! ( i32 ) ;
1424
+ impl_spec_from_elem_int ! ( i64 ) ;
1425
+ impl_spec_from_elem_int ! ( i128 ) ;
1426
+ impl_spec_from_elem_int ! ( isize ) ;
1427
+
1428
+ impl_spec_from_elem_int ! ( u16 ) ;
1429
+ impl_spec_from_elem_int ! ( u32 ) ;
1430
+ impl_spec_from_elem_int ! ( u64 ) ;
1431
+ impl_spec_from_elem_int ! ( u128 ) ;
1432
+ impl_spec_from_elem_int ! ( usize ) ;
1433
+
1402
1434
////////////////////////////////////////////////////////////////////////////////
1403
1435
// Common trait implementations for Vec
1404
1436
////////////////////////////////////////////////////////////////////////////////
You can’t perform that action at this time.
0 commit comments