use crate::object::Value; use anyhow::Result; use serde::Serialize; use super::FromValue; #[derive(Debug, Serialize)] pub struct StreamingInfo { pub offset: u32, pub path: String, pub size: u32, } impl FromValue for StreamingInfo { fn from_value(v: Value) -> Result { let fields = v.as_class("StreamingInfo").unwrap(); Ok(StreamingInfo { offset: fields["offset"].as_u32().unwrap(), size: fields["size"].as_u32().unwrap(), path: fields["path"].to_owned().as_string().unwrap(), }) } }