Skip to main content

systemprompt_content/models/
content_error.rs

1#[derive(Debug, thiserror::Error)]
2pub enum ContentError {
3    #[error("Missing required field: {field}")]
4    MissingField { field: String },
5
6    #[error(
7        "Missing organization config: '{field}' in content.yaml under \
8         metadata.structured_data.organization"
9    )]
10    MissingOrgConfig { field: String },
11
12    #[error(
13        "Missing article config: '{field}' in content.yaml under metadata.structured_data.article"
14    )]
15    MissingArticleConfig { field: String },
16
17    #[error("Invalid content: {message}")]
18    InvalidContent { message: String },
19
20    #[error("Missing branding config: '{field}' in web.yaml under branding")]
21    MissingBrandingConfig { field: String },
22}
23
24impl ContentError {
25    pub fn missing_field(field: impl Into<String>) -> Self {
26        Self::MissingField {
27            field: field.into(),
28        }
29    }
30
31    pub fn missing_org_config(field: impl Into<String>) -> Self {
32        Self::MissingOrgConfig {
33            field: field.into(),
34        }
35    }
36
37    pub fn missing_article_config(field: impl Into<String>) -> Self {
38        Self::MissingArticleConfig {
39            field: field.into(),
40        }
41    }
42
43    pub fn invalid_content(message: impl Into<String>) -> Self {
44        Self::InvalidContent {
45            message: message.into(),
46        }
47    }
48
49    pub fn missing_branding_config(field: impl Into<String>) -> Self {
50        Self::MissingBrandingConfig {
51            field: field.into(),
52        }
53    }
54}