#[derive(Clone, Debug, Eq, Hash, PartialEq)]
pub struct SchemaId(pub String);
impl SchemaId {
pub fn new(value: impl Into<String>) -> Self {
Self(value.into())
}
}
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
pub struct SchemaVersion(pub u16);
#[derive(Clone, Debug, Eq, PartialEq)]
pub struct SchemaDescriptor {
pub id: SchemaId,
pub version: SchemaVersion,
pub name: String,
}
impl SchemaDescriptor {
pub fn new(id: impl Into<String>, version: u16, name: impl Into<String>) -> Self {
Self {
id: SchemaId::new(id),
version: SchemaVersion(version),
name: name.into(),
}
}
}