Coverage Report

Created: 2026-04-24 07:45

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/wasm-tools/crates/wast/src/lib.rs
Line
Count
Source
1
//! A crate for low-level parsing of the WebAssembly text formats: WAT and WAST.
2
//!
3
//! This crate is intended to be a low-level detail of the `wat` crate,
4
//! providing a low-level parsing API for parsing WebAssembly text format
5
//! structures. The API provided by this crate is very similar to
6
//! [`syn`](https://docs.rs/syn) and provides the ability to write customized
7
//! parsers which may be an extension to the core WebAssembly text format. For
8
//! more documentation see the [`parser`] module.
9
//!
10
//! # High-level Overview
11
//!
12
//! This crate provides a few major pieces of functionality
13
//!
14
//! * [`lexer`] - this is a raw lexer for the wasm text format. This is not
15
//!   customizable, but if you'd like to iterate over raw tokens this is the
16
//!   module for you. You likely won't use this much.
17
//!
18
//! * [`parser`] - this is the workhorse of this crate. The [`parser`] module
19
//!   provides the [`Parse`][] trait primarily and utilities
20
//!   around working with a [`Parser`](`parser::Parser`) to parse streams of
21
//!   tokens.
22
//!
23
//! * [`Module`](crate::core::Module) - this contains an Abstract Syntax Tree
24
//!   (AST) of the WebAssembly Text format (WAT) as well as the unofficial WAST
25
//!   format. This also has a [`Module::encode`](crate::core::Module::encode)
26
//!   method to emit a module in its binary form.
27
//!
28
//! # Stability and WebAssembly Features
29
//!
30
//! This crate provides support for many in-progress WebAssembly features such
31
//! as reference types, multi-value, etc. Be sure to check out the documentation
32
//! of the [`wast` crate](https://docs.rs/wast) for policy information on crate
33
//! stability vs WebAssembly Features. The tl;dr; version is that this crate
34
//! will issue semver-non-breaking releases which will break the parsing of the
35
//! text format. This crate, unlike `wast`, is expected to have numerous Rust
36
//! public API changes, all of which will be accompanied with a semver-breaking
37
//! release.
38
//!
39
//! # Compile-time Cargo features
40
//!
41
//! This crate has a `wasm-module` feature which is turned on by default which
42
//! includes all necessary support to parse full WebAssembly modules. If you
43
//! don't need this (for example you're parsing your own s-expression format)
44
//! then this feature can be disabled.
45
//!
46
//! This crate also has an off-by-default `dwarf` feature which enables using
47
//! [`core::EncodeOptions::dwarf`] to embed DWARF debugging information in generated
48
//! binaries.
49
//!
50
//! [`Parse`]: parser::Parse
51
//! [`LexError`]: lexer::LexError
52
53
#![deny(missing_docs, rustdoc::broken_intra_doc_links)]
54
#![cfg_attr(docsrs, feature(doc_cfg))]
55
56
/// A macro to create a custom keyword parser.
57
///
58
/// This macro is invoked in one of two forms:
59
///
60
/// ```
61
/// // keyword derived from the Rust identifier:
62
/// wast::custom_keyword!(foo);
63
///
64
/// // or an explicitly specified string representation of the keyword:
65
/// wast::custom_keyword!(my_keyword = "the-wasm-keyword");
66
/// ```
67
///
68
/// This can then be used to parse custom keyword for custom items, such as:
69
///
70
/// ```
71
/// use wast::parser::{Parser, Result, Parse};
72
///
73
/// struct InlineModule<'a> {
74
///     inline_text: &'a str,
75
/// }
76
///
77
/// mod kw {
78
///     wast::custom_keyword!(inline);
79
/// }
80
///
81
/// // Parse an inline string module of the form:
82
/// //
83
/// //    (inline "(module (func))")
84
/// impl<'a> Parse<'a> for InlineModule<'a> {
85
///     fn parse(parser: Parser<'a>) -> Result<Self> {
86
///         parser.parse::<kw::inline>()?;
87
///         Ok(InlineModule {
88
///             inline_text: parser.parse()?,
89
///         })
90
///     }
91
/// }
92
/// ```
93
///
94
/// Note that the keyword name can only start with a lower-case letter, i.e. 'a'..'z'.
95
#[macro_export]
96
macro_rules! custom_keyword {
97
    ($name:ident) => {
98
        $crate::custom_keyword!($name = stringify!($name));
99
    };
100
    ($name:ident = $kw:expr) => {
101
        #[allow(non_camel_case_types)]
102
        #[allow(missing_docs)]
103
        #[derive(Debug, Copy, Clone)]
104
        pub struct $name(#[allow(dead_code)] pub $crate::token::Span);
105
106
        impl<'a> $crate::parser::Parse<'a> for $name {
107
6.93M
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
6.93M
                parser.step(|c| {
109
6.93M
                    if let Some((kw, rest)) = c.keyword()? {
110
0
                        if kw == $kw {
111
6.93M
                            return Ok(($name(c.cur_span()), rest));
112
4
                        }
113
2
                    }
114
6
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
6.93M
                })
Unexecuted instantiation: <wast::kw::after as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::assert_malformed as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::assert_malformed_custom as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::before as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::binary as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::block as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::borrow as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::assert_return as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::assert_trap as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::assert_unlinkable as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::assert_suspension as wast::parser::Parse>::parse::{closure#0}
<wast::kw::catch as wast::parser::Parse>::parse::{closure#0}
Line
Count
Source
108
36.7k
                parser.step(|c| {
109
36.7k
                    if let Some((kw, rest)) = c.keyword()? {
110
36.7k
                        if kw == $kw {
111
36.7k
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
36.7k
                })
<wast::kw::catch_ref as wast::parser::Parse>::parse::{closure#0}
Line
Count
Source
108
228
                parser.step(|c| {
109
228
                    if let Some((kw, rest)) = c.keyword()? {
110
228
                        if kw == $kw {
111
228
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
228
                })
Unexecuted instantiation: <wast::kw::contref as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::component as wast::parser::Parse>::parse::{closure#0}
<wast::kw::data as wast::parser::Parse>::parse::{closure#0}
Line
Count
Source
108
20.0k
                parser.step(|c| {
109
20.0k
                    if let Some((kw, rest)) = c.keyword()? {
110
20.0k
                        if kw == $kw {
111
20.0k
                            return Ok(($name(c.cur_span()), rest));
112
4
                        }
113
1
                    }
114
5
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
20.0k
                })
<wast::kw::declare as wast::parser::Parse>::parse::{closure#0}
Line
Count
Source
108
4.73k
                parser.step(|c| {
109
4.73k
                    if let Some((kw, rest)) = c.keyword()? {
110
4.73k
                        if kw == $kw {
111
4.73k
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
4.73k
                })
Unexecuted instantiation: <wast::kw::delegate as wast::parser::Parse>::parse::{closure#0}
<wast::kw::catch_all as wast::parser::Parse>::parse::{closure#0}
Line
Count
Source
108
91.4k
                parser.step(|c| {
109
91.4k
                    if let Some((kw, rest)) = c.keyword()? {
110
91.4k
                        if kw == $kw {
111
91.4k
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
91.4k
                })
<wast::kw::catch_all_ref as wast::parser::Parse>::parse::{closure#0}
Line
Count
Source
108
1.51k
                parser.step(|c| {
109
1.51k
                    if let Some((kw, rest)) = c.keyword()? {
110
1.51k
                        if kw == $kw {
111
1.51k
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
1.51k
                })
Unexecuted instantiation: <wast::kw::code as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::cont as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::descriptor as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::exact as wast::parser::Parse>::parse::{closure#0}
<wast::kw::tag as wast::parser::Parse>::parse::{closure#0}
Line
Count
Source
108
36.6k
                parser.step(|c| {
109
36.6k
                    if let Some((kw, rest)) = c.keyword()? {
110
36.6k
                        if kw == $kw {
111
36.6k
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
36.6k
                })
<wast::kw::exn as wast::parser::Parse>::parse::{closure#0}
Line
Count
Source
108
20.5k
                parser.step(|c| {
109
20.5k
                    if let Some((kw, rest)) = c.keyword()? {
110
20.5k
                        if kw == $kw {
111
20.5k
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
20.5k
                })
Unexecuted instantiation: <wast::kw::exnref as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::describes as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::do as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::dtor as wast::parser::Parse>::parse::{closure#0}
<wast::kw::elem as wast::parser::Parse>::parse::{closure#0}
Line
Count
Source
108
27.4k
                parser.step(|c| {
109
27.4k
                    if let Some((kw, rest)) = c.keyword()? {
110
27.4k
                        if kw == $kw {
111
27.4k
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
27.4k
                })
Unexecuted instantiation: <wast::kw::end as wast::parser::Parse>::parse::{closure#0}
<wast::kw::export as wast::parser::Parse>::parse::{closure#0}
Line
Count
Source
108
49.3k
                parser.step(|c| {
109
49.3k
                    if let Some((kw, rest)) = c.keyword()? {
110
49.3k
                        if kw == $kw {
111
49.3k
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
49.3k
                })
<wast::kw::extern as wast::parser::Parse>::parse::{closure#0}
Line
Count
Source
108
44.7k
                parser.step(|c| {
109
44.7k
                    if let Some((kw, rest)) = c.keyword()? {
110
44.7k
                        if kw == $kw {
111
44.7k
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
44.7k
                })
Unexecuted instantiation: <wast::kw::f32x4 as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::f64 as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::f64x2 as wast::parser::Parse>::parse::{closure#0}
<wast::kw::field as wast::parser::Parse>::parse::{closure#0}
Line
Count
Source
108
625k
                parser.step(|c| {
109
625k
                    if let Some((kw, rest)) = c.keyword()? {
110
625k
                        if kw == $kw {
111
625k
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
625k
                })
Unexecuted instantiation: <wast::kw::alias as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::externref as wast::parser::Parse>::parse::{closure#0}
<wast::kw::eq as wast::parser::Parse>::parse::{closure#0}
Line
Count
Source
108
14.9k
                parser.step(|c| {
109
14.9k
                    if let Some((kw, rest)) = c.keyword()? {
110
14.9k
                        if kw == $kw {
111
14.9k
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
14.9k
                })
Unexecuted instantiation: <wast::kw::eqref as wast::parser::Parse>::parse::{closure#0}
<wast::kw::f32 as wast::parser::Parse>::parse::{closure#0}
Line
Count
Source
108
4
                parser.step(|c| {
109
4
                    if let Some((kw, rest)) = c.keyword()? {
110
4
                        if kw == $kw {
111
4
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
4
                })
Unexecuted instantiation: <wast::kw::first as wast::parser::Parse>::parse::{closure#0}
<wast::kw::func as wast::parser::Parse>::parse::{closure#0}
Line
Count
Source
108
370k
                parser.step(|c| {
109
370k
                    if let Some((kw, rest)) = c.keyword()? {
110
370k
                        if kw == $kw {
111
370k
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
370k
                })
Unexecuted instantiation: <wast::kw::i16x8 as wast::parser::Parse>::parse::{closure#0}
<wast::kw::i31 as wast::parser::Parse>::parse::{closure#0}
Line
Count
Source
108
6.38k
                parser.step(|c| {
109
6.38k
                    if let Some((kw, rest)) = c.keyword()? {
110
6.38k
                        if kw == $kw {
111
6.38k
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
6.38k
                })
Unexecuted instantiation: <wast::kw::i31ref as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::i32 as wast::parser::Parse>::parse::{closure#0}
<wast::kw::i32x4 as wast::parser::Parse>::parse::{closure#0}
Line
Count
Source
108
104k
                parser.step(|c| {
109
104k
                    if let Some((kw, rest)) = c.keyword()? {
110
104k
                        if kw == $kw {
111
104k
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
104k
                })
Unexecuted instantiation: <wast::kw::funcref as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::get as wast::parser::Parse>::parse::{closure#0}
<wast::kw::global as wast::parser::Parse>::parse::{closure#0}
Line
Count
Source
108
99.4k
                parser.step(|c| {
109
99.4k
                    if let Some((kw, rest)) = c.keyword()? {
110
99.4k
                        if kw == $kw {
111
99.4k
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
99.4k
                })
<wast::kw::i16 as wast::parser::Parse>::parse::{closure#0}
Line
Count
Source
108
153k
                parser.step(|c| {
109
153k
                    if let Some((kw, rest)) = c.keyword()? {
110
153k
                        if kw == $kw {
111
153k
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
153k
                })
<wast::kw::i64 as wast::parser::Parse>::parse::{closure#0}
Line
Count
Source
108
34.7k
                parser.step(|c| {
109
34.7k
                    if let Some((kw, rest)) = c.keyword()? {
110
34.7k
                        if kw == $kw {
111
34.7k
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
34.7k
                })
Unexecuted instantiation: <wast::kw::instantiate as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::interface as wast::parser::Parse>::parse::{closure#0}
<wast::kw::invoke as wast::parser::Parse>::parse::{closure#0}
Line
Count
Source
108
3
                parser.step(|c| {
109
3
                    if let Some((kw, rest)) = c.keyword()? {
110
2
                        if kw == $kw {
111
2
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
1
                    }
114
1
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
3
                })
Unexecuted instantiation: <wast::kw::item as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::i64x2 as wast::parser::Parse>::parse::{closure#0}
<wast::kw::i8 as wast::parser::Parse>::parse::{closure#0}
Line
Count
Source
108
499k
                parser.step(|c| {
109
499k
                    if let Some((kw, rest)) = c.keyword()? {
110
499k
                        if kw == $kw {
111
499k
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
499k
                })
Unexecuted instantiation: <wast::kw::i8x16 as wast::parser::Parse>::parse::{closure#0}
<wast::kw::import as wast::parser::Parse>::parse::{closure#0}
Line
Count
Source
108
64.5k
                parser.step(|c| {
109
64.5k
                    if let Some((kw, rest)) = c.keyword()? {
110
64.5k
                        if kw == $kw {
111
64.5k
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
64.5k
                })
Unexecuted instantiation: <wast::kw::instance as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::last as wast::parser::Parse>::parse::{closure#0}
<wast::kw::local as wast::parser::Parse>::parse::{closure#0}
Line
Count
Source
108
28.1k
                parser.step(|c| {
109
28.1k
                    if let Some((kw, rest)) = c.keyword()? {
110
28.1k
                        if kw == $kw {
111
28.1k
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
28.1k
                })
Unexecuted instantiation: <wast::kw::nan_canonical as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::nocont as wast::parser::Parse>::parse::{closure#0}
<wast::kw::nofunc as wast::parser::Parse>::parse::{closure#0}
Line
Count
Source
108
55.9k
                parser.step(|c| {
109
55.9k
                    if let Some((kw, rest)) = c.keyword()? {
110
55.9k
                        if kw == $kw {
111
55.9k
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
55.9k
                })
<wast::kw::noextern as wast::parser::Parse>::parse::{closure#0}
Line
Count
Source
108
49.3k
                parser.step(|c| {
109
49.3k
                    if let Some((kw, rest)) = c.keyword()? {
110
49.3k
                        if kw == $kw {
111
49.3k
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
49.3k
                })
<wast::kw::memory as wast::parser::Parse>::parse::{closure#0}
Line
Count
Source
108
36.6k
                parser.step(|c| {
109
36.6k
                    if let Some((kw, rest)) = c.keyword()? {
110
36.6k
                        if kw == $kw {
111
36.6k
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
36.6k
                })
<wast::kw::module as wast::parser::Parse>::parse::{closure#0}
Line
Count
Source
108
13.4k
                parser.step(|c| {
109
13.4k
                    if let Some((kw, rest)) = c.keyword()? {
110
13.4k
                        if kw == $kw {
111
13.4k
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
13.4k
                })
Unexecuted instantiation: <wast::kw::modulecode as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::nan_arithmetic as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::noexn as wast::parser::Parse>::parse::{closure#0}
<wast::kw::none as wast::parser::Parse>::parse::{closure#0}
Line
Count
Source
108
398k
                parser.step(|c| {
109
398k
                    if let Some((kw, rest)) = c.keyword()? {
110
398k
                        if kw == $kw {
111
398k
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
398k
                })
Unexecuted instantiation: <wast::kw::nullexnref as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::nullref as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::offset as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::on as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::outer as wast::parser::Parse>::parse::{closure#0}
<wast::kw::null as wast::parser::Parse>::parse::{closure#0}
Line
Count
Source
108
460k
                parser.step(|c| {
109
460k
                    if let Some((kw, rest)) = c.keyword()? {
110
460k
                        if kw == $kw {
111
460k
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
460k
                })
Unexecuted instantiation: <wast::kw::nullcontref as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::nullfuncref as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::nullexternref as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::own as wast::parser::Parse>::parse::{closure#0}
<wast::kw::else as wast::parser::Parse>::parse::{closure#0}
Line
Count
Source
108
3.00k
                parser.step(|c| {
109
3.00k
                    if let Some((kw, rest)) = c.keyword()? {
110
3.00k
                        if kw == $kw {
111
3.00k
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
3.00k
                })
Unexecuted instantiation: <wast::kw::if as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::loop as wast::parser::Parse>::parse::{closure#0}
<wast::kw::mut as wast::parser::Parse>::parse::{closure#0}
Line
Count
Source
108
664k
                parser.step(|c| {
109
664k
                    if let Some((kw, rest)) = c.keyword()? {
110
664k
                        if kw == $kw {
111
664k
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
664k
                })
<wast::kw::pagesize as wast::parser::Parse>::parse::{closure#0}
Line
Count
Source
108
15.6k
                parser.step(|c| {
109
15.6k
                    if let Some((kw, rest)) = c.keyword()? {
110
15.6k
                        if kw == $kw {
111
15.6k
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
15.6k
                })
<wast::kw::param as wast::parser::Parse>::parse::{closure#0}
Line
Count
Source
108
233k
                parser.step(|c| {
109
233k
                    if let Some((kw, rest)) = c.keyword()? {
110
233k
                        if kw == $kw {
111
233k
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
233k
                })
Unexecuted instantiation: <wast::kw::parent as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::passive as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::quote as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::assert_exception as wast::parser::Parse>::parse::{closure#0}
<wast::kw::assert_exhaustion as wast::parser::Parse>::parse::{closure#0}
Line
Count
Source
108
1
                parser.step(|c| {
109
1
                    if let Some((kw, rest)) = c.keyword()? {
110
1
                        if kw == $kw {
111
1
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
1
                })
Unexecuted instantiation: <wast::kw::assert_invalid as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::assert_invalid_custom as wast::parser::Parse>::parse::{closure#0}
<wast::kw::type as wast::parser::Parse>::parse::{closure#0}
Line
Count
Source
108
811k
                parser.step(|c| {
109
811k
                    if let Some((kw, rest)) = c.keyword()? {
110
811k
                        if kw == $kw {
111
811k
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
811k
                })
<wast::kw::ref as wast::parser::Parse>::parse::{closure#0}
Line
Count
Source
108
467k
                parser.step(|c| {
109
467k
                    if let Some((kw, rest)) = c.keyword()? {
110
467k
                        if kw == $kw {
111
467k
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
467k
                })
Unexecuted instantiation: <wast::kw::acq_rel as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::rep as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::resource as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::resource_new as wast::parser::Parse>::parse::{closure#0}
<wast::kw::any as wast::parser::Parse>::parse::{closure#0}
Line
Count
Source
108
5.21k
                parser.step(|c| {
109
5.21k
                    if let Some((kw, rest)) = c.keyword()? {
110
5.21k
                        if kw == $kw {
111
5.21k
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
5.21k
                })
Unexecuted instantiation: <wast::kw::ref_func as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::ref_null as wast::parser::Parse>::parse::{closure#0}
<wast::kw::register as wast::parser::Parse>::parse::{closure#0}
Line
Count
Source
108
1
                parser.step(|c| {
109
1
                    if let Some((kw, rest)) = c.keyword()? {
110
1
                        if kw == $kw {
111
1
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
1
                })
<wast::kw::rec as wast::parser::Parse>::parse::{closure#0}
Line
Count
Source
108
58.5k
                parser.step(|c| {
109
58.5k
                    if let Some((kw, rest)) = c.keyword()? {
110
58.5k
                        if kw == $kw {
111
58.5k
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
58.5k
                })
Unexecuted instantiation: <wast::kw::resource_drop as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::resource_rep as wast::parser::Parse>::parse::{closure#0}
<wast::kw::sub as wast::parser::Parse>::parse::{closure#0}
Line
Count
Source
108
199k
                parser.step(|c| {
109
199k
                    if let Some((kw, rest)) = c.keyword()? {
110
199k
                        if kw == $kw {
111
199k
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
199k
                })
Unexecuted instantiation: <wast::kw::switch as wast::parser::Parse>::parse::{closure#0}
<wast::kw::final as wast::parser::Parse>::parse::{closure#0}
Line
Count
Source
108
14.2k
                parser.step(|c| {
109
14.2k
                    if let Some((kw, rest)) = c.keyword()? {
110
14.2k
                        if kw == $kw {
111
14.2k
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
14.2k
                })
<wast::kw::table as wast::parser::Parse>::parse::{closure#0}
Line
Count
Source
108
51.5k
                parser.step(|c| {
109
51.5k
                    if let Some((kw, rest)) = c.keyword()? {
110
51.5k
                        if kw == $kw {
111
51.5k
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
51.5k
                })
<wast::kw::then as wast::parser::Parse>::parse::{closure#0}
Line
Count
Source
108
31.7k
                parser.step(|c| {
109
31.7k
                    if let Some((kw, rest)) = c.keyword()? {
110
31.7k
                        if kw == $kw {
111
31.7k
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
31.7k
                })
<wast::kw::result as wast::parser::Parse>::parse::{closure#0}
Line
Count
Source
108
466k
                parser.step(|c| {
109
466k
                    if let Some((kw, rest)) = c.keyword()? {
110
466k
                        if kw == $kw {
111
466k
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
466k
                })
Unexecuted instantiation: <wast::kw::seq_cst as wast::parser::Parse>::parse::{closure#0}
<wast::kw::shared as wast::parser::Parse>::parse::{closure#0}
Line
Count
Source
108
164k
                parser.step(|c| {
109
164k
                    if let Some((kw, rest)) = c.keyword()? {
110
164k
                        if kw == $kw {
111
164k
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
164k
                })
<wast::kw::start as wast::parser::Parse>::parse::{closure#0}
Line
Count
Source
108
748
                parser.step(|c| {
109
748
                    if let Some((kw, rest)) = c.keyword()? {
110
748
                        if kw == $kw {
111
748
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
748
                })
Unexecuted instantiation: <wast::kw::try as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::s64 as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::u8 as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::u16 as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::u32 as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::v128 as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::value as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::s8 as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::s16 as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::s32 as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::u64 as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::char as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::float32 as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::float64 as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::variant as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::flags as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::case as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::record as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::string as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::bool_ as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::option as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::tuple as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::lift as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::lower as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::enum_ as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::string_utf8 as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::string_utf16 as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::list as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::map as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::error as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::canon as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::string_latin1_utf16 as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::core as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::core_type as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::gc as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::true_ as wast::parser::Parse>::parse::{closure#0}
<wast::kw::struct as wast::parser::Parse>::parse::{closure#0}
Line
Count
Source
108
96.0k
                parser.step(|c| {
109
96.0k
                    if let Some((kw, rest)) = c.keyword()? {
110
96.0k
                        if kw == $kw {
111
96.0k
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
96.0k
                })
Unexecuted instantiation: <wast::kw::structref as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::realloc as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::post_return as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::with as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::false_ as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::language as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::export_info as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::import_info as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::runtime_path as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::thread as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::anyref as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::sdk as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::processed_by as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::mem_info as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::needed as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::thread_spawn_ref as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::thread_spawn_indirect as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::task_cancel as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::thread_yield as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::subtask_drop as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::subtask_cancel as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::stream_new as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::thread_available_parallelism as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::backpressure_inc as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::backpressure_dec as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::task_return as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::stream_read as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::future_new as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::future_read as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::future_write as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::future_cancel_read as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::stream_write as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::stream_cancel_read as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::stream_cancel_write as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::stream_drop_readable as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::stream_drop_writable as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::future_cancel_write as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::future_drop_readable as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::wait as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::definition as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::async as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::callback as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::future_drop_writable as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::error_context_new as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::error_context_debug_message as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::error_context_drop as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::stream as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::future as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::waitable_set_drop as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::waitable_join as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::context_get as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::context_set as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::thread_index as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::error_context as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::waitable_set_new as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::waitable_set_wait as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::waitable_set_poll as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::thread_new_indirect as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::cancellable as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::thread_suspend_to_suspended as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::thread_suspend as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::thread_suspend_to as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::thread_unsuspend as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::thread_yield_to_suspended as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::arg as wast::parser::Parse>::parse::{closure#0}
<wast::kw::array as wast::parser::Parse>::parse::{closure#0}
Line
Count
Source
108
298k
                parser.step(|c| {
109
298k
                    if let Some((kw, rest)) = c.keyword()? {
110
298k
                        if kw == $kw {
111
298k
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
298k
                })
Unexecuted instantiation: <wast::kw::arrayref as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::core::custom::parse_sym_flags::flag as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::core::custom::parse_sym_flags::flag as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::core::custom::parse_sym_flags::flag as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::core::custom::parse_sym_flags::flag as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::core::custom::parse_sym_flags::flag as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::core::custom::parse_sym_flags::flag as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::core::custom::parse_sym_flags::flag as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::core::custom::parse_sym_flags::flag as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::core::custom::parse_sym_flags::flag as wast::parser::Parse>::parse::{closure#0}
116
6.93M
            }
Unexecuted instantiation: <wast::kw::after as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::assert_malformed as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::assert_malformed_custom as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::before as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::binary as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::block as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::borrow as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::assert_return as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::assert_trap as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::assert_unlinkable as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::assert_suspension as wast::parser::Parse>::parse
<wast::kw::catch as wast::parser::Parse>::parse
Line
Count
Source
107
36.7k
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
36.7k
                parser.step(|c| {
109
                    if let Some((kw, rest)) = c.keyword()? {
110
                        if kw == $kw {
111
                            return Ok(($name(c.cur_span()), rest));
112
                        }
113
                    }
114
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
                })
116
36.7k
            }
<wast::kw::catch_ref as wast::parser::Parse>::parse
Line
Count
Source
107
228
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
228
                parser.step(|c| {
109
                    if let Some((kw, rest)) = c.keyword()? {
110
                        if kw == $kw {
111
                            return Ok(($name(c.cur_span()), rest));
112
                        }
113
                    }
114
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
                })
116
228
            }
Unexecuted instantiation: <wast::kw::contref as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::component as wast::parser::Parse>::parse
<wast::kw::data as wast::parser::Parse>::parse
Line
Count
Source
107
20.0k
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
20.0k
                parser.step(|c| {
109
                    if let Some((kw, rest)) = c.keyword()? {
110
                        if kw == $kw {
111
                            return Ok(($name(c.cur_span()), rest));
112
                        }
113
                    }
114
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
                })
116
20.0k
            }
<wast::kw::declare as wast::parser::Parse>::parse
Line
Count
Source
107
4.73k
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
4.73k
                parser.step(|c| {
109
                    if let Some((kw, rest)) = c.keyword()? {
110
                        if kw == $kw {
111
                            return Ok(($name(c.cur_span()), rest));
112
                        }
113
                    }
114
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
                })
116
4.73k
            }
Unexecuted instantiation: <wast::kw::delegate as wast::parser::Parse>::parse
<wast::kw::catch_all as wast::parser::Parse>::parse
Line
Count
Source
107
91.4k
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
91.4k
                parser.step(|c| {
109
                    if let Some((kw, rest)) = c.keyword()? {
110
                        if kw == $kw {
111
                            return Ok(($name(c.cur_span()), rest));
112
                        }
113
                    }
114
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
                })
116
91.4k
            }
<wast::kw::catch_all_ref as wast::parser::Parse>::parse
Line
Count
Source
107
1.51k
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
1.51k
                parser.step(|c| {
109
                    if let Some((kw, rest)) = c.keyword()? {
110
                        if kw == $kw {
111
                            return Ok(($name(c.cur_span()), rest));
112
                        }
113
                    }
114
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
                })
116
1.51k
            }
Unexecuted instantiation: <wast::kw::code as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::cont as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::descriptor as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::exact as wast::parser::Parse>::parse
<wast::kw::tag as wast::parser::Parse>::parse
Line
Count
Source
107
36.6k
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
36.6k
                parser.step(|c| {
109
                    if let Some((kw, rest)) = c.keyword()? {
110
                        if kw == $kw {
111
                            return Ok(($name(c.cur_span()), rest));
112
                        }
113
                    }
114
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
                })
116
36.6k
            }
<wast::kw::exn as wast::parser::Parse>::parse
Line
Count
Source
107
20.5k
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
20.5k
                parser.step(|c| {
109
                    if let Some((kw, rest)) = c.keyword()? {
110
                        if kw == $kw {
111
                            return Ok(($name(c.cur_span()), rest));
112
                        }
113
                    }
114
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
                })
116
20.5k
            }
Unexecuted instantiation: <wast::kw::exnref as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::describes as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::do as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::dtor as wast::parser::Parse>::parse
<wast::kw::elem as wast::parser::Parse>::parse
Line
Count
Source
107
27.4k
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
27.4k
                parser.step(|c| {
109
                    if let Some((kw, rest)) = c.keyword()? {
110
                        if kw == $kw {
111
                            return Ok(($name(c.cur_span()), rest));
112
                        }
113
                    }
114
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
                })
116
27.4k
            }
Unexecuted instantiation: <wast::kw::end as wast::parser::Parse>::parse
<wast::kw::export as wast::parser::Parse>::parse
Line
Count
Source
107
49.3k
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
49.3k
                parser.step(|c| {
109
                    if let Some((kw, rest)) = c.keyword()? {
110
                        if kw == $kw {
111
                            return Ok(($name(c.cur_span()), rest));
112
                        }
113
                    }
114
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
                })
116
49.3k
            }
<wast::kw::extern as wast::parser::Parse>::parse
Line
Count
Source
107
44.7k
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
44.7k
                parser.step(|c| {
109
                    if let Some((kw, rest)) = c.keyword()? {
110
                        if kw == $kw {
111
                            return Ok(($name(c.cur_span()), rest));
112
                        }
113
                    }
114
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
                })
116
44.7k
            }
Unexecuted instantiation: <wast::kw::f32x4 as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::f64 as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::f64x2 as wast::parser::Parse>::parse
<wast::kw::field as wast::parser::Parse>::parse
Line
Count
Source
107
625k
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
625k
                parser.step(|c| {
109
                    if let Some((kw, rest)) = c.keyword()? {
110
                        if kw == $kw {
111
                            return Ok(($name(c.cur_span()), rest));
112
                        }
113
                    }
114
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
                })
116
625k
            }
Unexecuted instantiation: <wast::kw::alias as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::externref as wast::parser::Parse>::parse
<wast::kw::eq as wast::parser::Parse>::parse
Line
Count
Source
107
14.9k
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
14.9k
                parser.step(|c| {
109
                    if let Some((kw, rest)) = c.keyword()? {
110
                        if kw == $kw {
111
                            return Ok(($name(c.cur_span()), rest));
112
                        }
113
                    }
114
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
                })
116
14.9k
            }
Unexecuted instantiation: <wast::kw::eqref as wast::parser::Parse>::parse
<wast::kw::f32 as wast::parser::Parse>::parse
Line
Count
Source
107
4
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
4
                parser.step(|c| {
109
                    if let Some((kw, rest)) = c.keyword()? {
110
                        if kw == $kw {
111
                            return Ok(($name(c.cur_span()), rest));
112
                        }
113
                    }
114
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
                })
116
4
            }
Unexecuted instantiation: <wast::kw::first as wast::parser::Parse>::parse
<wast::kw::func as wast::parser::Parse>::parse
Line
Count
Source
107
370k
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
370k
                parser.step(|c| {
109
                    if let Some((kw, rest)) = c.keyword()? {
110
                        if kw == $kw {
111
                            return Ok(($name(c.cur_span()), rest));
112
                        }
113
                    }
114
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
                })
116
370k
            }
Unexecuted instantiation: <wast::kw::i16x8 as wast::parser::Parse>::parse
<wast::kw::i31 as wast::parser::Parse>::parse
Line
Count
Source
107
6.38k
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
6.38k
                parser.step(|c| {
109
                    if let Some((kw, rest)) = c.keyword()? {
110
                        if kw == $kw {
111
                            return Ok(($name(c.cur_span()), rest));
112
                        }
113
                    }
114
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
                })
116
6.38k
            }
Unexecuted instantiation: <wast::kw::i31ref as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::i32 as wast::parser::Parse>::parse
<wast::kw::i32x4 as wast::parser::Parse>::parse
Line
Count
Source
107
104k
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
104k
                parser.step(|c| {
109
                    if let Some((kw, rest)) = c.keyword()? {
110
                        if kw == $kw {
111
                            return Ok(($name(c.cur_span()), rest));
112
                        }
113
                    }
114
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
                })
116
104k
            }
Unexecuted instantiation: <wast::kw::funcref as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::get as wast::parser::Parse>::parse
<wast::kw::global as wast::parser::Parse>::parse
Line
Count
Source
107
99.4k
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
99.4k
                parser.step(|c| {
109
                    if let Some((kw, rest)) = c.keyword()? {
110
                        if kw == $kw {
111
                            return Ok(($name(c.cur_span()), rest));
112
                        }
113
                    }
114
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
                })
116
99.4k
            }
<wast::kw::i16 as wast::parser::Parse>::parse
Line
Count
Source
107
153k
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
153k
                parser.step(|c| {
109
                    if let Some((kw, rest)) = c.keyword()? {
110
                        if kw == $kw {
111
                            return Ok(($name(c.cur_span()), rest));
112
                        }
113
                    }
114
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
                })
116
153k
            }
<wast::kw::i64 as wast::parser::Parse>::parse
Line
Count
Source
107
34.7k
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
34.7k
                parser.step(|c| {
109
                    if let Some((kw, rest)) = c.keyword()? {
110
                        if kw == $kw {
111
                            return Ok(($name(c.cur_span()), rest));
112
                        }
113
                    }
114
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
                })
116
34.7k
            }
Unexecuted instantiation: <wast::kw::instantiate as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::interface as wast::parser::Parse>::parse
<wast::kw::invoke as wast::parser::Parse>::parse
Line
Count
Source
107
3
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
3
                parser.step(|c| {
109
                    if let Some((kw, rest)) = c.keyword()? {
110
                        if kw == $kw {
111
                            return Ok(($name(c.cur_span()), rest));
112
                        }
113
                    }
114
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
                })
116
3
            }
Unexecuted instantiation: <wast::kw::item as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::i64x2 as wast::parser::Parse>::parse
<wast::kw::i8 as wast::parser::Parse>::parse
Line
Count
Source
107
499k
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
499k
                parser.step(|c| {
109
                    if let Some((kw, rest)) = c.keyword()? {
110
                        if kw == $kw {
111
                            return Ok(($name(c.cur_span()), rest));
112
                        }
113
                    }
114
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
                })
116
499k
            }
Unexecuted instantiation: <wast::kw::i8x16 as wast::parser::Parse>::parse
<wast::kw::import as wast::parser::Parse>::parse
Line
Count
Source
107
64.5k
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
64.5k
                parser.step(|c| {
109
                    if let Some((kw, rest)) = c.keyword()? {
110
                        if kw == $kw {
111
                            return Ok(($name(c.cur_span()), rest));
112
                        }
113
                    }
114
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
                })
116
64.5k
            }
Unexecuted instantiation: <wast::kw::instance as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::last as wast::parser::Parse>::parse
<wast::kw::local as wast::parser::Parse>::parse
Line
Count
Source
107
28.1k
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
28.1k
                parser.step(|c| {
109
                    if let Some((kw, rest)) = c.keyword()? {
110
                        if kw == $kw {
111
                            return Ok(($name(c.cur_span()), rest));
112
                        }
113
                    }
114
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
                })
116
28.1k
            }
Unexecuted instantiation: <wast::kw::nan_canonical as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::nocont as wast::parser::Parse>::parse
<wast::kw::nofunc as wast::parser::Parse>::parse
Line
Count
Source
107
55.9k
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
55.9k
                parser.step(|c| {
109
                    if let Some((kw, rest)) = c.keyword()? {
110
                        if kw == $kw {
111
                            return Ok(($name(c.cur_span()), rest));
112
                        }
113
                    }
114
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
                })
116
55.9k
            }
<wast::kw::noextern as wast::parser::Parse>::parse
Line
Count
Source
107
49.3k
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
49.3k
                parser.step(|c| {
109
                    if let Some((kw, rest)) = c.keyword()? {
110
                        if kw == $kw {
111
                            return Ok(($name(c.cur_span()), rest));
112
                        }
113
                    }
114
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
                })
116
49.3k
            }
<wast::kw::memory as wast::parser::Parse>::parse
Line
Count
Source
107
36.6k
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
36.6k
                parser.step(|c| {
109
                    if let Some((kw, rest)) = c.keyword()? {
110
                        if kw == $kw {
111
                            return Ok(($name(c.cur_span()), rest));
112
                        }
113
                    }
114
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
                })
116
36.6k
            }
<wast::kw::module as wast::parser::Parse>::parse
Line
Count
Source
107
13.4k
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
13.4k
                parser.step(|c| {
109
                    if let Some((kw, rest)) = c.keyword()? {
110
                        if kw == $kw {
111
                            return Ok(($name(c.cur_span()), rest));
112
                        }
113
                    }
114
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
                })
116
13.4k
            }
Unexecuted instantiation: <wast::kw::modulecode as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::nan_arithmetic as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::noexn as wast::parser::Parse>::parse
<wast::kw::none as wast::parser::Parse>::parse
Line
Count
Source
107
398k
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
398k
                parser.step(|c| {
109
                    if let Some((kw, rest)) = c.keyword()? {
110
                        if kw == $kw {
111
                            return Ok(($name(c.cur_span()), rest));
112
                        }
113
                    }
114
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
                })
116
398k
            }
Unexecuted instantiation: <wast::kw::nullexnref as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::nullref as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::offset as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::on as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::outer as wast::parser::Parse>::parse
<wast::kw::null as wast::parser::Parse>::parse
Line
Count
Source
107
460k
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
460k
                parser.step(|c| {
109
                    if let Some((kw, rest)) = c.keyword()? {
110
                        if kw == $kw {
111
                            return Ok(($name(c.cur_span()), rest));
112
                        }
113
                    }
114
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
                })
116
460k
            }
Unexecuted instantiation: <wast::kw::nullcontref as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::nullfuncref as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::nullexternref as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::own as wast::parser::Parse>::parse
<wast::kw::else as wast::parser::Parse>::parse
Line
Count
Source
107
3.00k
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
3.00k
                parser.step(|c| {
109
                    if let Some((kw, rest)) = c.keyword()? {
110
                        if kw == $kw {
111
                            return Ok(($name(c.cur_span()), rest));
112
                        }
113
                    }
114
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
                })
116
3.00k
            }
Unexecuted instantiation: <wast::kw::if as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::loop as wast::parser::Parse>::parse
<wast::kw::mut as wast::parser::Parse>::parse
Line
Count
Source
107
664k
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
664k
                parser.step(|c| {
109
                    if let Some((kw, rest)) = c.keyword()? {
110
                        if kw == $kw {
111
                            return Ok(($name(c.cur_span()), rest));
112
                        }
113
                    }
114
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
                })
116
664k
            }
<wast::kw::pagesize as wast::parser::Parse>::parse
Line
Count
Source
107
15.6k
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
15.6k
                parser.step(|c| {
109
                    if let Some((kw, rest)) = c.keyword()? {
110
                        if kw == $kw {
111
                            return Ok(($name(c.cur_span()), rest));
112
                        }
113
                    }
114
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
                })
116
15.6k
            }
<wast::kw::param as wast::parser::Parse>::parse
Line
Count
Source
107
233k
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
233k
                parser.step(|c| {
109
                    if let Some((kw, rest)) = c.keyword()? {
110
                        if kw == $kw {
111
                            return Ok(($name(c.cur_span()), rest));
112
                        }
113
                    }
114
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
                })
116
233k
            }
Unexecuted instantiation: <wast::kw::parent as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::passive as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::quote as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::assert_exception as wast::parser::Parse>::parse
<wast::kw::assert_exhaustion as wast::parser::Parse>::parse
Line
Count
Source
107
1
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
1
                parser.step(|c| {
109
                    if let Some((kw, rest)) = c.keyword()? {
110
                        if kw == $kw {
111
                            return Ok(($name(c.cur_span()), rest));
112
                        }
113
                    }
114
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
                })
116
1
            }
Unexecuted instantiation: <wast::kw::assert_invalid as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::assert_invalid_custom as wast::parser::Parse>::parse
<wast::kw::type as wast::parser::Parse>::parse
Line
Count
Source
107
811k
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
811k
                parser.step(|c| {
109
                    if let Some((kw, rest)) = c.keyword()? {
110
                        if kw == $kw {
111
                            return Ok(($name(c.cur_span()), rest));
112
                        }
113
                    }
114
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
                })
116
811k
            }
<wast::kw::ref as wast::parser::Parse>::parse
Line
Count
Source
107
467k
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
467k
                parser.step(|c| {
109
                    if let Some((kw, rest)) = c.keyword()? {
110
                        if kw == $kw {
111
                            return Ok(($name(c.cur_span()), rest));
112
                        }
113
                    }
114
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
                })
116
467k
            }
Unexecuted instantiation: <wast::kw::acq_rel as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::rep as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::resource as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::resource_new as wast::parser::Parse>::parse
<wast::kw::any as wast::parser::Parse>::parse
Line
Count
Source
107
5.21k
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
5.21k
                parser.step(|c| {
109
                    if let Some((kw, rest)) = c.keyword()? {
110
                        if kw == $kw {
111
                            return Ok(($name(c.cur_span()), rest));
112
                        }
113
                    }
114
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
                })
116
5.21k
            }
Unexecuted instantiation: <wast::kw::ref_func as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::ref_null as wast::parser::Parse>::parse
<wast::kw::register as wast::parser::Parse>::parse
Line
Count
Source
107
1
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
1
                parser.step(|c| {
109
                    if let Some((kw, rest)) = c.keyword()? {
110
                        if kw == $kw {
111
                            return Ok(($name(c.cur_span()), rest));
112
                        }
113
                    }
114
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
                })
116
1
            }
<wast::kw::rec as wast::parser::Parse>::parse
Line
Count
Source
107
58.5k
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
58.5k
                parser.step(|c| {
109
                    if let Some((kw, rest)) = c.keyword()? {
110
                        if kw == $kw {
111
                            return Ok(($name(c.cur_span()), rest));
112
                        }
113
                    }
114
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
                })
116
58.5k
            }
Unexecuted instantiation: <wast::kw::resource_drop as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::resource_rep as wast::parser::Parse>::parse
<wast::kw::sub as wast::parser::Parse>::parse
Line
Count
Source
107
199k
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
199k
                parser.step(|c| {
109
                    if let Some((kw, rest)) = c.keyword()? {
110
                        if kw == $kw {
111
                            return Ok(($name(c.cur_span()), rest));
112
                        }
113
                    }
114
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
                })
116
199k
            }
Unexecuted instantiation: <wast::kw::switch as wast::parser::Parse>::parse
<wast::kw::final as wast::parser::Parse>::parse
Line
Count
Source
107
14.2k
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
14.2k
                parser.step(|c| {
109
                    if let Some((kw, rest)) = c.keyword()? {
110
                        if kw == $kw {
111
                            return Ok(($name(c.cur_span()), rest));
112
                        }
113
                    }
114
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
                })
116
14.2k
            }
<wast::kw::table as wast::parser::Parse>::parse
Line
Count
Source
107
51.5k
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
51.5k
                parser.step(|c| {
109
                    if let Some((kw, rest)) = c.keyword()? {
110
                        if kw == $kw {
111
                            return Ok(($name(c.cur_span()), rest));
112
                        }
113
                    }
114
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
                })
116
51.5k
            }
<wast::kw::then as wast::parser::Parse>::parse
Line
Count
Source
107
31.7k
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
31.7k
                parser.step(|c| {
109
                    if let Some((kw, rest)) = c.keyword()? {
110
                        if kw == $kw {
111
                            return Ok(($name(c.cur_span()), rest));
112
                        }
113
                    }
114
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
                })
116
31.7k
            }
<wast::kw::result as wast::parser::Parse>::parse
Line
Count
Source
107
466k
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
466k
                parser.step(|c| {
109
                    if let Some((kw, rest)) = c.keyword()? {
110
                        if kw == $kw {
111
                            return Ok(($name(c.cur_span()), rest));
112
                        }
113
                    }
114
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
                })
116
466k
            }
Unexecuted instantiation: <wast::kw::seq_cst as wast::parser::Parse>::parse
<wast::kw::shared as wast::parser::Parse>::parse
Line
Count
Source
107
164k
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
164k
                parser.step(|c| {
109
                    if let Some((kw, rest)) = c.keyword()? {
110
                        if kw == $kw {
111
                            return Ok(($name(c.cur_span()), rest));
112
                        }
113
                    }
114
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
                })
116
164k
            }
<wast::kw::start as wast::parser::Parse>::parse
Line
Count
Source
107
748
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
748
                parser.step(|c| {
109
                    if let Some((kw, rest)) = c.keyword()? {
110
                        if kw == $kw {
111
                            return Ok(($name(c.cur_span()), rest));
112
                        }
113
                    }
114
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
                })
116
748
            }
Unexecuted instantiation: <wast::kw::try as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::s64 as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::u8 as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::u16 as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::u32 as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::v128 as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::value as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::s8 as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::s16 as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::s32 as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::u64 as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::char as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::float32 as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::float64 as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::variant as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::flags as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::case as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::record as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::string as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::bool_ as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::option as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::tuple as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::lift as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::lower as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::enum_ as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::string_utf8 as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::string_utf16 as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::list as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::map as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::error as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::canon as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::string_latin1_utf16 as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::core as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::core_type as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::gc as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::true_ as wast::parser::Parse>::parse
<wast::kw::struct as wast::parser::Parse>::parse
Line
Count
Source
107
96.0k
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
96.0k
                parser.step(|c| {
109
                    if let Some((kw, rest)) = c.keyword()? {
110
                        if kw == $kw {
111
                            return Ok(($name(c.cur_span()), rest));
112
                        }
113
                    }
114
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
                })
116
96.0k
            }
Unexecuted instantiation: <wast::kw::structref as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::realloc as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::post_return as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::with as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::false_ as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::language as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::export_info as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::import_info as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::runtime_path as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::thread as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::anyref as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::sdk as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::processed_by as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::mem_info as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::needed as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::thread_spawn_ref as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::thread_spawn_indirect as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::task_cancel as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::thread_yield as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::subtask_drop as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::subtask_cancel as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::stream_new as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::thread_available_parallelism as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::backpressure_inc as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::backpressure_dec as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::task_return as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::stream_read as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::future_new as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::future_read as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::future_write as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::future_cancel_read as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::stream_write as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::stream_cancel_read as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::stream_cancel_write as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::stream_drop_readable as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::stream_drop_writable as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::future_cancel_write as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::future_drop_readable as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::wait as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::definition as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::async as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::callback as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::future_drop_writable as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::error_context_new as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::error_context_debug_message as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::error_context_drop as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::stream as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::future as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::waitable_set_drop as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::waitable_join as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::context_get as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::context_set as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::thread_index as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::error_context as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::waitable_set_new as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::waitable_set_wait as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::waitable_set_poll as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::thread_new_indirect as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::cancellable as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::thread_suspend_to_suspended as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::thread_suspend as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::thread_suspend_to as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::thread_unsuspend as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::thread_yield_to_suspended as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::arg as wast::parser::Parse>::parse
<wast::kw::array as wast::parser::Parse>::parse
Line
Count
Source
107
298k
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
298k
                parser.step(|c| {
109
                    if let Some((kw, rest)) = c.keyword()? {
110
                        if kw == $kw {
111
                            return Ok(($name(c.cur_span()), rest));
112
                        }
113
                    }
114
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
                })
116
298k
            }
Unexecuted instantiation: <wast::kw::arrayref as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::core::custom::parse_sym_flags::flag as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::core::custom::parse_sym_flags::flag as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::core::custom::parse_sym_flags::flag as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::core::custom::parse_sym_flags::flag as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::core::custom::parse_sym_flags::flag as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::core::custom::parse_sym_flags::flag as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::core::custom::parse_sym_flags::flag as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::core::custom::parse_sym_flags::flag as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::core::custom::parse_sym_flags::flag as wast::parser::Parse>::parse
117
        }
118
119
        impl $crate::parser::Peek for $name {
120
31.3M
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
31.3M
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
29.5M
                    kw == $kw
123
                } else {
124
1.71M
                    false
125
                })
126
31.3M
            }
<wast::kw::assert_malformed as wast::parser::Peek>::peek
Line
Count
Source
120
10
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
10
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
9
                    kw == $kw
123
                } else {
124
1
                    false
125
                })
126
10
            }
<wast::kw::assert_malformed_custom as wast::parser::Peek>::peek
Line
Count
Source
120
10
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
10
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
9
                    kw == $kw
123
                } else {
124
1
                    false
125
                })
126
10
            }
Unexecuted instantiation: <wast::kw::before as wast::parser::Peek>::peek
<wast::kw::binary as wast::parser::Peek>::peek
Line
Count
Source
120
13.4k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
13.4k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
6
                    kw == $kw
123
                } else {
124
13.4k
                    false
125
                })
126
13.4k
            }
Unexecuted instantiation: <wast::kw::block as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::borrow as wast::parser::Peek>::peek
<wast::kw::assert_return as wast::parser::Peek>::peek
Line
Count
Source
120
7
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
7
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
6
                    kw == $kw
123
                } else {
124
1
                    false
125
                })
126
7
            }
<wast::kw::assert_trap as wast::parser::Peek>::peek
Line
Count
Source
120
7
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
7
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
6
                    kw == $kw
123
                } else {
124
1
                    false
125
                })
126
7
            }
<wast::kw::assert_unlinkable as wast::parser::Peek>::peek
Line
Count
Source
120
6
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
6
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
5
                    kw == $kw
123
                } else {
124
1
                    false
125
                })
126
6
            }
<wast::kw::assert_suspension as wast::parser::Peek>::peek
Line
Count
Source
120
6
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
6
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
5
                    kw == $kw
123
                } else {
124
1
                    false
125
                })
126
6
            }
<wast::kw::catch as wast::parser::Peek>::peek
Line
Count
Source
120
290k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
290k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
290k
                    kw == $kw
123
                } else {
124
0
                    false
125
                })
126
290k
            }
<wast::kw::catch_ref as wast::parser::Peek>::peek
Line
Count
Source
120
254k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
254k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
254k
                    kw == $kw
123
                } else {
124
0
                    false
125
                })
126
254k
            }
Unexecuted instantiation: <wast::kw::contref as wast::parser::Peek>::peek
<wast::kw::component as wast::parser::Peek>::peek
Line
Count
Source
120
2.22k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
2.22k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
848
                    kw == $kw
123
                } else {
124
1.37k
                    false
125
                })
126
2.22k
            }
<wast::kw::data as wast::parser::Peek>::peek
Line
Count
Source
120
45.4k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
45.4k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
45.1k
                    kw == $kw
123
                } else {
124
293
                    false
125
                })
126
45.4k
            }
<wast::kw::declare as wast::parser::Peek>::peek
Line
Count
Source
120
27.4k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
27.4k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
8.07k
                    kw == $kw
123
                } else {
124
19.3k
                    false
125
                })
126
27.4k
            }
Unexecuted instantiation: <wast::kw::delegate as wast::parser::Peek>::peek
<wast::kw::catch_all as wast::parser::Peek>::peek
Line
Count
Source
120
217k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
217k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
217k
                    kw == $kw
123
                } else {
124
0
                    false
125
                })
126
217k
            }
<wast::kw::catch_all_ref as wast::parser::Peek>::peek
Line
Count
Source
120
32.6k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
32.6k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
32.6k
                    kw == $kw
123
                } else {
124
0
                    false
125
                })
126
32.6k
            }
Unexecuted instantiation: <wast::kw::code as wast::parser::Peek>::peek
<wast::kw::cont as wast::parser::Peek>::peek
Line
Count
Source
120
1.09M
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
1.09M
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
1.09M
                    kw == $kw
123
                } else {
124
2
                    false
125
                })
126
1.09M
            }
<wast::kw::descriptor as wast::parser::Peek>::peek
Line
Count
Source
120
502k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
502k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
502k
                    kw == $kw
123
                } else {
124
2
                    false
125
                })
126
502k
            }
<wast::kw::exact as wast::parser::Peek>::peek
Line
Count
Source
120
110k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
110k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
108k
                    kw == $kw
123
                } else {
124
1.91k
                    false
125
                })
126
110k
            }
<wast::kw::tag as wast::parser::Peek>::peek
Line
Count
Source
120
37.3k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
37.3k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
37.0k
                    kw == $kw
123
                } else {
124
293
                    false
125
                })
126
37.3k
            }
<wast::kw::exn as wast::parser::Peek>::peek
Line
Count
Source
120
1.12M
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
1.12M
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
1.12M
                    kw == $kw
123
                } else {
124
0
                    false
125
                })
126
1.12M
            }
Unexecuted instantiation: <wast::kw::exnref as wast::parser::Peek>::peek
<wast::kw::describes as wast::parser::Peek>::peek
Line
Count
Source
120
502k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
502k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
502k
                    kw == $kw
123
                } else {
124
2
                    false
125
                })
126
502k
            }
Unexecuted instantiation: <wast::kw::do as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::dtor as wast::parser::Peek>::peek
<wast::kw::elem as wast::parser::Peek>::peek
Line
Count
Source
120
72.8k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
72.8k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
72.6k
                    kw == $kw
123
                } else {
124
293
                    false
125
                })
126
72.8k
            }
Unexecuted instantiation: <wast::kw::end as wast::parser::Peek>::peek
<wast::kw::export as wast::parser::Peek>::peek
Line
Count
Source
120
109k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
109k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
109k
                    kw == $kw
123
                } else {
124
293
                    false
125
                })
126
109k
            }
<wast::kw::extern as wast::parser::Peek>::peek
Line
Count
Source
120
1.18M
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
1.18M
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
1.18M
                    kw == $kw
123
                } else {
124
0
                    false
125
                })
126
1.18M
            }
Unexecuted instantiation: <wast::kw::f32x4 as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::f64 as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::f64x2 as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::field as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::externref as wast::parser::Peek>::peek
<wast::kw::eq as wast::parser::Peek>::peek
Line
Count
Source
120
1.09M
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
1.09M
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
1.09M
                    kw == $kw
123
                } else {
124
0
                    false
125
                })
126
1.09M
            }
Unexecuted instantiation: <wast::kw::eqref as wast::parser::Peek>::peek
<wast::kw::f32 as wast::parser::Peek>::peek
Line
Count
Source
120
4
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
4
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
4
                    kw == $kw
123
                } else {
124
0
                    false
125
                })
126
4
            }
Unexecuted instantiation: <wast::kw::first as wast::parser::Peek>::peek
<wast::kw::func as wast::parser::Peek>::peek
Line
Count
Source
120
2.23M
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
2.23M
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
2.23M
                    kw == $kw
123
                } else {
124
4.27k
                    false
125
                })
126
2.23M
            }
<wast::kw::i16x8 as wast::parser::Peek>::peek
Line
Count
Source
120
104k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
104k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
104k
                    kw == $kw
123
                } else {
124
0
                    false
125
                })
126
104k
            }
<wast::kw::i31 as wast::parser::Peek>::peek
Line
Count
Source
120
999k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
999k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
999k
                    kw == $kw
123
                } else {
124
0
                    false
125
                })
126
999k
            }
Unexecuted instantiation: <wast::kw::i31ref as wast::parser::Peek>::peek
<wast::kw::i32 as wast::parser::Peek>::peek
Line
Count
Source
120
114k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
114k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
70.1k
                    kw == $kw
123
                } else {
124
44.7k
                    false
125
                })
126
114k
            }
<wast::kw::i32x4 as wast::parser::Peek>::peek
Line
Count
Source
120
104k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
104k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
104k
                    kw == $kw
123
                } else {
124
0
                    false
125
                })
126
104k
            }
Unexecuted instantiation: <wast::kw::alias as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::funcref as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::get as wast::parser::Peek>::peek
<wast::kw::global as wast::parser::Peek>::peek
Line
Count
Source
120
220k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
220k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
220k
                    kw == $kw
123
                } else {
124
293
                    false
125
                })
126
220k
            }
<wast::kw::i16 as wast::parser::Peek>::peek
Line
Count
Source
120
403k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
403k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
346k
                    kw == $kw
123
                } else {
124
57.6k
                    false
125
                })
126
403k
            }
<wast::kw::i64 as wast::parser::Peek>::peek
Line
Count
Source
120
114k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
114k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
70.1k
                    kw == $kw
123
                } else {
124
44.7k
                    false
125
                })
126
114k
            }
Unexecuted instantiation: <wast::kw::instantiate as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::interface as wast::parser::Peek>::peek
<wast::kw::invoke as wast::parser::Peek>::peek
Line
Count
Source
120
9
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
9
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
8
                    kw == $kw
123
                } else {
124
1
                    false
125
                })
126
9
            }
<wast::kw::item as wast::parser::Peek>::peek
Line
Count
Source
120
462k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
462k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
462k
                    kw == $kw
123
                } else {
124
0
                    false
125
                })
126
462k
            }
Unexecuted instantiation: <wast::kw::i64x2 as wast::parser::Peek>::peek
<wast::kw::i8 as wast::parser::Peek>::peek
Line
Count
Source
120
903k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
903k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
845k
                    kw == $kw
123
                } else {
124
57.6k
                    false
125
                })
126
903k
            }
<wast::kw::i8x16 as wast::parser::Peek>::peek
Line
Count
Source
120
104k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
104k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
104k
                    kw == $kw
123
                } else {
124
0
                    false
125
                })
126
104k
            }
<wast::kw::import as wast::parser::Peek>::peek
Line
Count
Source
120
452k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
452k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
451k
                    kw == $kw
123
                } else {
124
293
                    false
125
                })
126
452k
            }
<wast::kw::instance as wast::parser::Peek>::peek
Line
Count
Source
120
8
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
8
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
3
                    kw == $kw
123
                } else {
124
5
                    false
125
                })
126
8
            }
Unexecuted instantiation: <wast::kw::last as wast::parser::Peek>::peek
<wast::kw::local as wast::parser::Peek>::peek
Line
Count
Source
120
191k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
191k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
98.5k
                    kw == $kw
123
                } else {
124
93.1k
                    false
125
                })
126
191k
            }
Unexecuted instantiation: <wast::kw::nan_canonical as wast::parser::Peek>::peek
<wast::kw::nocont as wast::parser::Peek>::peek
Line
Count
Source
120
791k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
791k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
791k
                    kw == $kw
123
                } else {
124
0
                    false
125
                })
126
791k
            }
<wast::kw::nofunc as wast::parser::Peek>::peek
Line
Count
Source
120
991k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
991k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
991k
                    kw == $kw
123
                } else {
124
0
                    false
125
                })
126
991k
            }
<wast::kw::noextern as wast::parser::Peek>::peek
Line
Count
Source
120
887k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
887k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
887k
                    kw == $kw
123
                } else {
124
0
                    false
125
                })
