1use std::fmt;
2
3#[derive(Debug, Clone, PartialEq, Eq)]
5pub struct ParseSipUriError(pub String);
6
7impl fmt::Display for ParseSipUriError {
8 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
9 write!(f, "invalid SIP URI: {}", self.0)
10 }
11}
12
13impl std::error::Error for ParseSipUriError {}
14
15#[derive(Debug, Clone, PartialEq, Eq)]
17pub struct ParseTelUriError(pub String);
18
19impl fmt::Display for ParseTelUriError {
20 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
21 write!(f, "invalid tel URI: {}", self.0)
22 }
23}
24
25impl std::error::Error for ParseTelUriError {}
26
27#[derive(Debug, Clone, PartialEq, Eq)]
29pub struct ParseUriError(pub String);
30
31impl fmt::Display for ParseUriError {
32 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
33 write!(f, "invalid URI: {}", self.0)
34 }
35}
36
37impl std::error::Error for ParseUriError {}
38
39impl From<ParseSipUriError> for ParseUriError {
40 fn from(e: ParseSipUriError) -> Self {
41 ParseUriError(e.0)
42 }
43}
44
45impl From<ParseTelUriError> for ParseUriError {
46 fn from(e: ParseTelUriError) -> Self {
47 ParseUriError(e.0)
48 }
49}
50
51#[derive(Debug, Clone, PartialEq, Eq)]
53pub struct ParseUrnError(pub String);
54
55impl fmt::Display for ParseUrnError {
56 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
57 write!(f, "invalid URN: {}", self.0)
58 }
59}
60
61impl std::error::Error for ParseUrnError {}
62
63impl From<ParseUrnError> for ParseUriError {
64 fn from(e: ParseUrnError) -> Self {
65 ParseUriError(e.0)
66 }
67}
68
69#[derive(Debug, Clone, PartialEq, Eq)]
71pub struct ParseNameAddrError(pub String);
72
73impl fmt::Display for ParseNameAddrError {
74 fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
75 write!(f, "invalid name-addr: {}", self.0)
76 }
77}
78
79impl std::error::Error for ParseNameAddrError {}
80
81impl From<ParseUriError> for ParseNameAddrError {
82 fn from(e: ParseUriError) -> Self {
83 ParseNameAddrError(e.0)
84 }
85}