@@ -580,7 +580,7 @@ impl ToTokens for ast::ImportEnum {
580
580
fn to_tokens ( & self , tokens : & mut TokenStream ) {
581
581
let vis = & self . vis ;
582
582
let name = & self . name ;
583
- let expect_string = format ! ( "attempted to convert invalid JSValue into {} " , name) ;
583
+ let expect_string = format ! ( "attempted to convert invalid {} into JSValue " , name) ;
584
584
let variants = & self . variants ;
585
585
let variant_strings = & self . variant_values ;
586
586
let attrs = & self . rust_attrs ;
@@ -613,6 +613,8 @@ impl ToTokens for ast::ImportEnum {
613
613
#( #attrs) *
614
614
#vis enum #name {
615
615
#( #variants = #variant_indexes_ref, ) *
616
+ #[ doc( hidden) ]
617
+ __Nonexhaustive,
616
618
}
617
619
618
620
impl #name {
@@ -647,14 +649,15 @@ impl ToTokens for ast::ImportEnum {
647
649
js: Self :: Abi ,
648
650
extra: & mut :: wasm_bindgen:: convert:: Stack ,
649
651
) -> Self {
650
- #name:: from_js_value( & :: wasm_bindgen:: JsValue :: from_abi( js, extra) ) . expect ( #expect_string )
652
+ #name:: from_js_value( & :: wasm_bindgen:: JsValue :: from_abi( js, extra) ) . unwrap_or ( #name :: __Nonexhaustive )
651
653
}
652
654
}
653
655
654
656
impl From <#name> for :: wasm_bindgen:: JsValue {
655
657
fn from( obj: #name) -> :: wasm_bindgen:: JsValue {
656
658
match obj {
657
- #( #variant_paths_ref => :: wasm_bindgen:: JsValue :: from_str( #variant_strings) ) , *
659
+ #( #variant_paths_ref => :: wasm_bindgen:: JsValue :: from_str( #variant_strings) , ) *
660
+ #name:: __Nonexhaustive => panic!( #expect_string) ,
658
661
}
659
662
}
660
663
}
0 commit comments