1use derive_more::{Deref, DerefMut};
2
3use crate::SharedString;
4
5/// A [`SharedString`] containing a URI.
6#[derive(Deref, DerefMut, Default, PartialEq, Eq, Hash, Clone)]
7pub struct SharedUri(SharedString);
8
9impl std::fmt::Debug for SharedUri {
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 SharedUri {
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 SharedUri {
22 fn from(value: T) -> Self {
23 Self(value.into())
24 }
25}