pkgs/config/
mod.rs

1mod error;
2mod name_package;
3mod read;
4mod var;
5
6use std::collections::BTreeMap;
7
8use serde::Deserialize;
9use tuple_vec_map;
10
11pub use error::{PkgsParseError, VarsBuildError, VarsParseError};
12pub use name_package::NamedPackage;
13pub use read::ConfigError;
14pub use var::VarMap;
15
16#[derive(Debug, Clone, Deserialize)]
17pub struct Config {
18    #[serde(default, with = "tuple_vec_map")]
19    pub vars: Vec<(String, String)>,
20    pub packages: BTreeMap<String, Package>,
21}
22
23#[derive(Debug, Clone, Deserialize)]
24pub struct Package {
25    #[serde(default)]
26    pub kind: PackageType,
27
28    #[serde(default)]
29    pub maps: BTreeMap<String, String>,
30}
31
32#[derive(Debug, Clone, Copy, Deserialize, Default, PartialEq, Eq)]
33#[serde(rename_all = "kebab-case")]
34pub enum PackageType {
35    #[default]
36    Local,
37}