wrend 0.3.6

A WebGL2 rendering library for Rust/Wasm & JS
Documentation
use std::ops::{Deref, DerefMut};

use wasm_bindgen::prelude::wasm_bindgen;

use crate::TransformFeedbackLink;

pub type TransformFeedbackLinkJsInner = TransformFeedbackLink<String>;

#[wasm_bindgen(inspectable, js_name = TransformFeedbackLink)]
pub struct TransformFeedbackLinkJs(TransformFeedbackLinkJsInner);

#[wasm_bindgen(js_class = TransformFeedbackLink)]
impl TransformFeedbackLinkJs {
    #[wasm_bindgen(constructor)]
    pub fn new(transform_feedback_id: String) -> Self {
        Self(TransformFeedbackLinkJsInner::new(transform_feedback_id))
    }

    #[wasm_bindgen(js_name = transformFeedbackId)]
    pub fn transform_feedback_id(&self) -> String {
        self.deref().transform_feedback_id().to_owned()
    }
}

impl TransformFeedbackLinkJs {
    pub fn into_inner(self) -> TransformFeedbackLinkJsInner {
        self.0
    }
}

impl Deref for TransformFeedbackLinkJs {
    type Target = TransformFeedbackLinkJsInner;

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

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

impl From<TransformFeedbackLinkJs> for TransformFeedbackLinkJsInner {
    fn from(buffer_link_js: TransformFeedbackLinkJs) -> Self {
        buffer_link_js.into_inner()
    }
}