wrend 0.3.6

A WebGL2 rendering library for Rust/Wasm & JS
Documentation
use crate::Framebuffer;
use std::ops::{Deref, DerefMut};
use wasm_bindgen::prelude::wasm_bindgen;
use web_sys::WebGlFramebuffer;

pub type FramebufferJsInner = Framebuffer<String>;

#[wasm_bindgen(inspectable, js_name = Framebuffer)]
pub struct FramebufferJs(FramebufferJsInner);

#[wasm_bindgen(js_class = Framebuffer)]
impl FramebufferJs {
    #[wasm_bindgen(js_name = framebufferId)]
    pub fn framebuffer_id(&self) -> String {
        self.deref().framebuffer_id().to_owned()
    }

    #[wasm_bindgen(js_name = webglFramebuffer)]
    pub fn webgl_framebuffer(&self) -> WebGlFramebuffer {
        self.deref().webgl_framebuffer().to_owned()
    }
}

impl From<FramebufferJsInner> for FramebufferJs {
    fn from(js_framebuffer_inner: FramebufferJsInner) -> Self {
        Self(js_framebuffer_inner)
    }
}

impl From<&FramebufferJsInner> for FramebufferJs {
    fn from(js_framebuffer_inner: &FramebufferJsInner) -> Self {
        Self(js_framebuffer_inner.to_owned())
    }
}

impl Deref for FramebufferJs {
    type Target = FramebufferJsInner;

    fn deref(&self) -> &Self::Target {
        &self.0
    }
}

impl DerefMut for FramebufferJs {
    fn deref_mut(&mut self) -> &mut FramebufferJsInner {
        &mut self.0
    }
}