Как использовать #[wasm_bindgen] с псевдонимами типов?
Что бы я хотел сделать:
#[wasm_bindgen]
pub type ParseError = parserange::Error;
Но компилятор Rust жалуется:
error: #[wasm_bindgen] can only be applied to a function, struct, enum, impl, or extern block
--> src/lib.rs:89:1
|
89 | pub type ParseError = parserange::Error;
Я не хочу добавлять атрибут #[wasm-bindgen] в
parserange.rs
потому что он находится в отдельной библиотеке, которая не строится с помощью wasm.
Есть ли обходной путь?
1 ответ
Обходной путь - заключить в структуру кортежа для создания нового типа. Обратной стороной является то, что все функции, определенные на
parserange::Error
который вы хотите использовать, необходимо будет переопределить для вызова функции подобъекта ошибки. Тем не менее, у этого есть все преимущества создания нового типа, например, экспорт через wasm_bindgen или реализация трейтов для типа, определенного в другом ящике. Более подробную информацию можно найти здесь