moqtap_codec/draft14/
error_codes.rs1#[derive(Debug, Clone, Copy, PartialEq, Eq)]
3#[repr(u64)]
4pub enum SessionErrorCode {
5 NoError = 0x0,
7 InternalError = 0x1,
9 Unauthorized = 0x2,
11 ProtocolViolation = 0x3,
13 InvalidRequestId = 0x4,
15 DuplicateTrackAlias = 0x5,
17 KeyValueFormattingError = 0x6,
19 TooManyRequests = 0x7,
21 InvalidPath = 0x8,
23 MalformedPath = 0x9,
25 GoawayTimeout = 0x10,
27 ControlMessageTimeout = 0x11,
29 DataStreamTimeout = 0x12,
31 AuthTokenCacheOverflow = 0x13,
33 DuplicateAuthTokenAlias = 0x14,
35 VersionNegotiationFailed = 0x15,
37 MalformedAuthToken = 0x16,
39 UnknownAuthTokenAlias = 0x17,
41 ExpiredAuthToken = 0x18,
43 InvalidAuthority = 0x19,
45 MalformedAuthority = 0x1A,
47}
48
49#[derive(Debug, Clone, Copy, PartialEq, Eq)]
51#[repr(u64)]
52pub enum RequestErrorCode {
53 InternalError = 0x0,
55 Unauthorized = 0x1,
57 Timeout = 0x2,
59 NotSupported = 0x3,
61 TrackDoesNotExist = 0x4,
63 InvalidRange = 0x5,
65 MalformedAuthToken = 0x10,
67 ExpiredAuthToken = 0x12,
69}
70
71#[derive(Debug, Clone, Copy, PartialEq, Eq)]
73#[repr(u64)]
74pub enum PublishDoneStatusCode {
75 Normal = 0x0,
77 Unsubscribed = 0x1,
79 InternalError = 0x2,
81 Unauthorized = 0x3,
83 Unsupported = 0x4,
85 NotFound = 0x5,
87}
88
89impl SessionErrorCode {
90 pub fn from_u64(v: u64) -> Option<Self> {
92 match v {
93 0x0 => Some(SessionErrorCode::NoError),
94 0x1 => Some(SessionErrorCode::InternalError),
95 0x2 => Some(SessionErrorCode::Unauthorized),
96 0x3 => Some(SessionErrorCode::ProtocolViolation),
97 0x4 => Some(SessionErrorCode::InvalidRequestId),
98 0x5 => Some(SessionErrorCode::DuplicateTrackAlias),
99 0x6 => Some(SessionErrorCode::KeyValueFormattingError),
100 0x7 => Some(SessionErrorCode::TooManyRequests),
101 0x8 => Some(SessionErrorCode::InvalidPath),
102 0x9 => Some(SessionErrorCode::MalformedPath),
103 0x10 => Some(SessionErrorCode::GoawayTimeout),
104 0x11 => Some(SessionErrorCode::ControlMessageTimeout),
105 0x12 => Some(SessionErrorCode::DataStreamTimeout),
106 0x13 => Some(SessionErrorCode::AuthTokenCacheOverflow),
107 0x14 => Some(SessionErrorCode::DuplicateAuthTokenAlias),
108 0x15 => Some(SessionErrorCode::VersionNegotiationFailed),
109 0x16 => Some(SessionErrorCode::MalformedAuthToken),
110 0x17 => Some(SessionErrorCode::UnknownAuthTokenAlias),
111 0x18 => Some(SessionErrorCode::ExpiredAuthToken),
112 0x19 => Some(SessionErrorCode::InvalidAuthority),
113 0x1A => Some(SessionErrorCode::MalformedAuthority),
114 _ => None,
115 }
116 }
117
118 pub fn as_u64(self) -> u64 {
120 self as u64
121 }
122}
123
124impl RequestErrorCode {
125 pub fn from_u64(v: u64) -> Option<Self> {
127 match v {
128 0x0 => Some(RequestErrorCode::InternalError),
129 0x1 => Some(RequestErrorCode::Unauthorized),
130 0x2 => Some(RequestErrorCode::Timeout),
131 0x3 => Some(RequestErrorCode::NotSupported),
132 0x4 => Some(RequestErrorCode::TrackDoesNotExist),
133 0x5 => Some(RequestErrorCode::InvalidRange),
134 0x10 => Some(RequestErrorCode::MalformedAuthToken),
135 0x12 => Some(RequestErrorCode::ExpiredAuthToken),
136 _ => None,
137 }
138 }
139
140 pub fn as_u64(self) -> u64 {
142 self as u64
143 }
144}
145
146impl PublishDoneStatusCode {
147 pub fn from_u64(v: u64) -> Option<Self> {
149 match v {
150 0x0 => Some(PublishDoneStatusCode::Normal),
151 0x1 => Some(PublishDoneStatusCode::Unsubscribed),
152 0x2 => Some(PublishDoneStatusCode::InternalError),
153 0x3 => Some(PublishDoneStatusCode::Unauthorized),
154 0x4 => Some(PublishDoneStatusCode::Unsupported),
155 0x5 => Some(PublishDoneStatusCode::NotFound),
156 _ => None,
157 }
158 }
159
160 pub fn as_u64(self) -> u64 {
162 self as u64
163 }
164}