Commit ae630ca 1 parent 27fcdb8 commit ae630ca Copy full SHA for ae630ca
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 @@ -1403,6 +1403,38 @@ impl SpecFromElem for u8 {
1403
1403
}
1404
1404
}
1405
1405
1406
+ macro_rules! impl_spec_from_elem_int {
1407
+ ( $t: ty) => {
1408
+ impl SpecFromElem for $t {
1409
+ #[ inline]
1410
+ fn from_elem( elem: $t, n: usize ) -> Vec <$t> {
1411
+ if elem == 0 {
1412
+ return Vec {
1413
+ buf: RawVec :: with_capacity_zeroed( n) ,
1414
+ len: n,
1415
+ }
1416
+ }
1417
+ let mut v = Vec :: with_capacity( n) ;
1418
+ v. extend_with_element( n, elem) ;
1419
+ v
1420
+ }
1421
+ }
1422
+ }
1423
+ }
1424
+
1425
+ impl_spec_from_elem_int ! ( i8 ) ;
1426
+ impl_spec_from_elem_int ! ( i16 ) ;
1427
+ impl_spec_from_elem_int ! ( i32 ) ;
1428
+ impl_spec_from_elem_int ! ( i64 ) ;
1429
+ impl_spec_from_elem_int ! ( i128 ) ;
1430
+ impl_spec_from_elem_int ! ( isize ) ;
1431
+
1432
+ impl_spec_from_elem_int ! ( u16 ) ;
1433
+ impl_spec_from_elem_int ! ( u32 ) ;
1434
+ impl_spec_from_elem_int ! ( u64 ) ;
1435
+ impl_spec_from_elem_int ! ( u128 ) ;
1436
+ impl_spec_from_elem_int ! ( usize ) ;
1437
+
1406
1438
////////////////////////////////////////////////////////////////////////////////
1407
1439
// Common trait implementations for Vec
1408
1440
////////////////////////////////////////////////////////////////////////////////
You can’t perform that action at this time.
0 commit comments