1use derive_more::{Deref, DerefMut};
2
3use crate::SharedString;
4
5/// A [`SharedString`] containing a URL.
6#[derive(Deref, DerefMut, Default, PartialEq, Eq, Hash, Clone)]
7pub struct SharedUrl(SharedString);
8
9impl std::fmt::Debug for SharedUrl {
10 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
11 self.0.fmt(f)
12 }
13}
14
15impl std::fmt::Display for SharedUrl {
16 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
17 write!(f, "{}", self.0.as_ref())
18 }
19}
20
21impl<T: Into<SharedString>> From<T> for SharedUrl {
22 fn from(value: T) -> Self {
23 Self(value.into())
24 }
25}