kellnr_settings/
toolchain.rs1use provcfg::{ClapArgs, Configurable};
2use serde::{Deserialize, Serialize};
3use utoipa::ToSchema;
4
5#[derive(Debug, Deserialize, Serialize, Eq, PartialEq, Clone, Configurable, ClapArgs, ToSchema)]
6#[serde(default)]
7#[configurable(clap_prefix = "toolchain")]
8pub struct Toolchain {
9 pub enabled: bool,
11
12 pub max_size: usize,
14}
15
16impl Default for Toolchain {
17 fn default() -> Self {
18 Self {
19 enabled: false,
20 max_size: 500,
21 }
22 }
23}
24
25impl Toolchain {
26 pub fn max_bytes(&self) -> usize {
28 crate::registry::mb_to_bytes(self.max_size)
29 }
30}
31
32#[cfg(test)]
33mod tests {
34 use super::*;
35
36 #[test]
37 fn max_bytes_saturates() {
38 let mut toolchain = Toolchain::default();
39 assert_eq!(toolchain.max_bytes(), 500_000_000);
40 toolchain.max_size = usize::MAX;
41 assert_eq!(toolchain.max_bytes(), usize::MAX);
42 }
43}