Vendor dependencies for 0.3.0 release

This commit is contained in:
2025-09-27 10:29:08 -05:00
parent 0c8d39d483
commit 82ab7f317b
26803 changed files with 16134934 additions and 0 deletions

46
vendor/serde_json/src/lexical/shift.rs vendored Normal file
View File

@@ -0,0 +1,46 @@
// Adapted from https://github.com/Alexhuszagh/rust-lexical.
//! Bit-shift helpers.
use super::float::ExtendedFloat;
use core::mem;
// Shift extended-precision float right `shift` bytes.
#[inline]
pub(crate) fn shr(fp: &mut ExtendedFloat, shift: i32) {
let bits: u64 = mem::size_of::<u64>() as u64 * 8;
debug_assert!((shift as u64) < bits, "shr() overflow in shift right.");
fp.mant >>= shift;
fp.exp += shift;
}
// Shift extended-precision float right `shift` bytes.
//
// Accepts when the shift is the same as the type size, and
// sets the value to 0.
#[inline]
pub(crate) fn overflowing_shr(fp: &mut ExtendedFloat, shift: i32) {
let bits: u64 = mem::size_of::<u64>() as u64 * 8;
debug_assert!(
(shift as u64) <= bits,
"overflowing_shr() overflow in shift right."
);
fp.mant = if shift as u64 == bits {
0
} else {
fp.mant >> shift
};
fp.exp += shift;
}
// Shift extended-precision float left `shift` bytes.
#[inline]
pub(crate) fn shl(fp: &mut ExtendedFloat, shift: i32) {
let bits: u64 = mem::size_of::<u64>() as u64 * 8;
debug_assert!((shift as u64) < bits, "shl() overflow in shift left.");
fp.mant <<= shift;
fp.exp -= shift;
}