Vendor dependencies
Let's see how I like this workflow.
This commit is contained in:
parent
34d1830413
commit
9c435dc440
7500 changed files with 1665121 additions and 99 deletions
97
vendor/wasm-bindgen/tests/wasm/enums.rs
vendored
Normal file
97
vendor/wasm-bindgen/tests/wasm/enums.rs
vendored
Normal file
|
|
@ -0,0 +1,97 @@
|
|||
use self::inner::ColorWithCustomValues;
|
||||
use wasm_bindgen::prelude::*;
|
||||
use wasm_bindgen_test::*;
|
||||
|
||||
#[wasm_bindgen(module = "tests/wasm/enums.js")]
|
||||
extern "C" {
|
||||
fn js_c_style_enum();
|
||||
fn js_c_style_enum_with_custom_values();
|
||||
fn js_handle_optional_enums(x: Option<Color>) -> Option<Color>;
|
||||
fn js_expect_enum(x: Color, y: Option<Color>);
|
||||
fn js_expect_enum_none(x: Option<Color>);
|
||||
fn js_renamed_enum(b: RenamedEnum);
|
||||
}
|
||||
|
||||
#[wasm_bindgen]
|
||||
#[derive(PartialEq, Debug)]
|
||||
pub enum Color {
|
||||
Green,
|
||||
Yellow,
|
||||
Red,
|
||||
}
|
||||
|
||||
pub mod inner {
|
||||
use wasm_bindgen::prelude::*;
|
||||
|
||||
#[wasm_bindgen]
|
||||
pub enum ColorWithCustomValues {
|
||||
Green = 21,
|
||||
Yellow = 34,
|
||||
Red = 2,
|
||||
}
|
||||
}
|
||||
|
||||
#[wasm_bindgen(js_name = JsRenamedEnum)]
|
||||
#[derive(Copy, Clone)]
|
||||
pub enum RenamedEnum {
|
||||
A = 10,
|
||||
B = 20,
|
||||
}
|
||||
|
||||
#[wasm_bindgen]
|
||||
pub fn enum_cycle(color: Color) -> Color {
|
||||
match color {
|
||||
Color::Green => Color::Yellow,
|
||||
Color::Yellow => Color::Red,
|
||||
Color::Red => Color::Green,
|
||||
}
|
||||
}
|
||||
|
||||
#[wasm_bindgen]
|
||||
pub fn enum_with_custom_values_cycle(color: ColorWithCustomValues) -> ColorWithCustomValues {
|
||||
match color {
|
||||
ColorWithCustomValues::Green => ColorWithCustomValues::Yellow,
|
||||
ColorWithCustomValues::Yellow => ColorWithCustomValues::Red,
|
||||
ColorWithCustomValues::Red => ColorWithCustomValues::Green,
|
||||
}
|
||||
}
|
||||
|
||||
#[wasm_bindgen_test]
|
||||
fn c_style_enum() {
|
||||
js_c_style_enum();
|
||||
}
|
||||
|
||||
#[wasm_bindgen_test]
|
||||
fn c_style_enum_with_custom_values() {
|
||||
js_c_style_enum_with_custom_values();
|
||||
}
|
||||
|
||||
#[wasm_bindgen]
|
||||
pub fn handle_optional_enums(x: Option<Color>) -> Option<Color> {
|
||||
x
|
||||
}
|
||||
|
||||
#[wasm_bindgen_test]
|
||||
fn test_optional_enums() {
|
||||
use self::Color::*;
|
||||
|
||||
assert_eq!(js_handle_optional_enums(None), None);
|
||||
assert_eq!(js_handle_optional_enums(Some(Green)), Some(Green));
|
||||
assert_eq!(js_handle_optional_enums(Some(Yellow)), Some(Yellow));
|
||||
assert_eq!(js_handle_optional_enums(Some(Red)), Some(Red));
|
||||
}
|
||||
|
||||
#[wasm_bindgen_test]
|
||||
fn test_optional_enum_values() {
|
||||
use self::Color::*;
|
||||
|
||||
js_expect_enum(Green, Some(Green));
|
||||
js_expect_enum(Yellow, Some(Yellow));
|
||||
js_expect_enum(Red, Some(Red));
|
||||
js_expect_enum_none(None);
|
||||
}
|
||||
|
||||
#[wasm_bindgen_test]
|
||||
fn test_renamed_enum() {
|
||||
js_renamed_enum(RenamedEnum::B);
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue