Vendor things
This commit is contained in:
parent
5deceec006
commit
977e3c17e5
19434 changed files with 10682014 additions and 0 deletions
61
third-party/vendor/wasm-bindgen-macro/src/lib.rs
vendored
Normal file
61
third-party/vendor/wasm-bindgen-macro/src/lib.rs
vendored
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
#![doc(html_root_url = "https://docs.rs/wasm-bindgen-macro/0.2")]
|
||||
|
||||
extern crate proc_macro;
|
||||
|
||||
use proc_macro::TokenStream;
|
||||
use quote::quote;
|
||||
|
||||
#[proc_macro_attribute]
|
||||
pub fn wasm_bindgen(attr: TokenStream, input: TokenStream) -> TokenStream {
|
||||
match wasm_bindgen_macro_support::expand(attr.into(), input.into()) {
|
||||
Ok(tokens) => {
|
||||
if cfg!(feature = "xxx_debug_only_print_generated_code") {
|
||||
println!("{}", tokens);
|
||||
}
|
||||
tokens.into()
|
||||
}
|
||||
Err(diagnostic) => (quote! { #diagnostic }).into(),
|
||||
}
|
||||
}
|
||||
|
||||
/// This macro takes a JS module as input and returns a URL that can be used to
|
||||
/// access it at runtime.
|
||||
///
|
||||
/// The module can be specified in a few ways:
|
||||
/// - You can use `inline_js = "..."` to create an inline JS file.
|
||||
/// - You can use `module = "/foo/bar"` to reference a file relative to the
|
||||
/// root of the crate the macro is invoked in.
|
||||
///
|
||||
/// The returned URL can be used for things like creating workers/worklets:
|
||||
/// ```no_run
|
||||
/// use web_sys::Worker;
|
||||
/// let worker = Worker::new(&wasm_bindgen::link_to!(module = "/src/worker.js"));
|
||||
/// ```
|
||||
#[proc_macro]
|
||||
pub fn link_to(input: TokenStream) -> TokenStream {
|
||||
match wasm_bindgen_macro_support::expand_link_to(input.into()) {
|
||||
Ok(tokens) => {
|
||||
if cfg!(feature = "xxx_debug_only_print_generated_code") {
|
||||
println!("{}", tokens);
|
||||
}
|
||||
tokens.into()
|
||||
}
|
||||
// This `String::clone` is here so that IDEs know this is supposed to be a
|
||||
// `String` and can keep type-checking the rest of the program even if the macro
|
||||
// fails.
|
||||
Err(diagnostic) => (quote! { String::clone(#diagnostic) }).into(),
|
||||
}
|
||||
}
|
||||
|
||||
#[proc_macro_attribute]
|
||||
pub fn __wasm_bindgen_class_marker(attr: TokenStream, input: TokenStream) -> TokenStream {
|
||||
match wasm_bindgen_macro_support::expand_class_marker(attr.into(), input.into()) {
|
||||
Ok(tokens) => {
|
||||
if cfg!(feature = "xxx_debug_only_print_generated_code") {
|
||||
println!("{}", tokens);
|
||||
}
|
||||
tokens.into()
|
||||
}
|
||||
Err(diagnostic) => (quote! { #diagnostic }).into(),
|
||||
}
|
||||
}
|
||||
1
third-party/vendor/wasm-bindgen-macro/src/worker.js
vendored
Normal file
1
third-party/vendor/wasm-bindgen-macro/src/worker.js
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
// This file is needed for the doctest of `crate::link_to`.
|
||||
Loading…
Add table
Add a link
Reference in a new issue