1#[derive(Clone, Debug, Eq, Hash, PartialEq)]
2pub struct SchemaId(pub String);
3
4impl SchemaId {
5 pub fn new(value: impl Into<String>) -> Self {
6 Self(value.into())
7 }
8}
9
10#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
11pub struct SchemaVersion(pub u16);
12
13#[derive(Clone, Debug, Eq, PartialEq)]
14pub struct SchemaDescriptor {
15 pub id: SchemaId,
16 pub version: SchemaVersion,
17 pub name: String,
18}
19
20impl SchemaDescriptor {
21 pub fn new(id: impl Into<String>, version: u16, name: impl Into<String>) -> Self {
22 Self {
23 id: SchemaId::new(id),
24 version: SchemaVersion(version),
25 name: name.into(),
26 }
27 }
28}