moq_karp/
error.rs

1use std::sync::Arc;
2
3#[derive(Debug, thiserror::Error, Clone)]
4pub enum Error {
5	#[error("transfork error: {0}")]
6	Transfork(#[from] moq_transfork::Error),
7
8	#[error("decode error: {0}")]
9	Decode(#[from] moq_transfork::coding::DecodeError),
10
11	#[error("json error: {0}")]
12	Json(Arc<serde_json::Error>),
13
14	#[error("duplicate track")]
15	DuplicateTrack,
16
17	#[error("missing track")]
18	MissingTrack,
19
20	#[error("invalid session ID")]
21	InvalidSession,
22
23	#[error("empty group")]
24	EmptyGroup,
25
26	#[error("invalid codec")]
27	InvalidCodec,
28
29	#[error("unsupported codec")]
30	UnsupportedCodec,
31
32	#[error("expected int")]
33	ExpectedInt(#[from] std::num::ParseIntError),
34
35	#[error("hex error: {0}")]
36	Hex(#[from] hex::FromHexError),
37}
38
39pub type Result<T> = std::result::Result<T, Error>;
40
41// Wrap in an Arc so it is Clone
42impl From<serde_json::Error> for Error {
43	fn from(err: serde_json::Error) -> Self {
44		Error::Json(Arc::new(err))
45	}
46}