126
887k
            }
<wast::kw::memory as wast::parser::Peek>::peek
Line
Count
Source
120
260k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
260k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
260k
                    kw == $kw
123
                } else {
124
295
                    false
125
                })
126
260k
            }
<wast::kw::module as wast::parser::Peek>::peek
Line
Count
Source
120
15.9k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
15.9k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
14.2k
                    kw == $kw
123
                } else {
124
1.37k
                    false
125
                })
126
15.9k
            }
Unexecuted instantiation: <wast::kw::modulecode as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::nan_arithmetic as wast::parser::Peek>::peek
<wast::kw::noexn as wast::parser::Peek>::peek
Line
Count
Source
120
791k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
791k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
791k
                    kw == $kw
123
                } else {
124
0
                    false
125
                })
126
791k
            }
<wast::kw::none as wast::parser::Peek>::peek
Line
Count
Source
120
791k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
791k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
791k
                    kw == $kw
123
                } else {
124
0
                    false
125
                })
126
791k
            }
Unexecuted instantiation: <wast::kw::nullexnref as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::nullref as wast::parser::Peek>::peek
<wast::kw::offset as wast::parser::Peek>::peek
Line
Count
Source
120
23.6k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
23.6k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
23.6k
                    kw == $kw
123
                } else {
124
6
                    false
125
                })
