knowledge-base-models 0.2.0

Data models for the file-based knowledge base
Documentation
use crate::{ReferenceId, deserialize_optional_non_null};
use serde::{Deserialize, Serialize};

#[derive(Clone, Debug, Deserialize, Serialize)]
#[serde(deny_unknown_fields)]
pub struct Reference {
    pub id: ReferenceId,
    pub url: String,
    pub title: String,
    #[serde(default, deserialize_with = "deserialize_optional_non_null", skip_serializing_if = "Option::is_none")]
    pub publisher: Option<String>,
    #[serde(default, deserialize_with = "deserialize_optional_non_null", skip_serializing_if = "Option::is_none")]
    pub publication_date: Option<String>,
    #[serde(default, deserialize_with = "deserialize_optional_non_null", skip_serializing_if = "Option::is_none")]
    pub source_language: Option<String>,
    pub retrieved_at: String,
    #[serde(default, deserialize_with = "deserialize_optional_non_null", skip_serializing_if = "Option::is_none")]
    pub archive_url: Option<String>,
}