1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
/*
Appellation: links <module>
Creator: FL03 <jo3mccain@icloud.com>
Description:
*/
use crate::core::Result;
use serde::{Deserialize, Serialize};
use url::Url;
#[derive(Clone, Debug, Deserialize, Eq, Hash, PartialEq, Serialize)]
pub struct Link<T: std::string::ToString>(T);
#[derive(Clone, Debug, Deserialize, Eq, Hash, PartialEq, Serialize)]
pub struct Uri(pub 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)
}
}