muster/domain/value/
project_name.rs1use nutype::nutype;
2
3#[nutype(
5 sanitize(trim),
6 validate(not_empty),
7 derive(
8 Debug,
9 Clone,
10 PartialEq,
11 Eq,
12 Hash,
13 AsRef,
14 Display,
15 Serialize,
16 Deserialize
17 )
18)]
19pub struct ProjectName(String);
20
21#[cfg(test)]
22mod tests {
23 use super::*;
24
25 #[test]
26 fn trims_and_rejects_empty() {
27 assert_eq!(
28 ProjectName::try_new(" muster ").unwrap().as_ref(),
29 "muster"
30 );
31 assert!(ProjectName::try_new(" ").is_err());
32 }
33}