126
23.6k
            }
Unexecuted instantiation: <wast::kw::on as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::outer as wast::parser::Peek>::peek
<wast::kw::null as wast::parser::Peek>::peek
Line
Count
Source
120
467k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
467k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
465k
                    kw == $kw
123
                } else {
124
1.74k
                    false
125
                })
126
467k
            }
Unexecuted instantiation: <wast::kw::nullcontref as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::nullfuncref as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::nullexternref as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::own as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::else as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::if as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::loop as wast::parser::Peek>::peek
<wast::kw::mut as wast::parser::Peek>::peek
Line
Count
Source
120
1.06M
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
1.06M
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
753k
                    kw == $kw
123
                } else {
124
311k
                    false
125
                })
126
1.06M
            }
<wast::kw::pagesize as wast::parser::Peek>::peek
Line
Count
Source
120
15.6k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
15.6k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
15.6k
                    kw == $kw
123
                } else {
124
1
                    false
125
                })
126
15.6k
            }
<wast::kw::param as wast::parser::Peek>::peek
Line
Count
Source
120
1.94M
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
1.94M
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
1.60M
                    kw == $kw
123
                } else {
124
341k
                    false
125
                })
126
1.94M
            }
Unexecuted instantiation: <wast::kw::parent as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::passive as wast::parser::Peek>::peek
<wast::kw::quote as wast::parser::Peek>::peek
Line
Count
Source
120
17
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
17
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
6
                    kw == $kw
