Skip to main content

knowledge_base_models/
reference.rs

1use crate::{ReferenceId, deserialize_optional_non_null};
2use serde::{Deserialize, Serialize};
3
4#[derive(Clone, Debug, Deserialize, Serialize)]
5#[serde(deny_unknown_fields)]
6pub struct Reference {
7    pub id: ReferenceId,
8    pub url: String,
9    pub title: String,
10    #[serde(default, deserialize_with = "deserialize_optional_non_null", skip_serializing_if = "Option::is_none")]
11    pub publisher: Option<String>,
12    #[serde(default, deserialize_with = "deserialize_optional_non_null", skip_serializing_if = "Option::is_none")]
13    pub publication_date: Option<String>,
14    #[serde(default, deserialize_with = "deserialize_optional_non_null", skip_serializing_if = "Option::is_none")]
15    pub source_language: Option<String>,
16    pub retrieved_at: String,
17    #[serde(default, deserialize_with = "deserialize_optional_non_null", skip_serializing_if = "Option::is_none")]
18    pub archive_url: Option<String>,
19}