[−][src]Crate itoap
This crate provides even faster functions for printing integers with decimal format than itoa crate.
If you want to write integers in decimal format to String, Vec or any other
contiguous buffer, then this crate is the best choice.
If you want to write integers to a std::io::Write or std::fmt::Write,
itoa crate and itoap crate shows almost same
performance.
The implementation is based on the sse2 algorithm from
itoa-benchmark repository.
While itoa crate writes integers from last digits, this algorithm writes
from first digits. It allows integers to be written directly to the buffer.
That's why itoap is faster than itoa.
Feature Flags
alloc: use alloc crate (enabled by default)std: use std crate (enabled by default)simd: use SIMD intrinsics if available
Examples
let value = 17u64; let mut buf = String::new(); buf.push_str("value: "); itoap::write_to_string(&mut buf, value); assert_eq!(buf, "value: 17");
use core::mem::{MaybeUninit, transmute}; use itoap::Integer; unsafe { let mut buf = [MaybeUninit::<u8>::uninit(); i32::MAX_LEN]; let len = itoap::write_to_ptr(buf.as_mut_ptr() as *mut u8, -2953); let buf: [u8; i32::MAX_LEN] = transmute(buf); let result = buf.get_unchecked(0..len); assert_eq!(result, b"-2953"); }
Traits
| Integer | An integer that can be written to pointer. |
Functions
| fmt | Write integer to an |
| write | stdWrite integer to an |
| write_to_ptr⚠ | Write integer to the buffer pointer directly. |
| write_to_string | allocWrite integer to |
| write_to_vec | allocWrite integer to |