use honzo_core::HonzoError;
use serde::{Deserialize, Serialize};
pub const NAMESPACE: &str = super::DRM_NAMESPACE;
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct DrmEnvelope {
pub scheme: String,
pub encrypted_chunks: Vec<u32>,
pub key_envelope: Vec<u8>,
#[serde(default)]
pub license_url: Option<String>,
#[serde(default)]
pub expires_at: Option<u64>,
}
pub fn parse_drm(body: &[u8]) -> Result<DrmEnvelope, HonzoError> {
rmp_serde::from_slice(body).map_err(|_| HonzoError::Truncated)
}
pub fn build_drm(envelope: &DrmEnvelope) -> Result<Vec<u8>, HonzoError> {
rmp_serde::to_vec_named(envelope).map_err(|_| HonzoError::Truncated)
}