screeps/objects/impls/
structure_observer.rs1use js_sys::JsString;
2use wasm_bindgen::prelude::*;
3
4use crate::{
5 enums::action_error_codes::structure_observer::*,
6 local::RoomName,
7 objects::{OwnedStructure, RoomObject, Structure},
8 prelude::*,
9};
10
11#[wasm_bindgen]
12extern "C" {
13 #[wasm_bindgen(extends = RoomObject, extends = Structure, extends = OwnedStructure)]
18 #[derive(Clone, Debug)]
19 pub type StructureObserver;
20
21 #[wasm_bindgen(method, js_name = observeRoom)]
22 fn observe_room_internal(this: &StructureObserver, target: &JsString) -> i8;
23}
24
25impl StructureObserver {
26 pub fn observe_room(&self, target: RoomName) -> Result<(), ObserveRoomErrorCode> {
31 let target = target.into();
32
33 ObserveRoomErrorCode::result_from_i8(self.observe_room_internal(&target))
34 }
35}
36
37impl Attackable for StructureObserver {}
38impl Dismantleable for StructureObserver {}
39impl Repairable for StructureObserver {}