use indexmap::IndexMap;
use serde::{Deserialize, Serialize};
use serde_json::Value;
use super::{QualityRule, SchemaObject};
pub const SUPPORTED_ODCS_VERSIONS: &[&str] = &["3.1.0"];
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct DataContract {
pub version: String,
pub kind: String,
pub name: String,
pub status: String,
#[serde(default)]
pub schema: Vec<SchemaObject>,
#[serde(default)]
pub quality: Vec<QualityRule>,
#[serde(flatten)]
pub extensions: IndexMap<String, Value>,
}
impl DataContract {
#[must_use]
pub fn is_supported_version(&self) -> bool {
SUPPORTED_ODCS_VERSIONS.contains(&self.version.as_str())
}
}