twilio-data 0.2.0

Twilio API data structures
Documentation
use core::fmt;

pub const SEP: &str = "&";
pub const EQ: &str = "=";

#[inline]
pub fn push_pair(key: &str, value: &str, out: &mut Vec<u8>) {
    out.reserve(key.len() + value.len() + 1);

    if !out.is_empty() {
        out.extend_from_slice(SEP.as_bytes());
    }

    for part in form_urlencoded::byte_serialize(key.as_bytes()) {
        out.extend_from_slice(part.as_bytes());
    }
    out.extend_from_slice(EQ.as_bytes());
    for part in form_urlencoded::byte_serialize(value.as_bytes()) {
        out.extend_from_slice(part.as_bytes());
    }
}

#[inline]
pub fn format_pair(key: &str, value: &str, fmt: &mut fmt::Formatter) -> fmt::Result {
    for part in form_urlencoded::byte_serialize(key.as_bytes()) {
        fmt.write_str(part)?;
    }
    fmt.write_str(EQ)?;
    for part in form_urlencoded::byte_serialize(value.as_bytes()) {
        fmt.write_str(part)?;
    }

    Ok(())
}