1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
use crate::Result;
use serde::{Deserialize, Serialize};
use url::Url;
#[derive(Clone, Debug, Deserialize, Eq, Hash, Ord, PartialEq, PartialOrd, Serialize)]
pub struct Link<T: ToString>(T);
#[derive(Clone, Debug, Deserialize, Eq, Hash, Ord, PartialEq, PartialOrd, Serialize)]
pub struct Uri(String);
impl Uri {
pub fn new(data: String) -> Self {
Self(data)
}
pub fn parse(&self) -> Result<Url> {
let url = Url::parse(self.0.as_str())?;
Ok(url)
}
pub fn uri(&self) -> String {
self.0.clone()
}
}