package_json_parser/def/
name.rs1use serde::{Deserialize, Serialize};
2use serde_valid::Validate;
3
4#[derive(Debug, PartialEq, Serialize, Deserialize, Validate)]
5pub struct Name(
6 #[validate(
7 pattern = "^(?:(?:@(?:[a-z0-9-*~][a-z0-9-*._~]*)?/[a-z0-9-._~])|[a-z0-9-~])[a-z0-9-._~]*$"
8 )]
9 pub String,
10);
11
12#[cfg(test)]
13mod tests {
14 use super::*;
15
16 #[test]
17 fn should_pass_validate_name() {
18 let name = Name("test".to_string());
19 assert!(name.validate().is_ok());
20 }
21
22 #[test]
23 fn should_fail_when_name_is_invalid() {
24 let name = Name("tEst".to_string());
25 assert!(name.validate().is_err());
26 }
27}