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
use gloo_utils::format::JsValueSerdeExt;
use serde::Serialize;
use stremio_core::models::common::Loadable;
use stremio_core::models::ctx::CtxError;
use stremio_core::models::data_export::DataExport;
use url::Url;
use wasm_bindgen::JsValue;

mod model {
    use super::*;
    #[derive(Serialize)]
    #[serde(rename_all = "camelCase")]
    pub struct DataExport<'a> {
        pub export_url: Option<&'a Loadable<Url, CtxError>>,
    }
}

pub fn serialize_data_export(data_export: &DataExport) -> JsValue {
    <JsValue as JsValueSerdeExt>::from_serde(&model::DataExport {
        export_url: data_export
            .export_url
            .as_ref()
            .map(|(_auth_key, loadable)| loadable),
    })
    .expect("JsValue from model::DataExport")
}