1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
16#[serde(default)]
17pub struct DrmData {
18 #[serde(rename = "certificateUrl", skip_serializing_if = "Option::is_none")]
19 pub certificate_url: Option<String>,
20 #[serde(rename = "drmSystem", skip_serializing_if = "Option::is_none")]
21 pub drm_system: Option<DrmSystem>,
22 #[serde(rename = "licenseUrl", skip_serializing_if = "Option::is_none")]
23 pub license_url: Option<String>,
24}
25
26impl DrmData {
27 pub fn new() -> DrmData {
29 DrmData {
30 certificate_url: None,
31 drm_system: None,
32 license_url: None,
33 }
34 }
35}
36#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
38pub enum DrmSystem {
39 #[serde(rename = "FAIRPLAY")]
40 Fairplay,
41 #[serde(rename = "WIDEVINE")]
42 Widevine,
43}
44
45impl Default for DrmSystem {
46 fn default() -> DrmSystem {
47 Self::Fairplay
48 }
49}
50