Loading crates/s3s/Cargo.toml +1 −0 Original line number Diff line number Diff line Loading @@ -28,6 +28,7 @@ hmac = "0.12.1" http-body = "0.4.5" httparse = "1.8.0" hyper = { version = "0.14.26", features = ["stream"] } itoa = "1.0.6" memchr = "2.5.0" mime = "0.3.17" nom = "7.1.3" Loading crates/s3s/src/utils/format.rs +7 −17 Original line number Diff line number Diff line use crate::dto::{Timestamp, TimestampFormat}; use std::fmt::Write; use arrayvec::ArrayVec; use arrayvec::{ArrayString, ArrayVec}; /// on-stack formatting pub const fn fmt_boolean(val: bool) -> &'static str { if val { "true" Loading @@ -13,28 +10,21 @@ pub const fn fmt_boolean(val: bool) -> &'static str { } } /// on-stack formatting pub fn fmt_integer<T>(val: i32, f: impl FnOnce(&str) -> T) -> T { let mut buf = ArrayString::<16>::new(); write!(&mut buf, "{val}").unwrap(); f(buf.as_str()) let mut buf = itoa::Buffer::new(); f(buf.format(val)) } /// on-stack formatting pub fn fmt_long<T>(val: i64, f: impl FnOnce(&str) -> T) -> T { let mut buf = ArrayString::<32>::new(); write!(&mut buf, "{val}").unwrap(); f(buf.as_str()) let mut buf = itoa::Buffer::new(); f(buf.format(val)) } pub fn fmt_usize<T>(val: usize, f: impl FnOnce(&str) -> T) -> T { let mut buf = ArrayString::<32>::new(); write!(&mut buf, "{val}").unwrap(); f(buf.as_str()) let mut buf = itoa::Buffer::new(); f(buf.format(val)) } /// on-stack formatting #[allow(clippy::unwrap_used)] pub fn fmt_timestamp<T>(val: &Timestamp, fmt: TimestampFormat, f: impl FnOnce(&[u8]) -> T) -> T { let mut buf = ArrayVec::<u8, 32>::new(); val.format(fmt, &mut buf).unwrap(); Loading crates/s3s/src/utils/mod.rs +1 −0 Original line number Diff line number Diff line pub mod crypto; pub mod parser; pub mod format; use std::future::Future; Loading Loading
crates/s3s/Cargo.toml +1 −0 Original line number Diff line number Diff line Loading @@ -28,6 +28,7 @@ hmac = "0.12.1" http-body = "0.4.5" httparse = "1.8.0" hyper = { version = "0.14.26", features = ["stream"] } itoa = "1.0.6" memchr = "2.5.0" mime = "0.3.17" nom = "7.1.3" Loading
crates/s3s/src/utils/format.rs +7 −17 Original line number Diff line number Diff line use crate::dto::{Timestamp, TimestampFormat}; use std::fmt::Write; use arrayvec::ArrayVec; use arrayvec::{ArrayString, ArrayVec}; /// on-stack formatting pub const fn fmt_boolean(val: bool) -> &'static str { if val { "true" Loading @@ -13,28 +10,21 @@ pub const fn fmt_boolean(val: bool) -> &'static str { } } /// on-stack formatting pub fn fmt_integer<T>(val: i32, f: impl FnOnce(&str) -> T) -> T { let mut buf = ArrayString::<16>::new(); write!(&mut buf, "{val}").unwrap(); f(buf.as_str()) let mut buf = itoa::Buffer::new(); f(buf.format(val)) } /// on-stack formatting pub fn fmt_long<T>(val: i64, f: impl FnOnce(&str) -> T) -> T { let mut buf = ArrayString::<32>::new(); write!(&mut buf, "{val}").unwrap(); f(buf.as_str()) let mut buf = itoa::Buffer::new(); f(buf.format(val)) } pub fn fmt_usize<T>(val: usize, f: impl FnOnce(&str) -> T) -> T { let mut buf = ArrayString::<32>::new(); write!(&mut buf, "{val}").unwrap(); f(buf.as_str()) let mut buf = itoa::Buffer::new(); f(buf.format(val)) } /// on-stack formatting #[allow(clippy::unwrap_used)] pub fn fmt_timestamp<T>(val: &Timestamp, fmt: TimestampFormat, f: impl FnOnce(&[u8]) -> T) -> T { let mut buf = ArrayVec::<u8, 32>::new(); val.format(fmt, &mut buf).unwrap(); Loading
crates/s3s/src/utils/mod.rs +1 −0 Original line number Diff line number Diff line pub mod crypto; pub mod parser; pub mod format; use std::future::Future; Loading