schema_registry_api/domain/schema/
mod.rs

1mod id;
2mod reference;
3mod version;
4
5use std::fmt::Display;
6
7pub use self::id::*;
8pub use self::reference::*;
9pub use self::version::*;
10
11/// A Schema type
12#[derive(Debug, Clone, Copy, PartialEq, Default, Eq, serde::Serialize, serde::Deserialize)]
13#[serde(rename_all = "UPPERCASE")]
14pub enum SchemaType {
15    /// Avro
16    #[default]
17    Avro,
18    /// Protobuf
19    Protobuf,
20    /// JSON
21    Json,
22}
23
24impl Display for SchemaType {
25    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
26        match self {
27            SchemaType::Avro => write!(f, "Avro"),
28            SchemaType::Protobuf => write!(f, "Protobuf"),
29            SchemaType::Json => write!(f, "Json"),
30        }
31    }
32}
33
34/// A Schema payload
35#[derive(Debug, Clone, serde::Serialize, serde::Deserialize)]
36pub struct Schema {
37    /// The schema as string
38    pub schema: String,
39}