commit_wizard/engine/models/policy/
mod.rs1use crate::engine::models::runtime::ResolvedConfig;
2
3pub mod ai;
4pub mod branch;
5pub mod changelog;
6pub mod check;
7pub mod commit;
8pub mod enforcement;
9pub mod versioning;
10pub mod hooks;
12pub mod push;
13pub mod release;
14
15#[derive(Debug, Clone, Default)]
16pub struct Policy {
17 pub commit: commit::CommitModel,
18 pub branch: branch::BranchModel,
19 pub check: check::CheckModel,
20 pub push: push::PushModel,
21 pub release: release::ReleaseModel,
22 pub ai: ai::AiModel,
23 pub changelog: changelog::ChangelogModel,
24 pub hooks: hooks::HooksModel,
25 pub versioning: versioning::VersioningModel,
26}
27
28impl Policy {
29 pub fn from_config(config: &ResolvedConfig) -> Self {
30 Self {
31 commit: commit::CommitModel::from_config(config),
32 branch: branch::BranchModel::from_config(config),
33 check: check::CheckModel::from_config(config),
34 push: push::PushModel::from_config(config),
35 release: release::ReleaseModel::from_config(config),
36 ai: ai::AiModel::from_config(config),
37 changelog: changelog::ChangelogModel::from_config(config),
38 hooks: hooks::HooksModel::from_config(config),
39 versioning: versioning::VersioningModel::from_config(config),
40 }
41 }
42}