123
                } else {
124
10
                    false
125
                })
126
17
            }
<wast::kw::assert_exception as wast::parser::Peek>::peek
Line
Count
Source
120
6
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
6
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
5
                    kw == $kw
123
                } else {
124
1
                    false
125
                })
126
6
            }
<wast::kw::assert_exhaustion as wast::parser::Peek>::peek
Line
Count
Source
120
7
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
7
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
6
                    kw == $kw
123
                } else {
124
1
                    false
125
                })
126
7
            }
<wast::kw::assert_invalid as wast::parser::Peek>::peek
Line
Count
Source
120
10
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
10
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
9
                    kw == $kw
123
                } else {
124
1
                    false
125
                })
126
10
            }
<wast::kw::assert_invalid_custom as wast::parser::Peek>::peek
Line
Count
Source
120
10
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
10
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
9
                    kw == $kw
123
                } else {
124
1
                    false
125
                })
126
10
            }
Unexecuted instantiation: <wast::kw::after as wast::parser::Peek>::peek
<wast::kw::type as wast::parser::Peek>::peek
Line
Count
Source
120
1.75M
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
1.75M
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
1.61M
                    kw == $kw
123
                } else {
124
132k
                    false
125
                })
126
1.75M
            }
<wast::kw::ref as wast::parser::Peek>::peek
Line
Count
Source
120
548k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
548k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
548k
                    kw == $kw
