reifydb_core/interface/
version.rs1use std::fmt;
5
6#[derive(Clone, Debug)]
8pub enum ComponentType {
9 Package,
11 Module,
13 Subsystem,
15 Build,
17}
18
19impl fmt::Display for ComponentType {
20 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
21 match self {
22 ComponentType::Package => write!(f, "package"),
23 ComponentType::Module => write!(f, "module"),
24 ComponentType::Subsystem => write!(f, "subsystem"),
25 ComponentType::Build => write!(f, "build"),
26 }
27 }
28}
29
30#[derive(Clone, Debug)]
32pub struct SystemVersion {
33 pub name: String,
35 pub version: String,
37 pub description: String,
39 pub r#type: ComponentType,
41}
42
43pub trait HasVersion {
45 fn version(&self) -> SystemVersion;
47}