knowledge-base-models 0.2.0

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

pub type LocalizedMap = BTreeMap<String, LocalizedText>;

#[derive(Clone, Debug, Deserialize, Serialize)]
#[serde(deny_unknown_fields)]
pub struct LocalizedText {
    pub text: String,
    pub references: Vec<ReferenceId>,
}

pub(crate) fn deserialize_optional_non_null<'de, D, T>(deserializer: D) -> Result<Option<T>, D::Error>
where
    D: Deserializer<'de>,
    T: Deserialize<'de>,
{
    T::deserialize(deserializer).map(Some)
}