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)
}