Vendor things
This commit is contained in:
parent
5deceec006
commit
977e3c17e5
19434 changed files with 10682014 additions and 0 deletions
48
third-party/vendor/ryu/src/pretty/exponent.rs
vendored
Normal file
48
third-party/vendor/ryu/src/pretty/exponent.rs
vendored
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
use crate::digit_table::DIGIT_TABLE;
|
||||
use core::ptr;
|
||||
|
||||
#[cfg_attr(feature = "no-panic", inline)]
|
||||
pub unsafe fn write_exponent3(mut k: isize, mut result: *mut u8) -> usize {
|
||||
let sign = k < 0;
|
||||
if sign {
|
||||
*result = b'-';
|
||||
result = result.offset(1);
|
||||
k = -k;
|
||||
}
|
||||
|
||||
debug_assert!(k < 1000);
|
||||
if k >= 100 {
|
||||
*result = b'0' + (k / 100) as u8;
|
||||
k %= 100;
|
||||
let d = DIGIT_TABLE.as_ptr().offset(k * 2);
|
||||
ptr::copy_nonoverlapping(d, result.offset(1), 2);
|
||||
sign as usize + 3
|
||||
} else if k >= 10 {
|
||||
let d = DIGIT_TABLE.as_ptr().offset(k * 2);
|
||||
ptr::copy_nonoverlapping(d, result, 2);
|
||||
sign as usize + 2
|
||||
} else {
|
||||
*result = b'0' + k as u8;
|
||||
sign as usize + 1
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg_attr(feature = "no-panic", inline)]
|
||||
pub unsafe fn write_exponent2(mut k: isize, mut result: *mut u8) -> usize {
|
||||
let sign = k < 0;
|
||||
if sign {
|
||||
*result = b'-';
|
||||
result = result.offset(1);
|
||||
k = -k;
|
||||
}
|
||||
|
||||
debug_assert!(k < 100);
|
||||
if k >= 10 {
|
||||
let d = DIGIT_TABLE.as_ptr().offset(k * 2);
|
||||
ptr::copy_nonoverlapping(d, result, 2);
|
||||
sign as usize + 2
|
||||
} else {
|
||||
*result = b'0' + k as u8;
|
||||
sign as usize + 1
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue