1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
use thiserror::Error;

use crate::mp4box::BoxType;

#[derive(Error, Debug)]
pub enum Error {
    #[error("{0}")]
    IoError(#[from] std::io::Error),
    #[error("{0}")]
    InvalidData(&'static str),
    #[error("{0} not found")]
    BoxNotFound(BoxType),
    #[error("{0} and {1} not found")]
    Box2NotFound(BoxType, BoxType),
    #[error("trak[{0}] not found")]
    TrakNotFound(u32),
    #[error("trak[{0}].{1} not found")]
    BoxInTrakNotFound(u32, BoxType),
    #[error("traf[{0}].{1} not found")]
    BoxInTrafNotFound(u32, BoxType),
    #[error("trak[{0}].stbl.{1} not found")]
    BoxInStblNotFound(u32, BoxType),
    #[error("trak[{0}].stbl.{1}.entry[{2}] not found")]
    EntryInStblNotFound(u32, BoxType, u32),
    #[error("traf[{0}].trun.{1}.entry[{2}] not found")]
    EntryInTrunNotFound(u32, BoxType, u32),
    #[error("{0} version {1} is not supported")]
    UnsupportedBoxVersion(BoxType, u8),
}