Skip to main content

data_model/
schema.rs

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}