123
                } else {
124
6
                    false
125
                })
126
548k
            }
Unexecuted instantiation: <wast::kw::acq_rel as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::rep as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::resource as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::resource_new as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::ref_func as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::ref_null as wast::parser::Peek>::peek
<wast::kw::register as wast::parser::Peek>::peek
Line
Count
Source
120
10
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
10
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
9
                    kw == $kw
123
                } else {
124
1
                    false
125
                })
126
10
            }
<wast::kw::rec as wast::parser::Peek>::peek
Line
Count
Source
120
510k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
510k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
510k
                    kw == $kw
123
                } else {
124
293
                    false
125
                })
126
510k
            }
Unexecuted instantiation: <wast::kw::resource_drop as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::resource_rep as wast::parser::Peek>::peek
<wast::kw::sub as wast::parser::Peek>::peek
Line
Count
Source
120
502k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
502k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
502k
                    kw == $kw
123
                } else {
124
2
                    false
125
                })
126
502k
            }
Unexecuted instantiation: <wast::kw::switch as wast::parser::Peek>::peek
<wast::kw::final as wast::parser::Peek>::peek
Line
Count
Source
120
199k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
199k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
14.2k
                    kw == $kw
123
                } else {
124
185k
                    false
125
                })
126
199k
            }
<wast::kw::table as wast::parser::Peek>::peek
Line
Count
Source
120
311k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
311k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
310k
                    kw == $kw
123
                } else {
124
297
                    false
125
                })
126
311k
            }
<wast::kw::then as wast::parser::Peek>::peek
Line
Count
Source
120
63.9k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
63.9k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
63.9k
                    kw == $kw
123
                } else {
124
3
                    false
125
                })
126
63.9k
            }
<wast::kw::any as wast::parser::Peek>::peek
Line
Count
Source
120
1.09M
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
1.09M
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
1.09M
                    kw == $kw
123
                } else {
124
0
                    false
125
                })
126
1.09M
            }
<wast::kw::result as wast::parser::Peek>::peek
Line
Count
Source
120
1.56M
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
1.56M
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
1.21M
                    kw == $kw
123
                } else {
124
350k
                    false
125
                })
126
1.56M
            }
Unexecuted instantiation: <wast::kw::seq_cst as wast::parser::Peek>::peek
<wast::kw::shared as wast::parser::Peek>::peek
Line
Count
Source
120
760k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
760k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
712k
                    kw == $kw
123
                } else {
124
48.1k
                    false
125
                })
126
760k
            }
<wast::kw::start as wast::parser::Peek>::peek
Line
Count
Source
120
73.6k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
73.6k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
73.3k
                    kw == $kw
123
                } else {
124
293
                    false
125
                })
126
73.6k
            }
Unexecuted instantiation: <wast::kw::try as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::s64 as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::u8 as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::u16 as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::u32 as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::v128 as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::value as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::s8 as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::s16 as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::s32 as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::u64 as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::char as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::float32 as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::float64 as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::variant as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::flags as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::case as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::record as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::string as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::bool_ as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::option as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::tuple as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::lift as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::lower as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::enum_ as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::string_utf8 as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::string_utf16 as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::list as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::map as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::error as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::canon as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::string_latin1_utf16 as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::core as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::core_type as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::gc as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::true_ as wast::parser::Peek>::peek
<wast::kw::struct as wast::parser::Peek>::peek
Line
Count
Source
120
1.42M
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
1.42M
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
1.42M
                    kw == $kw
123
                } else {
124
2
                    false
125
                })
126
1.42M
            }
