Fork of https://github.com/dtolnay/itoa
3895493dc3
warning: casting `i8` to `u32` may lose the sign of the value --> src/lib.rs:138:21 | 138 | self as $conv_fn | ^^^^^^^^^^^^^^^^ ... 215 | / impl_Integer!( 216 | | I8_MAX_LEN => i8, 217 | | U8_MAX_LEN => u8, 218 | | I16_MAX_LEN => i16, ... | 221 | | U32_MAX_LEN => u32 222 | | as u32); | |___________- in this macro invocation | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_sign_loss = note: `-W clippy::cast-sign-loss` implied by `-W clippy::pedantic` = help: to override `-W clippy::pedantic` add `#[allow(clippy::cast_sign_loss)]` = note: this warning originates in the macro `impl_Integer` (in Nightly builds, run with -Z macro-backtrace for more info) warning: casting `i8` to `u32` may lose the sign of the value --> src/lib.rs:141:23 | 141 | (!(self as $conv_fn)).wrapping_add(1) | ^^^^^^^^^^^^^^^^^^ ... 215 | / impl_Integer!( 216 | | I8_MAX_LEN => i8, 217 | | U8_MAX_LEN => u8, 218 | | I16_MAX_LEN => i16, ... | 221 | | U32_MAX_LEN => u32 222 | | as u32); | |___________- in this macro invocation | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_sign_loss = note: this warning originates in the macro `impl_Integer` (in Nightly builds, run with -Z macro-backtrace for more info) warning: casting `isize` to `u8` may lose the sign of the value --> src/lib.rs:181:49 | 181 | *buf_ptr.offset(curr) = (n as u8) + b'0'; | ^^^^^^^^^ ... 215 | / impl_Integer!( 216 | | I8_MAX_LEN => i8, 217 | | U8_MAX_LEN => u8, 218 | | I16_MAX_LEN => i16, ... | 221 | | U32_MAX_LEN => u32 222 | | as u32); | |___________- in this macro invocation | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_sign_loss = note: this warning originates in the macro `impl_Integer` (in Nightly builds, run with -Z macro-backtrace for more info) warning: casting `isize` to `usize` may lose the sign of the value --> src/lib.rs:198:39 | 198 | let len = buf.len() - curr as usize; | ^^^^^^^^^^^^^ ... 215 | / impl_Integer!( 216 | | I8_MAX_LEN => i8, 217 | | U8_MAX_LEN => u8, 218 | | I16_MAX_LEN => i16, ... | 221 | | U32_MAX_LEN => u32 222 | | as u32); | |___________- in this macro invocation | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_sign_loss = note: this warning originates in the macro `impl_Integer` (in Nightly builds, run with -Z macro-backtrace for more info) warning: casting `i16` to `u32` may lose the sign of the value --> src/lib.rs:138:21 | 138 | self as $conv_fn | ^^^^^^^^^^^^^^^^ ... 215 | / impl_Integer!( 216 | | I8_MAX_LEN => i8, 217 | | U8_MAX_LEN => u8, 218 | | I16_MAX_LEN => i16, ... | 221 | | U32_MAX_LEN => u32 222 | | as u32); | |___________- in this macro invocation | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_sign_loss = note: this warning originates in the macro `impl_Integer` (in Nightly builds, run with -Z macro-backtrace for more info) warning: casting `i16` to `u32` may lose the sign of the value --> src/lib.rs:141:23 | 141 | (!(self as $conv_fn)).wrapping_add(1) | ^^^^^^^^^^^^^^^^^^ ... 215 | / impl_Integer!( 216 | | I8_MAX_LEN => i8, 217 | | U8_MAX_LEN => u8, 218 | | I16_MAX_LEN => i16, ... | 221 | | U32_MAX_LEN => u32 222 | | as u32); | |___________- in this macro invocation | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_sign_loss = note: this warning originates in the macro `impl_Integer` (in Nightly builds, run with -Z macro-backtrace for more info) warning: casting `i32` to `u32` may lose the sign of the value --> src/lib.rs:138:21 | 138 | self as $conv_fn | ^^^^^^^^^^^^^^^^ ... 215 | / impl_Integer!( 216 | | I8_MAX_LEN => i8, 217 | | U8_MAX_LEN => u8, 218 | | I16_MAX_LEN => i16, ... | 221 | | U32_MAX_LEN => u32 222 | | as u32); | |___________- in this macro invocation | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_sign_loss = note: this warning originates in the macro `impl_Integer` (in Nightly builds, run with -Z macro-backtrace for more info) warning: casting `i32` to `u32` may lose the sign of the value --> src/lib.rs:141:23 | 141 | (!(self as $conv_fn)).wrapping_add(1) | ^^^^^^^^^^^^^^^^^^ ... 215 | / impl_Integer!( 216 | | I8_MAX_LEN => i8, 217 | | U8_MAX_LEN => u8, 218 | | I16_MAX_LEN => i16, ... | 221 | | U32_MAX_LEN => u32 222 | | as u32); | |___________- in this macro invocation | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_sign_loss = note: this warning originates in the macro `impl_Integer` (in Nightly builds, run with -Z macro-backtrace for more info) warning: casting `i64` to `u64` may lose the sign of the value --> src/lib.rs:138:21 | 138 | self as $conv_fn | ^^^^^^^^^^^^^^^^ ... 224 | impl_Integer!(I64_MAX_LEN => i64, U64_MAX_LEN => u64 as u64); | ------------------------------------------------------------ in this macro invocation | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_sign_loss = note: this warning originates in the macro `impl_Integer` (in Nightly builds, run with -Z macro-backtrace for more info) warning: casting `i64` to `u64` may lose the sign of the value --> src/lib.rs:141:23 | 141 | (!(self as $conv_fn)).wrapping_add(1) | ^^^^^^^^^^^^^^^^^^ ... 224 | impl_Integer!(I64_MAX_LEN => i64, U64_MAX_LEN => u64 as u64); | ------------------------------------------------------------ in this macro invocation | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_sign_loss = note: this warning originates in the macro `impl_Integer` (in Nightly builds, run with -Z macro-backtrace for more info) warning: casting `isize` to `u8` may lose the sign of the value --> src/lib.rs:181:49 | 181 | *buf_ptr.offset(curr) = (n as u8) + b'0'; | ^^^^^^^^^ ... 224 | impl_Integer!(I64_MAX_LEN => i64, U64_MAX_LEN => u64 as u64); | ------------------------------------------------------------ in this macro invocation | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_sign_loss = note: this warning originates in the macro `impl_Integer` (in Nightly builds, run with -Z macro-backtrace for more info) warning: casting `isize` to `usize` may lose the sign of the value --> src/lib.rs:198:39 | 198 | let len = buf.len() - curr as usize; | ^^^^^^^^^^^^^ ... 224 | impl_Integer!(I64_MAX_LEN => i64, U64_MAX_LEN => u64 as u64); | ------------------------------------------------------------ in this macro invocation | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_sign_loss = note: this warning originates in the macro `impl_Integer` (in Nightly builds, run with -Z macro-backtrace for more info) warning: casting `isize` to `u64` may lose the sign of the value --> src/lib.rs:138:21 | 138 | self as $conv_fn | ^^^^^^^^^^^^^^^^ ... 233 | impl_Integer!(I64_MAX_LEN => isize, U64_MAX_LEN => usize as u64); | ---------------------------------------------------------------- in this macro invocation | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_sign_loss = note: this warning originates in the macro `impl_Integer` (in Nightly builds, run with -Z macro-backtrace for more info) warning: casting `isize` to `u64` may lose the sign of the value --> src/lib.rs:141:23 | 141 | (!(self as $conv_fn)).wrapping_add(1) | ^^^^^^^^^^^^^^^^^^ ... 233 | impl_Integer!(I64_MAX_LEN => isize, U64_MAX_LEN => usize as u64); | ---------------------------------------------------------------- in this macro invocation | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_sign_loss = note: this warning originates in the macro `impl_Integer` (in Nightly builds, run with -Z macro-backtrace for more info) warning: casting `isize` to `u8` may lose the sign of the value --> src/lib.rs:181:49 | 181 | *buf_ptr.offset(curr) = (n as u8) + b'0'; | ^^^^^^^^^ ... 233 | impl_Integer!(I64_MAX_LEN => isize, U64_MAX_LEN => usize as u64); | ---------------------------------------------------------------- in this macro invocation | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_sign_loss = note: this warning originates in the macro `impl_Integer` (in Nightly builds, run with -Z macro-backtrace for more info) warning: casting `isize` to `usize` may lose the sign of the value --> src/lib.rs:198:39 | 198 | let len = buf.len() - curr as usize; | ^^^^^^^^^^^^^ ... 233 | impl_Integer!(I64_MAX_LEN => isize, U64_MAX_LEN => usize as u64); | ---------------------------------------------------------------- in this macro invocation | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_sign_loss = note: this warning originates in the macro `impl_Integer` (in Nightly builds, run with -Z macro-backtrace for more info) warning: casting `i128` to `u128` may lose the sign of the value --> src/lib.rs:248:21 | 248 | self as u128 | ^^^^^^^^^^^^ ... 309 | impl_Integer128!(I128_MAX_LEN => i128, U128_MAX_LEN => u128); | ------------------------------------------------------------ in this macro invocation | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_sign_loss = note: this warning originates in the macro `impl_Integer128` (in Nightly builds, run with -Z macro-backtrace for more info) warning: casting `i128` to `u128` may lose the sign of the value --> src/lib.rs:251:23 | 251 | (!(self as u128)).wrapping_add(1) | ^^^^^^^^^^^^^^ ... 309 | impl_Integer128!(I128_MAX_LEN => i128, U128_MAX_LEN => u128); | ------------------------------------------------------------ in this macro invocation | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_sign_loss = note: this warning originates in the macro `impl_Integer128` (in Nightly builds, run with -Z macro-backtrace for more info) warning: casting `isize` to `usize` may lose the sign of the value --> src/lib.rs:265:72 | 265 | ptr::write_bytes(buf_ptr.offset(target), b'0', (curr - target) as usize); | ^^^^^^^^^^^^^^^^^^^^^^^^ ... 309 | impl_Integer128!(I128_MAX_LEN => i128, U128_MAX_LEN => u128); | ------------------------------------------------------------ in this macro invocation | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_sign_loss = note: this warning originates in the macro `impl_Integer128` (in Nightly builds, run with -Z macro-backtrace for more info) warning: casting `isize` to `usize` may lose the sign of the value --> src/lib.rs:278:76 | 278 | ptr::write_bytes(buf_ptr.offset(target), b'0', (curr - target) as usize); | ^^^^^^^^^^^^^^^^^^^^^^^^ ... 309 | impl_Integer128!(I128_MAX_LEN => i128, U128_MAX_LEN => u128); | ------------------------------------------------------------ in this macro invocation | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_sign_loss = note: this warning originates in the macro `impl_Integer128` (in Nightly builds, run with -Z macro-backtrace for more info) warning: casting `isize` to `usize` may lose the sign of the value --> src/lib.rs:298:39 | 298 | let len = buf.len() - curr as usize; | ^^^^^^^^^^^^^ ... 309 | impl_Integer128!(I128_MAX_LEN => i128, U128_MAX_LEN => u128); | ------------------------------------------------------------ in this macro invocation | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#cast_sign_loss = note: this warning originates in the macro `impl_Integer128` (in Nightly builds, run with -Z macro-backtrace for more info) |
||
---|---|---|
.github | ||
benches | ||
chart | ||
fuzz | ||
src | ||
tests | ||
.gitignore | ||
Cargo.toml | ||
LICENSE-APACHE | ||
LICENSE-MIT | ||
README.md | ||
performance.png |
README.md
itoa
This crate provides a fast conversion of integer primitives to decimal strings.
The implementation comes straight from libcore but avoids the performance
penalty of going through core::fmt::Formatter
.
See also ryu
for printing floating point primitives.
Version requirement: rustc 1.36+
[dependencies]
itoa = "1.0"
Example
fn main() {
let mut buffer = itoa::Buffer::new();
let printed = buffer.format(128u64);
assert_eq!(printed, "128");
}
Performance (lower is better)
License
Licensed under either of Apache License, Version 2.0 or MIT license at your option.Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this crate by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.