winbrew_models\package/
dependency.rs1use serde::{Deserialize, Serialize};
2
3use crate::shared::validation::{Validate, ensure_non_empty};
4use crate::shared::{ModelError, Version};
5
6#[derive(Debug, Clone, Serialize, Deserialize)]
12pub struct Dependency {
13 pub id: String,
15 pub version: Option<Version>,
17}
18
19impl Dependency {
20 pub fn validate(&self) -> Result<(), ModelError> {
22 ensure_non_empty("dependency.id", &self.id)?;
23 if let Some(version) = &self.version {
24 version.validate()?;
25 }
26 Ok(())
27 }
28}
29
30impl Validate for Dependency {
31 fn validate(&self) -> Result<(), ModelError> {
32 Dependency::validate(self)
33 }
34}