1use std::{collections::BTreeMap, path::PathBuf};
2
3use serde::{Deserialize, Serialize};
4
5#[derive(Default, Debug, Serialize, Deserialize)]
6pub struct Workspace {
7 pub name: String,
8 pub description: Option<String>,
9 pub authors: Vec<String>,
10 pub repository: Option<String>,
11 pub cores: BTreeMap<String, Core>,
12 pub shells: Option<BTreeMap<String, Shell>>,
13}
14
15#[derive(Debug, Serialize, Deserialize)]
16pub struct Core {
17 #[serde(skip)]
18 pub name: String,
19 pub source: PathBuf,
20 pub type_gen: Option<PathBuf>,
21 pub crux_version: String,
22}
23
24#[derive(Debug, Serialize, Deserialize)]
25pub struct Shell {
26 #[serde(skip)]
27 pub name: String,
28 pub template: Option<PathBuf>,
29 pub source: PathBuf,
30 pub cores: Vec<String>,
31}