Unexecuted instantiation: <wast::kw::structref as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::realloc as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::post_return as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::with as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::false_ as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::language as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::export_info as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::import_info as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::runtime_path as wast::parser::Peek>::peek
<wast::kw::thread as wast::parser::Peek>::peek
Line
Count
Source
120
6
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
6
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
5
                    kw == $kw
123
                } else {
124
1
                    false
125
                })
126
6
            }
Unexecuted instantiation: <wast::kw::sdk as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::processed_by as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::mem_info as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::needed as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::thread_spawn_ref as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::thread_spawn_indirect as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::task_cancel as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::thread_yield as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::subtask_drop as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::subtask_cancel as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::stream_new as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::anyref as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::thread_available_parallelism as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::backpressure_inc as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::backpressure_dec as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::task_return as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::stream_read as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::future_new as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::future_read as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::future_write as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::future_cancel_read as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::stream_write as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::stream_cancel_read as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::stream_cancel_write as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::stream_drop_readable as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::stream_drop_writable as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::future_cancel_write as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::future_drop_readable as wast::parser::Peek>::peek
<wast::kw::wait as wast::parser::Peek>::peek
Line
Count
Source
120
6
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
6
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
5
                    kw == $kw
123
                } else {
124
1
                    false
125
                })
126
6
            }
<wast::kw::definition as wast::parser::Peek>::peek
Line
Count
Source
120
8
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
8
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
3
                    kw == $kw
123
                } else {
124
5
                    false
125
                })
126
8
            }
Unexecuted instantiation: <wast::kw::async as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::callback as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::future_drop_writable as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::error_context_new as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::error_context_debug_message as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::error_context_drop as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::stream as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::future as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::waitable_set_drop as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::waitable_join as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::context_get as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::context_set as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::thread_index as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::error_context as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::waitable_set_new as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::waitable_set_wait as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::waitable_set_poll as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::thread_new_indirect as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::cancellable as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::thread_suspend_to_suspended as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::thread_suspend as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::thread_suspend_to as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::thread_unsuspend as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::thread_yield_to_suspended as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::arg as wast::parser::Peek>::peek
<wast::kw::array as wast::parser::Peek>::peek
Line
Count
Source
120
1.31M
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
1.31M
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
1.31M
                    kw == $kw
123
                } else {
124
2
                    false
125
                })
126
1.31M
            }
Unexecuted instantiation: <wast::kw::arrayref as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::core::custom::parse_sym_flags::flag as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::core::custom::parse_sym_flags::flag as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::core::custom::parse_sym_flags::flag as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::core::custom::parse_sym_flags::flag as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::core::custom::parse_sym_flags::flag as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::core::custom::parse_sym_flags::flag as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::core::custom::parse_sym_flags::flag as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::core::custom::parse_sym_flags::flag as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::core::custom::parse_sym_flags::flag as wast::parser::Peek>::peek
127
128
8.93M
            fn display() -> &'static str {
129
8.93M
                concat!("`", $kw, "`")
130
8.93M
            }
<wast::kw::assert_malformed as wast::parser::Peek>::display
Line
Count
Source
128
10
            fn display() -> &'static str {
129
10
                concat!("`", $kw, "`")
130
10
            }
<wast::kw::assert_malformed_custom as wast::parser::Peek>::display
Line
Count
Source
128
10
            fn display() -> &'static str {
129
10
                concat!("`", $kw, "`")
130
10
            }
Unexecuted instantiation: <wast::kw::before as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::binary as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::block as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::borrow as wast::parser::Peek>::display
<wast::kw::assert_return as wast::parser::Peek>::display
Line
Count
Source
128
7
            fn display() -> &'static str {
129
7
                concat!("`", $kw, "`")
130
7
            }
<wast::kw::assert_trap as wast::parser::Peek>::display
Line
Count
Source
128
7
            fn display() -> &'static str {
129
7
                concat!("`", $kw, "`")
130
7
            }
<wast::kw::assert_unlinkable as wast::parser::Peek>::display
Line
Count
Source
128
6
            fn display() -> &'static str {
129
6
                concat!("`", $kw, "`")
130
6
            }
<wast::kw::assert_suspension as wast::parser::Peek>::display
Line
Count
Source
128
6
            fn display() -> &'static str {
129
6
                concat!("`", $kw, "`")
130
6
            }
Unexecuted instantiation: <wast::kw::catch as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::catch_ref as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::contref as wast::parser::Peek>::display
<wast::kw::component as wast::parser::Peek>::display
Line
Count
Source
128
10
            fn display() -> &'static str {
129
10
                concat!("`", $kw, "`")
130
10
            }
Unexecuted instantiation: <wast::kw::data as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::declare as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::delegate as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::catch_all as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::catch_all_ref as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::code as wast::parser::Peek>::display
<wast::kw::cont as wast::parser::Peek>::display
Line
Count
Source
128
569k
            fn display() -> &'static str {
129
569k
                concat!("`", $kw, "`")
130
569k
            }
Unexecuted instantiation: <wast::kw::descriptor as wast::parser::Peek>::display
<wast::kw::exact as wast::parser::Peek>::display
Line
Count
Source
128
88.5k
            fn display() -> &'static str {
129
88.5k
                concat!("`", $kw, "`")
130
88.5k
            }
Unexecuted instantiation: <wast::kw::tag as wast::parser::Peek>::display
<wast::kw::exn as wast::parser::Peek>::display
Line
Count
Source
128
569k
            fn display() -> &'static str {
129
569k
                concat!("`", $kw, "`")
130
569k
            }
Unexecuted instantiation: <wast::kw::exnref as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::describes as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::do as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::dtor as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::elem as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::end as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::export as wast::parser::Peek>::display
<wast::kw::extern as wast::parser::Peek>::display
Line
Count
Source
128
589k
            fn display() -> &'static str {
129
589k
                concat!("`", $kw, "`")
130
589k
            }
Unexecuted instantiation: <wast::kw::f32x4 as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::f64 as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::f64x2 as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::field as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::externref as wast::parser::Peek>::display
<wast::kw::eq as wast::parser::Peek>::display
Line
Count
Source
128
548k
            fn display() -> &'static str {
129
548k
                concat!("`", $kw, "`")
130
548k
            }
Unexecuted instantiation: <wast::kw::eqref as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::f32 as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::first as wast::parser::Peek>::display
<wast::kw::func as wast::parser::Peek>::display
Line
Count
Source
128
1.05M
            fn display() -> &'static str {
129
1.05M
                concat!("`", $kw, "`")
130
1.05M
            }
<wast::kw::i16x8 as wast::parser::Peek>::display
Line
Count
Source
128
104k
            fn display() -> &'static str {
129
104k
                concat!("`", $kw, "`")
130
104k
            }
<wast::kw::i31 as wast::parser::Peek>::display
Line
Count
Source
128
503k
            fn display() -> &'static str {
129
503k
                concat!("`", $kw, "`")
130
503k
            }
Unexecuted instantiation: <wast::kw::i31ref as wast::parser::Peek>::display
<wast::kw::i32 as wast::parser::Peek>::display
Line
Count
Source
128
29.2k
            fn display() -> &'static str {
129
29.2k
                concat!("`", $kw, "`")
130
29.2k
            }
Unexecuted instantiation: <wast::kw::i32x4 as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::alias as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::funcref as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::get as wast::parser::Peek>::display
<wast::kw::global as wast::parser::Peek>::display
Line
Count
Source
128
11.8k
            fn display() -> &'static str {
129
11.8k
                concat!("`", $kw, "`")
130
11.8k
            }
<wast::kw::i16 as wast::parser::Peek>::display
Line
Count
Source
128
249k
            fn display() -> &'static str {
129
249k
                concat!("`", $kw, "`")
130
249k
            }
<wast::kw::i64 as wast::parser::Peek>::display
Line
Count
Source
128
7.55k
            fn display() -> &'static str {
129
7.55k
                concat!("`", $kw, "`")
130
7.55k
            }
Unexecuted instantiation: <wast::kw::instantiate as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::interface as wast::parser::Peek>::display
<wast::kw::invoke as wast::parser::Peek>::display
Line
Count
Source
128
7
            fn display() -> &'static str {
129
7
                concat!("`", $kw, "`")
130
7
            }
Unexecuted instantiation: <wast::kw::item as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::i64x2 as wast::parser::Peek>::display
<wast::kw::i8 as wast::parser::Peek>::display
Line
Count
Source
128
403k
            fn display() -> &'static str {
129
403k
                concat!("`", $kw, "`")
130
403k
            }
<wast::kw::i8x16 as wast::parser::Peek>::display
Line
Count
Source
128
104k
            fn display() -> &'static str {
129
104k
                concat!("`", $kw, "`")
130
104k
            }
Unexecuted instantiation: <wast::kw::import as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::instance as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::last as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::local as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::nan_canonical as wast::parser::Peek>::display
<wast::kw::nocont as wast::parser::Peek>::display
Line
Count
Source
128
398k
            fn display() -> &'static str {
129
398k
                concat!("`", $kw, "`")
130
398k
            }
<wast::kw::nofunc as wast::parser::Peek>::display
Line
Count
Source
128
447k
            fn display() -> &'static str {
129
447k
                concat!("`", $kw, "`")
130
447k
            }
<wast::kw::noextern as wast::parser::Peek>::display
Line
Count
Source
128
398k
            fn display() -> &'static str {
129
398k
                concat!("`", $kw, "`")
130
398k
            }
<wast::kw::memory as wast::parser::Peek>::display
Line
Count
Source
128
40.1k
            fn display() -> &'static str {
129
40.1k
                concat!("`", $kw, "`")
130
40.1k
            }
<wast::kw::module as wast::parser::Peek>::display
Line
Count
Source
128
10
            fn display() -> &'static str {
129
10
                concat!("`", $kw, "`")
130
10
            }
Unexecuted instantiation: <wast::kw::modulecode as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::nan_arithmetic as wast::parser::Peek>::display
<wast::kw::noexn as wast::parser::Peek>::display
Line
Count
Source
128
398k
            fn display() -> &'static str {
129
398k
                concat!("`", $kw, "`")
130
398k
            }
Unexecuted instantiation: <wast::kw::none as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::nullexnref as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::nullref as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::offset as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::on as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::outer as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::null as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::nullcontref as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::nullfuncref as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::nullexternref as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::own as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::else as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::if as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::loop as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::mut as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::pagesize as wast::parser::Peek>::display
<wast::kw::param as wast::parser::Peek>::display
Line
Count
Source
128
466k
            fn display() -> &'static str {
129
466k
                concat!("`", $kw, "`")
130
466k
            }
Unexecuted instantiation: <wast::kw::parent as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::passive as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::quote as wast::parser::Peek>::display
<wast::kw::assert_exception as wast::parser::Peek>::display
Line
Count
Source
128
6
            fn display() -> &'static str {
129
6
                concat!("`", $kw, "`")
130
6
            }
<wast::kw::assert_exhaustion as wast::parser::Peek>::display
Line
Count
Source
128
6
            fn display() -> &'static str {
129
6
                concat!("`", $kw, "`")
130
6
            }
<wast::kw::assert_invalid as wast::parser::Peek>::display
Line
Count
Source
128
10
            fn display() -> &'static str {
129
10
                concat!("`", $kw, "`")
130
10
            }
<wast::kw::assert_invalid_custom as wast::parser::Peek>::display
Line
Count
Source
128
10
            fn display() -> &'static str {
129
10
                concat!("`", $kw, "`")
130
10
            }
Unexecuted instantiation: <wast::kw::after as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::type as wast::parser::Peek>::display
<wast::kw::ref as wast::parser::Peek>::display
Line
Count
Source
128
2
            fn display() -> &'static str {
129
2
                concat!("`", $kw, "`")
130
2
            }
Unexecuted instantiation: <wast::kw::acq_rel as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::rep as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::resource as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::resource_new as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::ref_func as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::ref_null as wast::parser::Peek>::display
<wast::kw::register as wast::parser::Peek>::display
Line
Count
Source
128
9
            fn display() -> &'static str {
129
9
                concat!("`", $kw, "`")
130
9
            }
Unexecuted instantiation: <wast::kw::rec as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::resource_drop as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::resource_rep as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::sub as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::switch as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::final as wast::parser::Peek>::display
<wast::kw::table as wast::parser::Peek>::display
Line
Count
Source
128
47.6k
            fn display() -> &'static str {
129
47.6k
                concat!("`", $kw, "`")
130
47.6k
            }
Unexecuted instantiation: <wast::kw::then as wast::parser::Peek>::display
<wast::kw::any as wast::parser::Peek>::display
Line
Count
Source
128
563k
            fn display() -> &'static str {
129
563k
                concat!("`", $kw, "`")
130
563k
            }
Unexecuted instantiation: <wast::kw::result as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::seq_cst as wast::parser::Peek>::display
<wast::kw::shared as wast::parser::Peek>::display
Line
Count
Source
128
15.4k
            fn display() -> &'static str {
129
15.4k
                concat!("`", $kw, "`")
130
15.4k
            }
Unexecuted instantiation: <wast::kw::start as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::try as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::s64 as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::u8 as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::u16 as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::u32 as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::v128 as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::value as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::s8 as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::s16 as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::s32 as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::u64 as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::char as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::float32 as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::float64 as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::variant as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::flags as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::case as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::record as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::string as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::bool_ as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::option as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::tuple as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::lift as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::lower as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::enum_ as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::string_utf8 as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::string_utf16 as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::list as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::map as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::error as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::canon as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::string_latin1_utf16 as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::core as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::core_type as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::gc as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::true_ as wast::parser::Peek>::display
<wast::kw::struct as wast::parser::Peek>::display
Line
Count
Source
128
808k
            fn display() -> &'static str {
