war3parser_wasm/
types.rs

1use war3parser::parser::w3i::War3MapW3i;
2use war3parser::prelude::{War3Image as War3ImageOri, War3ImageBase64};
3
4/// Preview and minimap images
5#[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// Full information for wasm
27#[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}