wasm-bindgen/tests/wasm/getters_and_setters.rs
2019-04-30 10:26:03 -03:00

126 lines
3.7 KiB
Rust

use wasm_bindgen::prelude::*;
use wasm_bindgen_test::*;
#[wasm_bindgen(module = "tests/wasm/getters_and_setters.js")]
extern "C" {
fn _1_js(rules: Rules) -> Rules;
fn _2_js(rules: Rules) -> Rules;
fn _3_js(rules: Rules) -> Rules;
fn _4_js(rules: Rules) -> Rules;
fn _5_js(rules: Rules) -> Rules;
fn _6_js(rules: Rules) -> Rules;
fn _7_js(rules: Rules) -> Rules;
}
// Each getter/setter combination is derived
// from https://github.com/rustwasm/wasm-bindgen/pull/1440#issuecomment-487113564
#[wasm_bindgen]
pub struct Rules {
pub field: i32,
}
#[wasm_bindgen]
impl Rules {
#[wasm_bindgen]
pub fn no_js_name__no_getter_with_name__no_getter_without_name(&self) -> i32 {
self.field
}
#[wasm_bindgen]
pub fn set_no_js_name__no_setter_with_name__no_setter_without_name(&mut self, field: i32) {
self.field = field;
}
#[wasm_bindgen(getter)]
pub fn no_js_name__no_getter_with_name__getter_without_name(&self) -> i32 {
self.field
}
#[wasm_bindgen(setter)]
pub fn set_no_js_name__no_setter_with_name__setter_without_name(&mut self, field: i32) {
self.field = field;
}
#[wasm_bindgen(getter = new_no_js_name__getter_with_name__getter_without_name)]
pub fn no_js_name__getter_with_name__getter_without_name(&self) -> i32 {
self.field
}
#[wasm_bindgen(setter = new_no_js_name__setter_with_name__setter_without_name)]
pub fn set_no_js_name__setter_with_name__setter_without_name(&mut self, field: i32) {
self.field = field;
}
#[wasm_bindgen(js_name = new_js_name__no_getter_with_name__no_getter_without_name)]
pub fn js_name__no_getter_with_name__no_getter_without_name(&self) -> i32 {
self.field
}
#[wasm_bindgen(js_name = new_js_name__no_setter_with_name__no_setter_without_name)]
pub fn set_js_name__no_setter_with_name__no_setter_without_name(&mut self, field: i32) {
self.field = field;
}
#[wasm_bindgen(getter, js_name = new_js_name__no_getter_with_name__getter_without_name)]
pub fn js_name__no_getter_with_name__getter_without_name(&self) -> i32 {
self.field
}
#[wasm_bindgen(js_name = new_js_name__no_setter_with_name__setter_without_name, setter)]
pub fn set_js_name__no_setter_with_name__setter_without_name(&mut self, field: i32) {
self.field = field;
}
#[wasm_bindgen(
getter = new_js_name__getter_with_name__no_getter_without_name_for_field,
js_name = new_js_name__getter_with_name__no_getter_without_name_for_method
)]
pub fn js_name__getter_with_name__no_getter_without_name(&self) -> i32 {
self.field
}
#[wasm_bindgen(
js_name = new_js_name__setter_with_name__no_setter_without_name_for_method,
setter = new_js_name__setter_with_name__no_setter_without_name_for_field
)]
pub fn set_js_name__setter_with_name__no_setter_without_name_for_field(&mut self, field: i32) {
self.field = field;
}
}
#[wasm_bindgen_test]
fn _1_rust() {
let rules = _1_js(Rules { field: 1 });
assert_eq!(rules.field, 2);
}
#[wasm_bindgen_test]
fn _2_rust() {
let rules = _2_js(Rules { field: 2 });
assert_eq!(rules.field, 4);
}
#[wasm_bindgen_test]
fn _3_rust() {
let rules = _3_js(Rules { field: 3 });
assert_eq!(rules.field, 6);
}
#[wasm_bindgen_test]
fn _4_rust() {
let rules = _4_js(Rules { field: 4 });
assert_eq!(rules.field, 8);
}
#[wasm_bindgen_test]
fn _5_rust() {
let rules = _5_js(Rules { field: 5 });
assert_eq!(rules.field, 10);
}
#[wasm_bindgen_test]
fn _6_rust() {
let rules = _6_js(Rules { field: 6 });
assert_eq!(rules.field, 12);
}
#[wasm_bindgen_test]
fn _7_rust() {
let rules = _7_js(Rules { field: 7 });
assert_eq!(rules.field, 14);
}