ako 0.0.3

Ako is a Rust crate that offers a practical and human-friendly approach to creating, manipulating, formatting and converting dates, times and timestamps.
Documentation
use alloc::string::String;

use crate::error::ErrorKind;

mod rfc3339;
mod rw;

fn format<T>(value: T, formatter: fn(T, &mut String), size_hint: usize) -> String {
    let mut output = String::with_capacity(size_hint);
    formatter(value, &mut output);
    output
}

fn parse<T>(input: &str, parser: fn(&mut &[u8]) -> crate::Result<T>) -> crate::Result<T> {
    let mut input = input.as_bytes();
    let value = parser(&mut input)?;

    if !input.is_empty() {
        return Err(ErrorKind::ParseTrailing.into());
    }

    Ok(value)
}