support_kit/boilerplate/
boilerplate_context.rs

1use convert_case::Casing;
2use serde::Serialize;
3
4use crate::Configuration;
5
6#[derive(Debug, Clone, bon::Builder, Serialize)]
7pub struct BoilerplateContext {
8    #[builder(into)]
9    pub name: String,
10    #[builder(default, into)]
11    pub secret_name: String,
12    pub image: Option<String>,
13}
14
15impl From<Configuration> for BoilerplateContext {
16    fn from(config: Configuration) -> Self {
17        let secret_name = config
18            .name()
19            .to_string()
20            .to_case(convert_case::Case::UpperSnake);
21
22        Self::builder()
23            .name(config.name())
24            .secret_name(secret_name)
25            .build()
26    }
27}