crate_seq_ledger/
config.rs1use serde::{Deserialize, Serialize};
4
5use crate::LedgerEntry;
6
7#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
9#[serde(rename_all = "kebab-case")]
10pub struct CrateConfig {
11 pub name: String,
13 #[serde(default)]
15 pub registry: Option<String>,
16}
17
18#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
20#[serde(rename_all = "kebab-case")]
21pub struct LedgerSettings {
22 #[serde(default)]
24 pub mode: Option<String>,
25 #[serde(default)]
27 pub tag_pattern: Option<String>,
28 #[serde(default)]
30 pub dry_run_default: Option<bool>,
31 #[serde(default)]
33 pub backoff_base_ms: Option<u64>,
34}
35
36#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)]
38#[serde(rename_all = "kebab-case")]
39pub struct LedgerAuth {
40 #[serde(default)]
42 pub token_env: Option<String>,
43 #[serde(default)]
45 pub token_cmd: Option<String>,
46}
47
48#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
50#[serde(rename_all = "kebab-case")]
51pub struct CrateSeqLedger {
52 #[serde(rename = "crate")]
54 pub crate_config: CrateConfig,
55 pub settings: LedgerSettings,
57 pub auth: LedgerAuth,
59 #[serde(rename = "versions", default)]
61 pub entries: Vec<LedgerEntry>,
62}