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