helm_schema_ir/contract/
document.rs1use serde::{Deserialize, Serialize};
2
3use super::ContractUse;
4use crate::contract_normalization::canonicalize_contract_uses;
5
6#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
8pub struct ContractDocument {
9 pub version: u32,
11 pub uses: Vec<ContractUse>,
13}
14
15impl ContractDocument {
16 pub const VERSION: u32 = 3;
18
19 #[must_use]
21 pub fn from_contract_uses(mut uses: Vec<ContractUse>) -> Self {
22 canonicalize_contract_uses(&mut uses);
23 Self {
24 version: Self::VERSION,
25 uses,
26 }
27 }
28}
29
30#[cfg(test)]
31#[path = "../tests/contract/document.rs"]
32mod tests;