gov-uk-sdk-core 0.1.0

Shared HTTP client, auth, errors, and content negotiation for GOV.UK / Companies House SDK crates.
Documentation
/// `validation=` parameter for vendor `Content-Type` on Companies House writes.
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
pub enum Validation {
    #[default]
    Full,
    Partial,
    None,
}

/// Build a Companies House vendor `Content-Type` value including `version=` and `validation=`.
pub fn vendor_content_type(vendor_mime: &str, version: &str, validation: Validation) -> String {
    format!(
        "{}; version={}; validation={}",
        vendor_mime.trim(),
        version.trim(),
        validation.as_str()
    )
}

impl Validation {
    /// Lowercase token for `validation=` in a vendor `Content-Type`.
    pub(crate) fn as_str(self) -> &'static str {
        match self {
            Validation::Full => "full",
            Validation::Partial => "partial",
            Validation::None => "none",
        }
    }
}