Commit 9859f559 authored by Nugine's avatar Nugine
Browse files

s3s: utils: format

parent 68c8fc05
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -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"
+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"
@@ -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();
+1 −0
Original line number Diff line number Diff line
pub mod crypto;
pub mod parser;

pub mod format;

use std::future::Future;