mod name;
use crate::{SchemaId, SchemaReference, SchemaType, SchemaVersion};
pub use self::name::*;
#[derive(Debug, Clone, PartialEq, Eq, serde::Serialize, serde::Deserialize)]
pub struct SubjectVersion {
pub subject: SubjectName,
pub version: SchemaVersion,
}
#[derive(Debug, Clone, PartialEq, Eq, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Subject {
pub subject: SubjectName,
pub id: SchemaId,
pub version: SchemaVersion,
#[serde(rename = "schema_type", default)]
pub schema_type: SchemaType,
pub schema: String,
}
#[derive(Debug, Clone, PartialEq, Eq, Default, serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct RegisterSchema {
pub schema: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub schema_type: Option<SchemaType>,
#[serde(skip_serializing_if = "Vec::is_empty")]
pub references: Vec<SchemaReference>,
}
#[derive(Debug, Clone, PartialEq, Eq, serde::Serialize, serde::Deserialize)]
pub struct RegisteredSchema {
pub id: SchemaId,
}