use js_sys::JsString;
use wasm_bindgen::prelude::*;
use crate::{
constants::ReturnCode,
objects::{OwnedStructure, RoomObject, Structure},
RoomName,
};
#[wasm_bindgen]
extern "C" {
#[wasm_bindgen(extends = RoomObject, extends = Structure, extends = OwnedStructure)]
#[derive(Clone, Debug)]
pub type StructureObserver;
#[wasm_bindgen(method, js_name = observeRoom)]
fn observe_room_internal(this: &StructureObserver, target: &JsString) -> ReturnCode;
}
impl StructureObserver {
pub fn observe_room(&self, target: RoomName) -> ReturnCode {
let target = target.into();
Self::observe_room_internal(self, &target)
}
}