129
808k
                concat!("`", $kw, "`")
130
808k
            }
Unexecuted instantiation: <wast::kw::structref as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::realloc as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::post_return as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::with as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::false_ as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::language as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::export_info as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::import_info as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::runtime_path as wast::parser::Peek>::display
<wast::kw::thread as wast::parser::Peek>::display
Line
Count
Source
128
6
            fn display() -> &'static str {
129
6
                concat!("`", $kw, "`")
130
6
            }
Unexecuted instantiation: <wast::kw::sdk as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::processed_by as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::mem_info as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::needed as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::thread_spawn_ref as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::thread_spawn_indirect as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::task_cancel as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::thread_yield as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::subtask_drop as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::subtask_cancel as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::stream_new as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::anyref as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::thread_available_parallelism as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::backpressure_inc as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::backpressure_dec as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::task_return as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::stream_read as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::future_new as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::future_read as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::future_write as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::future_cancel_read as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::stream_write as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::stream_cancel_read as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::stream_cancel_write as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::stream_drop_readable as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::stream_drop_writable as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::future_cancel_write as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::future_drop_readable as wast::parser::Peek>::display
<wast::kw::wait as wast::parser::Peek>::display
Line
Count
Source
128
6
            fn display() -> &'static str {
129
6
                concat!("`", $kw, "`")
130
6
            }
Unexecuted instantiation: <wast::kw::definition as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::async as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::callback as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::future_drop_writable as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::error_context_new as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::error_context_debug_message as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::error_context_drop as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::stream as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::future as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::waitable_set_drop as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::waitable_join as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::context_get as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::context_set as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::thread_index as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::error_context as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::waitable_set_new as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::waitable_set_wait as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::waitable_set_poll as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::thread_new_indirect as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::cancellable as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::thread_suspend_to_suspended as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::thread_suspend as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::thread_suspend_to as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::thread_unsuspend as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::thread_yield_to_suspended as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::arg as wast::parser::Peek>::display
<wast::kw::array as wast::parser::Peek>::display
Line
Count
Source
128
510k
            fn display() -> &'static str {
129
510k
                concat!("`", $kw, "`")
130
510k
            }
Unexecuted instantiation: <wast::kw::arrayref as wast::parser::Peek>::display
Unexecuted instantiation: <wast::core::custom::parse_sym_flags::flag as wast::parser::Peek>::display
Unexecuted instantiation: <wast::core::custom::parse_sym_flags::flag as wast::parser::Peek>::display
Unexecuted instantiation: <wast::core::custom::parse_sym_flags::flag as wast::parser::Peek>::display
Unexecuted instantiation: <wast::core::custom::parse_sym_flags::flag as wast::parser::Peek>::display
Unexecuted instantiation: <wast::core::custom::parse_sym_flags::flag as wast::parser::Peek>::display
Unexecuted instantiation: <wast::core::custom::parse_sym_flags::flag as wast::parser::Peek>::display
Unexecuted instantiation: <wast::core::custom::parse_sym_flags::flag as wast::parser::Peek>::display
Unexecuted instantiation: <wast::core::custom::parse_sym_flags::flag as wast::parser::Peek>::display
Unexecuted instantiation: <wast::core::custom::parse_sym_flags::flag as wast::parser::Peek>::display
131
        }
132
    };
133
}
134
135
/// A macro for defining custom reserved symbols.
136
///
137
/// This is like `custom_keyword!` but for reserved symbols (`Token::Reserved`)
138
/// instead of keywords (`Token::Keyword`).
139
///
140
/// ```
141
/// use wast::parser::{Parser, Result, Parse};
142
///
143
/// // Define a custom reserved symbol, the "spaceship" operator: `<=>`.
144
/// wast::custom_reserved!(spaceship = "<=>");
145
///
146
/// /// A "three-way comparison" like `(<=> a b)` that returns -1 if `a` is less
147
/// /// than `b`, 0 if they're equal, and 1 if `a` is greater than `b`.
148
/// struct ThreeWayComparison<'a> {
149
///     lhs: wast::core::Expression<'a>,
150
///     rhs: wast::core::Expression<'a>,
151
/// }
152
///
153
/// impl<'a> Parse<'a> for ThreeWayComparison<'a> {
154
///     fn parse(parser: Parser<'a>) -> Result<Self> {
155
///         parser.parse::<spaceship>()?;
156
///         let lhs = parser.parse()?;
157
///         let rhs = parser.parse()?;
158
///         Ok(ThreeWayComparison { lhs, rhs })
159
///     }
160
/// }
161
/// ```
162
#[macro_export]
163
macro_rules! custom_reserved {
164
    ($name:ident) => {
165
        $crate::custom_reserved!($name = stringify!($name));
166
    };
167
    ($name:ident = $rsv:expr) => {
168
        #[allow(non_camel_case_types)]
169
        #[allow(missing_docs)]
170
        #[derive(Debug)]
171
        pub struct $name(pub $crate::token::Span);
172
173
        impl<'a> $crate::parser::Parse<'a> for $name {
174
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
175
                parser.step(|c| {
176
                    if let Some((rsv, rest)) = c.reserved()? {
177
                        if rsv == $rsv {
178
                            return Ok(($name(c.cur_span()), rest));
179
                        }
180
                    }
181
                    Err(c.error(concat!("expected reserved symbol `", $rsv, "`")))
182
                })
183
            }
184
        }
185
186
        impl $crate::parser::Peek for $name {
187
            fn peek(cursor: $crate::parser::Cursor<'_>) -> Result<bool> {
188
                if let Some((rsv, _rest)) = cursor.reserved()? {
189
                    Ok(rsv == $rsv)
190
                } else {
191
                    Ok(false)
192
                }
193
            }
194
195
            fn display() -> &'static str {
196
                concat!("`", $rsv, "`")
197
            }
198
        }
199
    };
200
}
201
202
/// A macro, like [`custom_keyword`], to create a type which can be used to
203
/// parse/peek annotation directives.
204
///
205
/// Note that when you're parsing custom annotations it can be somewhat tricky
206
/// due to the nature that most of them are skipped. You'll want to be sure to
207
/// consult the documentation of [`Parser::register_annotation`][register] when
208
/// using this macro.
209
///
210
/// # Examples
211
///
212
/// To see an example of how to use this macro, let's invent our own syntax for
213
/// the [producers section][section] which looks like:
214
///
215
/// ```wat
216
/// (@producer "wat" "1.0.2")
217
/// ```
218
///
219
/// Here, for simplicity, we'll assume everything is a `processed-by` directive,
220
/// but you could get much more fancy with this as well.
221
///
222
/// ```
223
/// # use wast::*;
224
/// # use wast::parser::*;
225
///
226
/// // First we define the custom annotation keyword we're using, and by
227
/// // convention we define it in an `annotation` module.
228
/// mod annotation {
229
///     wast::annotation!(producer);
230
/// }
231
///
232
/// struct Producer<'a> {
233
///     name: &'a str,
234
///     version: &'a str,
235
/// }
236
///
237
/// impl<'a> Parse<'a> for Producer<'a> {
238
///     fn parse(parser: Parser<'a>) -> Result<Self> {
239
///         // Remember that parser conventionally parse the *interior* of an
240
///         // s-expression, so we parse our `@producer` annotation and then we
241
///         // parse the payload of our annotation.
242
///         parser.parse::<annotation::producer>()?;
243
///         Ok(Producer {
244
///             name: parser.parse()?,
245
///             version: parser.parse()?,
246
///         })
247
///     }
248
/// }
249
/// ```
250
///
251
/// Note though that this is only half of the parser for annotations. The other
252
/// half is calling the [`register_annotation`][register] method at the right
253
/// time to ensure the parser doesn't automatically skip our `@producer`
254
/// directive. Note that we *can't* call it inside the `Parse for Producer`
255
/// definition because that's too late and the annotation would already have
256
/// been skipped.
257
///
258
/// Instead we'll need to call it from a higher level-parser before the
259
/// parenthesis have been parsed, like so:
260
///
261
/// ```
262
/// # use wast::*;
263
/// # use wast::parser::*;
264
/// struct Module<'a> {
265
///     fields: Vec<ModuleField<'a>>,
266
/// }
267
///
268
/// impl<'a> Parse<'a> for Module<'a> {
269
///     fn parse(parser: Parser<'a>) -> Result<Self> {
270
///         // .. parse module header here ...
271
///
272
///         // register our custom `@producer` annotation before we start
273
///         // parsing the parentheses of each field
274
///         let _r = parser.register_annotation("producer");
275
///
276
///         let mut fields = Vec::new();
277
///         while !parser.is_empty() {
278
///             fields.push(parser.parens(|p| p.parse())?);
279
///         }
280
///         Ok(Module { fields })
281
///     }
282
/// }
283
///
284
/// enum ModuleField<'a> {
285
///     Producer(Producer<'a>),
286
///     // ...
287
/// }
288
/// # struct Producer<'a>(&'a str);
289
/// # impl<'a> Parse<'a> for Producer<'a> {
290
/// #   fn parse(parser: Parser<'a>) -> Result<Self> { Ok(Producer(parser.parse()?)) }
291
/// # }
292
/// # mod annotation { wast::annotation!(producer); }
293
///
294
/// impl<'a> Parse<'a> for ModuleField<'a> {
295
///     fn parse(parser: Parser<'a>) -> Result<Self> {
296
///         // and here `peek` works and our delegated parsing works because the
297
///         // annotation has been registered.
298
///         if parser.peek::<annotation::producer>()? {
299
///             return Ok(ModuleField::Producer(parser.parse()?));
300
///         }
301
///
302
///         // .. typically we'd parse other module fields here...
303
///
304
///         Err(parser.error("unknown module field"))
305
///     }
306
/// }
307
/// ```
308
///
309
/// [register]: crate::parser::Parser::register_annotation
310
/// [section]: https://github.com/WebAssembly/tool-conventions/blob/master/ProducersSection.md
311
#[macro_export]
312
macro_rules! annotation {
313
    ($name:ident) => {
314
        $crate::annotation!($name = stringify!($name));
315
    };
316
    ($name:ident = $annotation:expr) => {
317
        #[allow(non_camel_case_types)]
318
        #[allow(missing_docs)]
319
        #[derive(Debug)]
320
        pub struct $name(pub $crate::token::Span);
321
322
        impl<'a> $crate::parser::Parse<'a> for $name {
323
6
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
324
6
                parser.step(|c| {
325
6
                    if let Some((a, rest)) = c.annotation()? {
326
6
                        if a == $annotation {
327
6
                            return Ok(($name(c.cur_span()), rest));
328
0
                        }
329
0
                    }
330
0
                    Err(c.error(concat!("expected annotation `@", $annotation, "`")))
331
6
                })
<wast::annotation::custom as wast::parser::Parse>::parse::{closure#0}
Line
Count
Source
324
4
                parser.step(|c| {
325
4
                    if let Some((a, rest)) = c.annotation()? {
326
4
                        if a == $annotation {
327
4
                            return Ok(($name(c.cur_span()), rest));
328
0
                        }
329
0
                    }
330
0
                    Err(c.error(concat!("expected annotation `@", $annotation, "`")))
331
4
                })
Unexecuted instantiation: <wast::annotation::name as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::annotation::producers as wast::parser::Parse>::parse::{closure#0}
<wast::annotation::dylink_0 as wast::parser::Parse>::parse::{closure#0}
Line
Count
Source
324
2
                parser.step(|c| {
325
2
                    if let Some((a, rest)) = c.annotation()? {
326
2
                        if a == $annotation {
327
2
                            return Ok(($name(c.cur_span()), rest));
328
0
                        }
329
0
                    }
330
0
                    Err(c.error(concat!("expected annotation `@", $annotation, "`")))
331
2
                })
Unexecuted instantiation: <wast::annotation::metadata_code_branch_hint as wast::parser::Parse>::parse::{closure#0}
332
6
            }
<wast::annotation::custom as wast::parser::Parse>::parse
Line
Count
Source
323
4
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
324
4
                parser.step(|c| {
325
                    if let Some((a, rest)) = c.annotation()? {
326
                        if a == $annotation {
327
                            return Ok(($name(c.cur_span()), rest));
328
                        }
329
                    }
330
                    Err(c.error(concat!("expected annotation `@", $annotation, "`")))
331
                })
332
4
            }
Unexecuted instantiation: <wast::annotation::name as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::annotation::producers as wast::parser::Parse>::parse
<wast::annotation::dylink_0 as wast::parser::Parse>::parse
Line
Count
Source
323
2
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
324
2
                parser.step(|c| {
325
                    if let Some((a, rest)) = c.annotation()? {
326
                        if a == $annotation {
327
                            return Ok(($name(c.cur_span()), rest));
328
                        }
329
                    }
330
                    Err(c.error(concat!("expected annotation `@", $annotation, "`")))
331
                })
332
2
            }
Unexecuted instantiation: <wast::annotation::metadata_code_branch_hint as wast::parser::Parse>::parse
333
        }
334
335
        impl $crate::parser::Peek for $name {
336
5.45M
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
337
5.45M
                Ok(if let Some((a, _rest)) = cursor.annotation()? {
338
66
                    a == $annotation
339
                } else {
340
5.45M
                    false
341
                })
342
5.45M
            }
<wast::annotation::name as wast::parser::Peek>::peek
Line
Count
Source
336
1.60M
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
337
1.60M
                Ok(if let Some((a, _rest)) = cursor.annotation()? {
338
4
                    a == $annotation
339
                } else {
340
1.60M
                    false
341
                })
342
1.60M
            }
<wast::annotation::producers as wast::parser::Peek>::peek
Line
Count
Source
336
669
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
337
669
                Ok(if let Some((a, _rest)) = cursor.annotation()? {
338
21
                    a == $annotation
339
                } else {
340
648
                    false
341
                })
342
669
            }
<wast::annotation::dylink_0 as wast::parser::Peek>::peek
Line
Count
Source
336
669
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
337
669
                Ok(if let Some((a, _rest)) = cursor.annotation()? {
338
21
                    a == $annotation
339
                } else {
340
648
                    false
341
                })
342
669
            }
