systemprompt_content/models/
content_error.rs1#[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}