made_core/value_objects/
evidence_reference.rs1use serde::{Deserialize, Serialize};
2
3use crate::error::DomainError;
4
5#[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Serialize, Deserialize)]
7#[serde(transparent)]
8pub struct EvidenceReference(String);
9
10impl EvidenceReference {
11 pub fn new(raw: impl Into<String>) -> Result<Self, DomainError> {
12 let raw = raw.into();
13 let value = raw.trim();
14 if value.is_empty() {
15 return Err(DomainError::EmptyField {
16 field: "evidence_support.reference",
17 });
18 }
19 Ok(Self(value.to_owned()))
20 }
21
22 #[must_use]
23 pub fn as_str(&self) -> &str {
24 &self.0
25 }
26}