1use super::super::host::abi::*;
2use anyhow::{bail, Result};
3
4pub fn get_data(resource_id: u32) -> Result<Vec<u8>> {
13 let data_ptr = &mut (0 as i32) as *const _ as *const *mut u8;
14 let data_size = &mut (0 as i32) as *const i32;
15 match unsafe { ws_get_data(resource_id as _, data_ptr, data_size) } {
16 0 => Ok(unsafe { Vec::from_raw_parts(*data_ptr, *data_size as _, *data_size as _) }),
17 _ => bail!("fail to get data by resource id"),
18 }
19}
20
21pub fn set_data(resource_id: u32, data: Vec<u8>) -> Result<()> {
30 match unsafe { ws_set_data(resource_id as _, data.as_ptr(), data.len() as _) } {
31 0 => Ok(()),
32 _ => bail!("fail to set data by resource id"),
33 }
34}