use alloc::string::String;
use crate::{Iri, IriParseError};
pub trait TryIntoIri {
fn try_into_iri(self) -> Result<Iri<String>, IriParseError>;
}
impl TryIntoIri for &str {
#[inline]
fn try_into_iri(self) -> Result<Iri<String>, IriParseError> {
self.parse()
}
}
impl TryIntoIri for String {
#[inline]
fn try_into_iri(self) -> Result<Iri<String>, IriParseError> {
Iri::parse_owned(self).map_err(|(e, _)| e)
}
}
impl TryIntoIri for Iri<String> {
#[inline]
fn try_into_iri(self) -> Result<Iri<String>, IriParseError> {
Ok(self)
}
}
impl TryIntoIri for Iri<&str> {
#[inline]
fn try_into_iri(self) -> Result<Iri<String>, IriParseError> {
Ok(self.to_owned())
}
}
impl TryIntoIri for &Iri<String> {
#[inline]
fn try_into_iri(self) -> Result<Iri<String>, IriParseError> {
Ok(self.clone())
}
}