address/domain/
from_str.rs1use std::str::FromStr;
2
3use crate::{Domain, ParseError};
4
5impl FromStr for Domain {
6 type Err = ParseError;
7
8 fn from_str(s: &str) -> Result<Self, Self::Err> {
9 Domain::try_from(s)
10 }
11}
12
13#[cfg(test)]
14mod tests {
15 use std::str::FromStr;
16
17 use crate::ParseError::InvalidDomain;
18 use crate::{Domain, ParseError};
19
20 #[test]
21 fn from_str() {
22 let result: Result<Domain, ParseError> = Domain::from_str("localhost");
23 assert_eq!(result, Ok(Domain::localhost()));
24
25 let result: Result<Domain, ParseError> = Domain::from_str("LocalHost");
26 assert_eq!(result, Ok(Domain::localhost()));
27
28 let result: Result<Domain, ParseError> = Domain::from_str("Local!Host");
29 assert_eq!(result, Err(InvalidDomain));
30 }
31}