Skip to main content

reifydb_core/interface/
version.rs

1// SPDX-License-Identifier: Apache-2.0
2// Copyright (c) 2025 ReifyDB
3
4use 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}