support_kit/config/
config_file.rs

1use std::fmt::Display;
2
3use serde::{Deserialize, Serialize};
4
5use crate::ServiceName;
6
7#[derive(Clone, Debug, Deserialize, Serialize, PartialEq)]
8pub struct ConfigFile(String);
9
10impl Display for ConfigFile {
11    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
12        write!(f, "{}", self.0)
13    }
14}
15
16impl Default for ConfigFile {
17    fn default() -> Self {
18        ServiceName::default().into()
19    }
20}
21
22impl<T> From<T> for ConfigFile
23where
24    T: Into<ServiceName>,
25{
26    fn from(name: T) -> Self {
27        Self(name.into().to_string())
28    }
29}
30
31impl From<ConfigFile> for String {
32    fn from(file: ConfigFile) -> Self {
33        file.0
34    }
35}