1- use serde:: Serialize ;
1+ use serde:: { Deserialize , Serialize } ;
22use std:: collections:: HashSet ;
33
4- #[ derive( Debug , Serialize ) ]
4+ #[ derive( Debug , Default , Deserialize , Serialize ) ]
55pub struct MasterPlaylist {
66 pub playlist_type : PlaylistType ,
77 pub uri : String ,
88 pub streams : Vec < MediaPlaylist > ,
99}
1010
11- #[ derive( Default , Debug , Serialize ) ]
11+ #[ derive( Debug , Default , Deserialize , Serialize ) ]
1212pub struct MediaPlaylist {
1313 pub bandwidth : Option < u64 > ,
1414 pub channels : Option < f32 > ,
@@ -27,7 +27,7 @@ pub struct MediaPlaylist {
2727 pub uri : String ,
2828}
2929
30- #[ derive( Clone , Debug , Default , Serialize ) ]
30+ #[ derive( Clone , Debug , Default , Deserialize , Serialize ) ]
3131pub struct Segment {
3232 pub duration : f32 ,
3333 pub key : Option < Key > ,
@@ -36,24 +36,24 @@ pub struct Segment {
3636 pub uri : String ,
3737}
3838
39- #[ derive( Clone , Debug , Default , Serialize ) ]
39+ #[ derive( Clone , Debug , Default , Deserialize , Serialize ) ]
4040pub struct Key {
4141 pub default_kid : Option < String > ,
4242 pub iv : Option < String > ,
4343 pub method : KeyMethod ,
4444 pub uri : Option < String > ,
4545}
4646
47- #[ derive( Clone , Debug , Serialize ) ]
47+ #[ derive( Clone , Debug , Default , Deserialize , Serialize ) ]
4848pub struct Map {
4949 pub range : Option < Range > ,
5050 pub uri : String ,
5151}
5252
53- #[ derive( Clone , Debug , Serialize ) ]
53+ #[ derive( Clone , Debug , Default , Deserialize , Serialize ) ]
5454pub struct Range ( pub u64 , pub u64 ) ;
5555
56- #[ derive( Clone , Debug , Default , PartialEq , Serialize ) ]
56+ #[ derive( Clone , Debug , Default , Deserialize , PartialEq , Serialize ) ]
5757pub enum MediaType {
5858 Video ,
5959 Audio ,
@@ -62,14 +62,14 @@ pub enum MediaType {
6262 Undefined ,
6363}
6464
65- #[ derive( Clone , Debug , Default , Serialize ) ]
65+ #[ derive( Clone , Debug , Default , Deserialize , PartialEq , Serialize ) ]
6666pub enum PlaylistType {
6767 Dash ,
6868 #[ default]
6969 Hls ,
7070}
7171
72- #[ derive( Clone , Debug , Default , PartialEq , Serialize ) ]
72+ #[ derive( Clone , Debug , Default , Deserialize , PartialEq , Serialize ) ]
7373pub enum KeyMethod {
7474 Aes128 ,
7575 Cenc ,
@@ -79,7 +79,7 @@ pub enum KeyMethod {
7979 SampleAes ,
8080}
8181
82- #[ derive( Clone , Debug , Serialize ) ]
82+ #[ derive( Clone , Debug , Default , Deserialize , Serialize ) ]
8383pub struct StreamMetadata {
8484 pub bandwidth : Option < u64 > ,
8585 pub channels : Option < f32 > ,
0 commit comments