1use serde::{Deserialize, Serialize};
2use strum_macros::Display;
3
4#[derive(Debug, Clone, Default, Serialize, Deserialize)]
6pub(super) struct BuildConfig {
7 pub(super) profile: Option<Profile>,
10 #[serde(default)]
17 pub(super) runner: Vec<String>,
18}
19
20#[derive(Debug, Clone, Copy, PartialEq, Eq, Deserialize, Serialize, Display)]
22#[cfg_attr(feature = "clap", derive(clap::ValueEnum))]
23#[serde(rename_all = "lowercase")]
24#[strum(serialize_all = "lowercase")]
25pub enum Profile {
26 Release,
27 Dev,
28}
29
30impl Profile {
31 pub fn opt_level(self) -> u32 {
33 match self {
34 Self::Release => 3,
35 Self::Dev => 0,
36 }
37 }
38}