<wast::annotation::custom as wast::parser::Peek>::peek
Line
Count
Source
336
684
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
337
684
                Ok(if let Some((a, _rest)) = cursor.annotation()? {
338
19
                    a == $annotation
339
                } else {
340
648
                    false
341
                })
342
684
            }
<wast::annotation::metadata_code_branch_hint as wast::parser::Peek>::peek
Line
Count
Source
336
3.84M
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
337
3.84M
                Ok(if let Some((a, _rest)) = cursor.annotation()? {
338
1
                    a == $annotation
339
                } else {
340
3.84M
                    false
341
                })
342
3.84M
            }
343
344
0
            fn display() -> &'static str {
345
0
                concat!("`@", $annotation, "`")
346
0
            }
Unexecuted instantiation: <wast::annotation::name as wast::parser::Peek>::display
Unexecuted instantiation: <wast::annotation::producers as wast::parser::Peek>::display
Unexecuted instantiation: <wast::annotation::dylink_0 as wast::parser::Peek>::display
Unexecuted instantiation: <wast::annotation::custom as wast::parser::Peek>::display
Unexecuted instantiation: <wast::annotation::metadata_code_branch_hint as wast::parser::Peek>::display
347
        }
348
    };
349
}
350
351
pub mod lexer;
352
pub mod parser;
353
pub mod token;
354
355
#[cfg(feature = "wasm-module")]
356
mod encode;
357
mod error;
358
#[cfg(feature = "wasm-module")]
359
mod gensym;
360
#[cfg(feature = "wasm-module")]
361
mod names;
362
pub use self::error::*;
363
364
#[cfg(feature = "wasm-module")]
365
macro_rules! id {
366
    ($($t:tt)*) => ($($t)*)
367
}
368
369
#[cfg(feature = "wasm-module")]
370
id! {
371
    mod wast;
372
    mod wat;
373
    pub use self::wast::*;
374
    pub use self::wat::*;
375
376
    // Support for core wasm parsing
377
    pub mod core;
378
379
    // Support for component model parsing
380
    #[cfg(feature = "component-model")]
381
    pub mod component;
382
    #[cfg(not(feature = "component-model"))]
383
    #[path = "component_disabled.rs"]
384
    pub mod component;
385
}
386
387
/// Common keyword used to parse WebAssembly text files.
388
pub mod kw {
389
    custom_keyword!(after);
390
    custom_keyword!(alias);
391
    custom_keyword!(any);
392
    custom_keyword!(anyref);
393
    custom_keyword!(arg);
394
    custom_keyword!(array);
395
    custom_keyword!(arrayref);
396
    custom_keyword!(assert_exception);
397
    custom_keyword!(assert_exhaustion);
398
    custom_keyword!(assert_invalid);
399
    custom_keyword!(assert_invalid_custom);
400
    custom_keyword!(assert_malformed);
401
    custom_keyword!(assert_malformed_custom);
402
    custom_keyword!(assert_return);
403
    custom_keyword!(assert_trap);
404
    custom_keyword!(assert_unlinkable);
405
    custom_keyword!(assert_suspension);
406
    custom_keyword!(before);
407
    custom_keyword!(binary);
408
    custom_keyword!(block);
409
    custom_keyword!(borrow);
410
    custom_keyword!(catch);
411
    custom_keyword!(catch_ref);
412
    custom_keyword!(catch_all);
413
    custom_keyword!(catch_all_ref);
414
    custom_keyword!(code);
415
    custom_keyword!(cont);
416
    custom_keyword!(contref);
417
    custom_keyword!(component);
418
    custom_keyword!(data);
419
    custom_keyword!(declare);
420
    custom_keyword!(delegate);
421
    custom_keyword!(descriptor);
422
    custom_keyword!(describes);
423
    custom_keyword!(r#do = "do");
424
    custom_keyword!(dtor);
425
    custom_keyword!(elem);
426
    custom_keyword!(end);
427
    custom_keyword!(exact);
428
    custom_keyword!(tag);
429
    custom_keyword!(exn);
430
    custom_keyword!(exnref);
431
    custom_keyword!(export);
432
    custom_keyword!(r#extern = "extern");
433
    custom_keyword!(externref);
434
    custom_keyword!(eq);
435
    custom_keyword!(eqref);
436
    custom_keyword!(f32);
437
    custom_keyword!(f32x4);
438
    custom_keyword!(f64);
439
    custom_keyword!(f64x2);
440
    custom_keyword!(field);
441
    custom_keyword!(first);
442
    custom_keyword!(func);
443
    custom_keyword!(funcref);
444
    custom_keyword!(get);
445
    custom_keyword!(global);
446
    custom_keyword!(i16);
447
    custom_keyword!(i16x8);
448
    custom_keyword!(i31);
449
    custom_keyword!(i31ref);
450
    custom_keyword!(i32);
451
    custom_keyword!(i32x4);
452
    custom_keyword!(i64);
453
    custom_keyword!(i64x2);
454
    custom_keyword!(i8);
455
    custom_keyword!(i8x16);
456
    custom_keyword!(import);
457
    custom_keyword!(instance);
458
    custom_keyword!(instantiate);
459
    custom_keyword!(interface);
460
    custom_keyword!(invoke);
461
    custom_keyword!(item);
462
    custom_keyword!(last);
463
    custom_keyword!(local);
464
    custom_keyword!(memory);
465
    custom_keyword!(module);
466
    custom_keyword!(modulecode);
467
    custom_keyword!(nan_arithmetic = "nan:arithmetic");
468
    custom_keyword!(nan_canonical = "nan:canonical");
469
    custom_keyword!(nocont);
470
    custom_keyword!(nofunc);
471
    custom_keyword!(noextern);
472
    custom_keyword!(noexn);
473
    custom_keyword!(none);
474
    custom_keyword!(null);
475
    custom_keyword!(nullcontref);
476
    custom_keyword!(nullfuncref);
477
    custom_keyword!(nullexternref);
478
    custom_keyword!(nullexnref);
479
    custom_keyword!(nullref);
480
    custom_keyword!(offset);
481
    custom_keyword!(on);
482
    custom_keyword!(outer);
483
    custom_keyword!(own);
484
    custom_keyword!(pagesize);
485
    custom_keyword!(param);
486
    custom_keyword!(parent);
487
    custom_keyword!(passive);
488
    custom_keyword!(quote);
489
    custom_keyword!(r#else = "else");
490
    custom_keyword!(r#if = "if");
491
    custom_keyword!(r#loop = "loop");
492
    custom_keyword!(r#mut = "mut");
493
    custom_keyword!(r#type = "type");
494
    custom_keyword!(r#ref = "ref");
495
    custom_keyword!(ref_func = "ref.func");
496
    custom_keyword!(ref_null = "ref.null");
497
    custom_keyword!(register);
498
    custom_keyword!(rec);
499
    custom_keyword!(acq_rel);
500
    custom_keyword!(rep);
501
    custom_keyword!(resource);
502
    custom_keyword!(resource_new = "resource.new");
503
    custom_keyword!(resource_drop = "resource.drop");
504
    custom_keyword!(resource_rep = "resource.rep");
505
    custom_keyword!(result);
506
    custom_keyword!(seq_cst);
507
    custom_keyword!(shared);
508
    custom_keyword!(start);
509
    custom_keyword!(sub);
510
    custom_keyword!(switch);
511
    custom_keyword!(r#final = "final");
512
    custom_keyword!(table);
513
    custom_keyword!(then);
514
    custom_keyword!(r#try = "try");
515
    custom_keyword!(v128);
516
    custom_keyword!(value);
517
    custom_keyword!(s8);
518
    custom_keyword!(s16);
519
    custom_keyword!(s32);
520
    custom_keyword!(s64);
521
    custom_keyword!(u8);
522
    custom_keyword!(u16);
523
    custom_keyword!(u32);
524
    custom_keyword!(u64);
525
    custom_keyword!(char);
526
    custom_keyword!(case);
527
    custom_keyword!(record);
528
    custom_keyword!(string);
529
    custom_keyword!(bool_ = "bool");
530
    custom_keyword!(float32);
531
    custom_keyword!(float64);
532
    custom_keyword!(variant);
533
    custom_keyword!(flags);
534
    custom_keyword!(option);
535
    custom_keyword!(tuple);
536
    custom_keyword!(list);
537
    custom_keyword!(map);
538
    custom_keyword!(error);
539
    custom_keyword!(canon);
540
    custom_keyword!(lift);
541
    custom_keyword!(lower);
542
    custom_keyword!(enum_ = "enum");
543
    custom_keyword!(string_utf8 = "string-encoding=utf8");
544
    custom_keyword!(string_utf16 = "string-encoding=utf16");
545
    custom_keyword!(string_latin1_utf16 = "string-encoding=latin1+utf16");
546
    custom_keyword!(r#struct = "struct");
547
    custom_keyword!(structref);
548
    custom_keyword!(realloc);
549
    custom_keyword!(post_return = "post-return");
550
    custom_keyword!(with);
551
    custom_keyword!(core);
552
    custom_keyword!(core_type = "core-type");
553
    custom_keyword!(gc);
554
    custom_keyword!(true_ = "true");
555
    custom_keyword!(false_ = "false");
556
    custom_keyword!(language);
557
    custom_keyword!(sdk);
558
    custom_keyword!(processed_by = "processed-by");
559
    custom_keyword!(mem_info = "mem-info");
560
    custom_keyword!(needed);
561
    custom_keyword!(export_info = "export-info");
562
    custom_keyword!(import_info = "import-info");
563
    custom_keyword!(runtime_path = "runtime-path");
564
    custom_keyword!(thread);
565
    custom_keyword!(thread_spawn_ref = "thread.spawn-ref");
566
    custom_keyword!(thread_spawn_indirect = "thread.spawn-indirect");
567
    custom_keyword!(thread_available_parallelism = "thread.available_parallelism");
568
    custom_keyword!(backpressure_inc = "backpressure.inc");
569
    custom_keyword!(backpressure_dec = "backpressure.dec");
570
    custom_keyword!(task_return = "task.return");
571
    custom_keyword!(task_cancel = "task.cancel");
572
    custom_keyword!(thread_yield = "thread.yield");
573
    custom_keyword!(subtask_drop = "subtask.drop");
574
    custom_keyword!(subtask_cancel = "subtask.cancel");
575
    custom_keyword!(stream_new = "stream.new");
576
    custom_keyword!(stream_read = "stream.read");
577
    custom_keyword!(stream_write = "stream.write");
578
    custom_keyword!(stream_cancel_read = "stream.cancel-read");
579
    custom_keyword!(stream_cancel_write = "stream.cancel-write");
580
    custom_keyword!(stream_drop_readable = "stream.drop-readable");
581
    custom_keyword!(stream_drop_writable = "stream.drop-writable");
582
    custom_keyword!(future_new = "future.new");
583
    custom_keyword!(future_read = "future.read");
584
    custom_keyword!(future_write = "future.write");
585
    custom_keyword!(future_cancel_read = "future.cancel-read");
586
    custom_keyword!(future_cancel_write = "future.cancel-write");
587
    custom_keyword!(future_drop_readable = "future.drop-readable");
588
    custom_keyword!(future_drop_writable = "future.drop-writable");
589
    custom_keyword!(error_context_new = "error-context.new");
590
    custom_keyword!(error_context_debug_message = "error-context.debug-message");
591
    custom_keyword!(error_context_drop = "error-context.drop");
592
    custom_keyword!(wait);
593
    custom_keyword!(definition);
594
    custom_keyword!(r#async = "async");
595
    custom_keyword!(callback);
596
    custom_keyword!(stream);
597
    custom_keyword!(future);
598
    custom_keyword!(error_context = "error-context");
599
    custom_keyword!(waitable_set_new = "waitable-set.new");
600
    custom_keyword!(waitable_set_wait = "waitable-set.wait");
601
    custom_keyword!(waitable_set_poll = "waitable-set.poll");
602
    custom_keyword!(waitable_set_drop = "waitable-set.drop");
603
    custom_keyword!(waitable_join = "waitable.join");
604
    custom_keyword!(context_get = "context.get");
605
    custom_keyword!(context_set = "context.set");
606
    custom_keyword!(thread_index = "thread.index");
607
    custom_keyword!(thread_new_indirect = "thread.new-indirect");
608
    custom_keyword!(thread_suspend_to_suspended = "thread.suspend-to-suspended");
609
    custom_keyword!(thread_suspend = "thread.suspend");
610
    custom_keyword!(thread_suspend_to = "thread.suspend-to");
611
    custom_keyword!(thread_unsuspend = "thread.unsuspend");
612
    custom_keyword!(thread_yield_to_suspended = "thread.yield-to-suspended");
613
    custom_keyword!(cancellable);
614
}
615
616
/// Common annotations used to parse WebAssembly text files.
617
pub mod annotation {
618
    annotation!(custom);
619
    annotation!(name);
620
    annotation!(producers);
621
    annotation!(dylink_0 = "dylink.0");
622
    annotation!(metadata_code_branch_hint = "metadata.code.branch_hint");
623
}