uniform_resource_identifier/uri/authority/port/
mod.rs1use crate::Scheme;
2
3#[derive(Debug, Clone, PartialEq)]
4pub enum Port {
5 Http,
6 Https,
7 Port(usize),
8}
9
10impl From<Port> for Scheme {
11 fn from(port: Port) -> Scheme {
12 match port {
13 Port::Http => Scheme::Http,
14 Port::Https => Scheme::Https,
15 _ => panic!("cast port {:?} to scheme", port),
16 }
17 }
18}
19
20impl ToString for Port {
21 fn to_string(&self) -> String {
22 match self {
23 Port::Http => String::from("80"),
24 Port::Https => String::from("443"),
25 Port::Port(port) => port.clone().to_string(),
26 }
27 }
28}
29
30#[cfg(test)]
31mod test_port {
32 use crate::{Port, Scheme};
33
34 #[test]
35 fn port_to_scheme() {
36 let port = Port::Http;
37 let scheme: Scheme = port.into();
38 assert_eq!(scheme, Scheme::Http);
39 }
40
41 #[test]
42 fn port_to_string() {
43 let port = Port::Http;
44 assert_eq!(port.to_string(), "80");
45 }
46}