m3u8_parser/m3u8/
validation.rs

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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
/// Represents different types of validation errors that can occur when processing an M3U8 playlist.
///
/// This enum captures specific validation issues that may arise when checking the conformity
/// of a playlist to the M3U8 specification. Each variant represents a distinct error, providing
/// context for what went wrong during validation.
#[derive(Debug, PartialEq)]
pub enum ValidationError {
    /// Error indicating that the #EXTM3U tag is missing from the playlist.
    MissingExtM3U,

    /// Error indicating that the specified version is invalid.
    ///
    /// # Arguments
    ///
    /// * `u8` - The invalid version number that was encountered.
    InvalidVersion(u8),

    /// Error indicating that the duration specified is invalid.
    ///
    /// # Arguments
    ///
    /// * `f32` - The invalid duration value that was encountered.
    InvalidDuration(f32),

    /// Error indicating that the target duration specified is invalid.
    ///
    /// # Arguments
    ///
    /// * `u32` - The invalid target duration value that was encountered.
    InvalidTargetDuration(u64),

    /// Error indicating that an invalid key method was specified.
    ///
    /// # Arguments
    ///
    /// * `String` - The invalid key method that was encountered.
    InvalidKeyMethod(String),

    /// Error indicating that the URI specified in a map tag is invalid.
    InvalidMapUri,

    /// Error indicating that the program date and time specified is invalid.
    InvalidProgramDateTime,

    /// Error indicating that the ID specified in a date range is invalid.
    InvalidDateRangeId,

    /// Error indicating that the start date specified in a date range is invalid.
    InvalidDateRangeStartDate,

    /// Error indicating that the end date specified in a date range is invalid.
    InvalidDateRangeEndDate,

    /// Error indicating that the planned duration specified in a date range is invalid.
    ///
    /// # Arguments
    ///
    /// * `f32` - The invalid planned duration value that was encountered in the date range.
    InvalidDateRangePlannedDuration(f32),

    /// Error indicating that the specified byte range is invalid.
    ///
    /// # Arguments
    ///
    /// * `String` - The invalid byte range that was encountered.
    InvalidByteRange(String),

    /// Error indicating that a media tag is missing required fields.
    MissingMediaFields,

    /// Error indicating that a stream information tag is invalid.
    ///
    /// # Arguments
    ///
    /// * `String` - The invalid stream information encountered.
    InvalidStreamInf(String),

    /// Error indicating that an I-frame stream information tag is invalid.
    ///
    /// # Arguments
    ///
    /// * `String` - The invalid I-frame stream information encountered.
    InvalidIFrameStreamInf(String),

    /// Error indicating that a part tag is invalid.
    ///
    /// # Arguments
    ///
    /// * `String` - The invalid part information encountered.
    InvalidPartInfo(String),

    /// Error indicating that a preload hint URI is invalid.
    InvalidPreloadHintUri,

    /// Error indicating that a rendition report URI is invalid.
    InvalidRenditionReportUri,

    /// Error indicating that the server control information is invalid.
    InvalidServerControl,

    /// Error indicating that the specified start time offset is invalid.
    InvalidStartTimeOffset,

    /// Error indicating that a skip tag is invalid.
    ///
    /// # Arguments
    ///
    /// * `String` - The invalid skip tag information encountered.
    InvalidSkipTag(String),

    /// Error indicating that the specified bitrate is invalid.
    ///
    /// # Arguments
    ///
    /// * `u32` - The invalid bitrate value that was encountered.
    InvalidBitrate(u32),

    /// Error indicating that the specified start offset is invalid.
    InvalidStartOffset,
}