systemprompt-content 0.1.21

Content module for systemprompt.io with content management, analytics, and event tracking
Documentation
#[derive(Debug, thiserror::Error)]
pub enum ContentValidationError {
    #[error("Missing required field: {field}")]
    MissingField { field: String },

    #[error(
        "Missing organization config: '{field}' in content.yaml under \
         metadata.structured_data.organization"
    )]
    MissingOrgConfig { field: String },

    #[error(
        "Missing article config: '{field}' in content.yaml under metadata.structured_data.article"
    )]
    MissingArticleConfig { field: String },

    #[error("Invalid content: {message}")]
    InvalidContent { message: String },

    #[error("Missing branding config: '{field}' in web.yaml under branding")]
    MissingBrandingConfig { field: String },
}

impl ContentValidationError {
    pub fn missing_field(field: impl Into<String>) -> Self {
        Self::MissingField {
            field: field.into(),
        }
    }

    pub fn missing_org_config(field: impl Into<String>) -> Self {
        Self::MissingOrgConfig {
            field: field.into(),
        }
    }

    pub fn missing_article_config(field: impl Into<String>) -> Self {
        Self::MissingArticleConfig {
            field: field.into(),
        }
    }

    pub fn invalid_content(message: impl Into<String>) -> Self {
        Self::InvalidContent {
            message: message.into(),
        }
    }

    pub fn missing_branding_config(field: impl Into<String>) -> Self {
        Self::MissingBrandingConfig {
            field: field.into(),
        }
    }
}