1use war3parser::parser::w3i::War3MapW3i;
2use war3parser::prelude::{War3Image as War3ImageOri, War3ImageBase64};
3
4#[derive(Debug, tsify_next::Tsify, serde::Serialize, serde::Deserialize)]
6#[tsify(into_wasm_abi, from_wasm_abi)]
7pub struct War3Image {
8 pub data_url: String,
9 pub width: u32,
10 pub height: u32,
11 pub filename: String,
12}
13impl From<&War3ImageOri> for War3Image {
14 fn from(image: &War3ImageOri) -> Self {
15 let width = image.data.width();
16 let height = image.data.height();
17 let war3image_base64 = War3ImageBase64::try_from((*image).clone()).unwrap();
18 Self {
19 data_url: war3image_base64.data,
20 width,
21 height,
22 filename: war3image_base64.filename,
23 }
24 }
25}
26#[derive(Debug, tsify_next::Tsify, serde::Serialize, serde::Deserialize)]
28#[tsify(into_wasm_abi, from_wasm_abi)]
29pub struct War3MapMetadata {
30 pub map_info: Option<War3MapW3i>,
31 pub images: Vec<War3Image>,
32}