secrets_core/spec.rs
1/// Static metadata describing a secret dependency.
2#[derive(Clone, Debug, PartialEq, Eq)]
3pub struct SecretSpec {
4 /// Stable, machine readable key (e.g. `"TELEGRAM_TOKEN"`).
5 pub name: &'static str,
6 /// Optional human-facing hint used in prompts or documentation.
7 pub description: Option<&'static str>,
8}
9
10/// Trait implemented by zero-sized marker types to surface secret specs.
11pub trait SecretDescribable {
12 /// Return the static list of secrets required by the component.
13 fn secret_specs() -> &'static [SecretSpec];
14}