package_json_parser/def/
name.rs

1use 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}