Coverage Report

Created: 2026-06-07 07:42

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
5.99M
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
5.99M
                parser.step(|c| {
109
5.99M
                    if let Some((kw, rest)) = c.keyword()? {
110
0
                        if kw == $kw {
111
5.99M
                            return Ok(($name(c.cur_span()), rest));
112
5
                        }
113
2
                    }
114
7
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
5.99M
                })
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
20.8k
                parser.step(|c| {
109
20.8k
                    if let Some((kw, rest)) = c.keyword()? {
110
20.8k
                        if kw == $kw {
111
20.8k
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
20.8k
                })
<wast::kw::catch_ref as wast::parser::Parse>::parse::{closure#0}
Line
Count
Source
108
30
                parser.step(|c| {
109
30
                    if let Some((kw, rest)) = c.keyword()? {
110
30
                        if kw == $kw {
111
30
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
30
                })
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
14.6k
                parser.step(|c| {
109
14.6k
                    if let Some((kw, rest)) = c.keyword()? {
110
14.6k
                        if kw == $kw {
111
14.6k
                            return Ok(($name(c.cur_span()), rest));
112
5
                        }
113
1
                    }
114
6
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
14.6k
                })
<wast::kw::declare as wast::parser::Parse>::parse::{closure#0}
Line
Count
Source
108
2.63k
                parser.step(|c| {
109
2.63k
                    if let Some((kw, rest)) = c.keyword()? {
110
2.63k
                        if kw == $kw {
111
2.63k
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
2.63k
                })
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
283k
                parser.step(|c| {
109
283k
                    if let Some((kw, rest)) = c.keyword()? {
110
283k
                        if kw == $kw {
111
283k
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
283k
                })
<wast::kw::catch_all_ref as wast::parser::Parse>::parse::{closure#0}
Line
Count
Source
108
630
                parser.step(|c| {
109
630
                    if let Some((kw, rest)) = c.keyword()? {
110
630
                        if kw == $kw {
111
630
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
630
                })
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
23.3k
                parser.step(|c| {
109
23.3k
                    if let Some((kw, rest)) = c.keyword()? {
110
23.3k
                        if kw == $kw {
111
23.3k
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
23.3k
                })
<wast::kw::exn as wast::parser::Parse>::parse::{closure#0}
Line
Count
Source
108
20.3k
                parser.step(|c| {
109
20.3k
                    if let Some((kw, rest)) = c.keyword()? {
110
20.3k
                        if kw == $kw {
111
20.3k
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
20.3k
                })
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
22.5k
                parser.step(|c| {
109
22.5k
                    if let Some((kw, rest)) = c.keyword()? {
110
22.5k
                        if kw == $kw {
111
22.5k
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
22.5k
                })
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
58.6k
                parser.step(|c| {
109
58.6k
                    if let Some((kw, rest)) = c.keyword()? {
110
58.6k
                        if kw == $kw {
111
58.6k
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
58.6k
                })
<wast::kw::extern as wast::parser::Parse>::parse::{closure#0}
Line
Count
Source
108
12.6k
                parser.step(|c| {
109
12.6k
                    if let Some((kw, rest)) = c.keyword()? {
110
12.6k
                        if kw == $kw {
111
12.6k
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
12.6k
                })
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
496k
                parser.step(|c| {
109
496k
                    if let Some((kw, rest)) = c.keyword()? {
110
496k
                        if kw == $kw {
111
496k
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
496k
                })
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
6.34k
                parser.step(|c| {
109
6.34k
                    if let Some((kw, rest)) = c.keyword()? {
110
6.34k
                        if kw == $kw {
111
6.34k
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
6.34k
                })
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
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::i16x8 as wast::parser::Parse>::parse::{closure#0}
<wast::kw::i31 as wast::parser::Parse>::parse::{closure#0}
Line
Count
Source
108
4.15k
                parser.step(|c| {
109
4.15k
                    if let Some((kw, rest)) = c.keyword()? {
110
4.15k
                        if kw == $kw {
111
4.15k
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
4.15k
                })
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
85.1k
                parser.step(|c| {
109
85.1k
                    if let Some((kw, rest)) = c.keyword()? {
110
85.1k
                        if kw == $kw {
111
85.1k
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
85.1k
                })
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
98.0k
                parser.step(|c| {
109
98.0k
                    if let Some((kw, rest)) = c.keyword()? {
110
98.0k
                        if kw == $kw {
111
98.0k
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
98.0k
                })
<wast::kw::i16 as wast::parser::Parse>::parse::{closure#0}
Line
Count
Source
108
136k
                parser.step(|c| {
109
136k
                    if let Some((kw, rest)) = c.keyword()? {
110
136k
                        if kw == $kw {
111
136k
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
136k
                })
<wast::kw::i64 as wast::parser::Parse>::parse::{closure#0}
Line
Count
Source
108
31.2k
                parser.step(|c| {
109
31.2k
                    if let Some((kw, rest)) = c.keyword()? {
110
31.2k
                        if kw == $kw {
111
31.2k
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
31.2k
                })
Unexecuted instantiation: <wast::kw::instance as wast::parser::Parse>::parse::{closure#0}
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::i64x2 as wast::parser::Parse>::parse::{closure#0}
<wast::kw::i8 as wast::parser::Parse>::parse::{closure#0}
Line
Count
Source
108
401k
                parser.step(|c| {
109
401k
                    if let Some((kw, rest)) = c.keyword()? {
110
401k
                        if kw == $kw {
111
401k
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
401k
                })
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
54.7k
                parser.step(|c| {
109
54.7k
                    if let Some((kw, rest)) = c.keyword()? {
110
54.7k
                        if kw == $kw {
111
54.7k
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
54.7k
                })
Unexecuted instantiation: <wast::kw::implements as wast::parser::Parse>::parse::{closure#0}
<wast::kw::item as wast::parser::Parse>::parse::{closure#0}
Line
Count
Source
108
45.3k
                parser.step(|c| {
109
45.3k
                    if let Some((kw, rest)) = c.keyword()? {
110
45.3k
                        if kw == $kw {
111
45.3k
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
45.3k
                })
Unexecuted instantiation: <wast::kw::last as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::nan_arithmetic as wast::parser::Parse>::parse::{closure#0}
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
15.1k
                parser.step(|c| {
109
15.1k
                    if let Some((kw, rest)) = c.keyword()? {
110
15.1k
                        if kw == $kw {
111
15.1k
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
15.1k
                })
<wast::kw::local as wast::parser::Parse>::parse::{closure#0}
Line
Count
Source
108
23.0k
                parser.step(|c| {
109
23.0k
                    if let Some((kw, rest)) = c.keyword()? {
110
23.0k
                        if kw == $kw {
111
23.0k
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
23.0k
                })
<wast::kw::memory as wast::parser::Parse>::parse::{closure#0}
Line
Count
Source
108
33.3k
                parser.step(|c| {
109
33.3k
                    if let Some((kw, rest)) = c.keyword()? {
110
33.3k
                        if kw == $kw {
111
33.3k
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
33.3k
                })
<wast::kw::module as wast::parser::Parse>::parse::{closure#0}
Line
Count
Source
108
10.6k
                parser.step(|c| {
109
10.6k
                    if let Some((kw, rest)) = c.keyword()? {
110
10.6k
                        if kw == $kw {
111
10.6k
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
10.6k
                })
Unexecuted instantiation: <wast::kw::modulecode as wast::parser::Parse>::parse::{closure#0}
<wast::kw::noextern as wast::parser::Parse>::parse::{closure#0}
Line
Count
Source
108
40.2k
                parser.step(|c| {
109
40.2k
                    if let Some((kw, rest)) = c.keyword()? {
110
40.2k
                        if kw == $kw {
111
40.2k
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
40.2k
                })
Unexecuted instantiation: <wast::kw::noexn as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::nullexternref as wast::parser::Parse>::parse::{closure#0}
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}
<wast::kw::none as wast::parser::Parse>::parse::{closure#0}
Line
Count
Source
108
200k
                parser.step(|c| {
109
200k
                    if let Some((kw, rest)) = c.keyword()? {
110
200k
                        if kw == $kw {
111
200k
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
200k
                })
<wast::kw::null as wast::parser::Parse>::parse::{closure#0}
Line
Count
Source
108
491k
                parser.step(|c| {
109
491k
                    if let Some((kw, rest)) = c.keyword()? {
110
491k
                        if kw == $kw {
111
491k
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
491k
                })
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::outer as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::quote as wast::parser::Parse>::parse::{closure#0}
<wast::kw::else as wast::parser::Parse>::parse::{closure#0}
Line
Count
Source
108
2.14k
                parser.step(|c| {
109
2.14k
                    if let Some((kw, rest)) = c.keyword()? {
110
2.14k
                        if kw == $kw {
111
2.14k
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
2.14k
                })
Unexecuted instantiation: <wast::kw::if as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::loop as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::own as wast::parser::Parse>::parse::{closure#0}
<wast::kw::pagesize as wast::parser::Parse>::parse::{closure#0}
Line
Count
Source
108
16.4k
                parser.step(|c| {
109
16.4k
                    if let Some((kw, rest)) = c.keyword()? {
110
16.4k
                        if kw == $kw {
111
16.4k
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
16.4k
                })
<wast::kw::param as wast::parser::Parse>::parse::{closure#0}
Line
Count
Source
108
208k
                parser.step(|c| {
109
208k
                    if let Some((kw, rest)) = c.keyword()? {
110
208k
                        if kw == $kw {
111
208k
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
208k
                })
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::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::mut as wast::parser::Parse>::parse::{closure#0}
Line
Count
Source
108
571k
                parser.step(|c| {
109
571k
                    if let Some((kw, rest)) = c.keyword()? {
110
571k
                        if kw == $kw {
111
571k
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
571k
                })
<wast::kw::type as wast::parser::Parse>::parse::{closure#0}
Line
Count
Source
108
594k
                parser.step(|c| {
109
594k
                    if let Some((kw, rest)) = c.keyword()? {
110
594k
                        if kw == $kw {
111
594k
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
594k
                })
<wast::kw::rec as wast::parser::Parse>::parse::{closure#0}
Line
Count
Source
108
55.4k
                parser.step(|c| {
109
55.4k
                    if let Some((kw, rest)) = c.keyword()? {
110
55.4k
                        if kw == $kw {
111
55.4k
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
55.4k
                })
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}
<wast::kw::any as wast::parser::Parse>::parse::{closure#0}
Line
Count
Source
108
16.7k
                parser.step(|c| {
109
16.7k
                    if let Some((kw, rest)) = c.keyword()? {
110
16.7k
                        if kw == $kw {
111
16.7k
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
16.7k
                })
<wast::kw::ref as wast::parser::Parse>::parse::{closure#0}
Line
Count
Source
108
498k
                parser.step(|c| {
109
498k
                    if let Some((kw, rest)) = c.keyword()? {
110
498k
                        if kw == $kw {
111
498k
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
498k
                })
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
                })
Unexecuted instantiation: <wast::kw::resource_new as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::resource_drop as wast::parser::Parse>::parse::{closure#0}
<wast::kw::start as wast::parser::Parse>::parse::{closure#0}
Line
Count
Source
108
216
                parser.step(|c| {
109
216
                    if let Some((kw, rest)) = c.keyword()? {
110
216
                        if kw == $kw {
111
216
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
216
                })
<wast::kw::sub as wast::parser::Parse>::parse::{closure#0}
Line
Count
Source
108
136k
                parser.step(|c| {
109
136k
                    if let Some((kw, rest)) = c.keyword()? {
110
136k
                        if kw == $kw {
111
136k
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
136k
                })
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
8.40k
                parser.step(|c| {
109
8.40k
                    if let Some((kw, rest)) = c.keyword()? {
110
8.40k
                        if kw == $kw {
111
8.40k
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
8.40k
                })
<wast::kw::table as wast::parser::Parse>::parse::{closure#0}
Line
Count
Source
108
45.0k
                parser.step(|c| {
109
45.0k
                    if let Some((kw, rest)) = c.keyword()? {
110
45.0k
                        if kw == $kw {
111
45.0k
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
45.0k
                })
Unexecuted instantiation: <wast::kw::resource_rep as wast::parser::Parse>::parse::{closure#0}
<wast::kw::result as wast::parser::Parse>::parse::{closure#0}
Line
Count
Source
108
489k
                parser.step(|c| {
109
489k
                    if let Some((kw, rest)) = c.keyword()? {
110
489k
                        if kw == $kw {
111
489k
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
489k
                })
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
94.7k
                parser.step(|c| {
109
94.7k
                    if let Some((kw, rest)) = c.keyword()? {
110
94.7k
                        if kw == $kw {
111
94.7k
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
94.7k
                })
<wast::kw::then as wast::parser::Parse>::parse::{closure#0}
Line
Count
Source
108
26.6k
                parser.step(|c| {
109
26.6k
                    if let Some((kw, rest)) = c.keyword()? {
110
26.6k
                        if kw == $kw {
111
26.6k
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
26.6k
                })
Unexecuted instantiation: <wast::kw::s32 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::try 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::u32 as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::u64 as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::bool_ 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::char 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::flags as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::option as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::canon 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::tuple 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::string_utf16 as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::with 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::string_latin1_utf16 as wast::parser::Parse>::parse::{closure#0}
<wast::kw::struct as wast::parser::Parse>::parse::{closure#0}
Line
Count
Source
108
65.5k
                parser.step(|c| {
109
65.5k
                    if let Some((kw, rest)) = c.keyword()? {
110
65.5k
                        if kw == $kw {
111
65.5k
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
65.5k
                })
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::true_ as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::false_ as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::needed 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::anyref as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::language 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::thread 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::task_return 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::thread_spawn_indirect 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::stream_new 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_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::stream_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::future_cancel_read 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::error_context_drop 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::future_drop_readable 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::callback as wast::parser::Parse>::parse::{closure#0}
Unexecuted instantiation: <wast::kw::stream 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::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::future 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::thread_index 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::cancellable 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::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::arg as wast::parser::Parse>::parse::{closure#0}
<wast::kw::array as wast::parser::Parse>::parse::{closure#0}
Line
Count
Source
108
234k
                parser.step(|c| {
109
234k
                    if let Some((kw, rest)) = c.keyword()? {
110
234k
                        if kw == $kw {
111
234k
                            return Ok(($name(c.cur_span()), rest));
112
0
                        }
113
0
                    }
114
0
                    Err(c.error(concat!("expected keyword `", $kw, "`")))
115
234k
                })
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
5.99M
            }
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
20.8k
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
20.8k
                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.8k
            }
<wast::kw::catch_ref as wast::parser::Parse>::parse
Line
Count
Source
107
30
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
30
                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
30
            }
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
14.6k
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
14.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
14.6k
            }
<wast::kw::declare as wast::parser::Parse>::parse
Line
Count
Source
107
2.63k
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
2.63k
                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
2.63k
            }
Unexecuted instantiation: <wast::kw::delegate as wast::parser::Parse>::parse
<wast::kw::catch_all as wast::parser::Parse>::parse
Line
Count
Source
107
283k
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
283k
                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
283k
            }
<wast::kw::catch_all_ref as wast::parser::Parse>::parse
Line
Count
Source
107
630
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
630
                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
630
            }
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
23.3k
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
23.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
23.3k
            }
<wast::kw::exn as wast::parser::Parse>::parse
Line
Count
Source
107
20.3k
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
20.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
20.3k
            }
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
22.5k
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
22.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
22.5k
            }
Unexecuted instantiation: <wast::kw::end as wast::parser::Parse>::parse
<wast::kw::export as wast::parser::Parse>::parse
Line
Count
Source
107
58.6k
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
58.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
58.6k
            }
<wast::kw::extern as wast::parser::Parse>::parse
Line
Count
Source
107
12.6k
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
12.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
12.6k
            }
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
496k
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
496k
                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
496k
            }
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
6.34k
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
6.34k
                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.34k
            }
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
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::i16x8 as wast::parser::Parse>::parse
<wast::kw::i31 as wast::parser::Parse>::parse
Line
Count
Source
107
4.15k
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
4.15k
                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.15k
            }
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
85.1k
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
85.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
85.1k
            }
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
98.0k
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
98.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
98.0k
            }
<wast::kw::i16 as wast::parser::Parse>::parse
Line
Count
Source
107
136k
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
136k
                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
136k
            }
<wast::kw::i64 as wast::parser::Parse>::parse
Line
Count
Source
107
31.2k
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
31.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
31.2k
            }
Unexecuted instantiation: <wast::kw::instance as wast::parser::Parse>::parse
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::i64x2 as wast::parser::Parse>::parse
<wast::kw::i8 as wast::parser::Parse>::parse
Line
Count
Source
107
401k
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
401k
                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
401k
            }
Unexecuted instantiation: <wast::kw::i8x16 as wast::parser::Parse>::parse
<wast::kw::import as wast::parser::Parse>::parse
Line
Count
Source
107
54.7k
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
54.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
54.7k
            }
Unexecuted instantiation: <wast::kw::implements as wast::parser::Parse>::parse
<wast::kw::item as wast::parser::Parse>::parse
Line
Count
Source
107
45.3k
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
45.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
45.3k
            }
Unexecuted instantiation: <wast::kw::last as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::nan_arithmetic as wast::parser::Parse>::parse
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
15.1k
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
15.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
15.1k
            }
<wast::kw::local as wast::parser::Parse>::parse
Line
Count
Source
107
23.0k
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
23.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
23.0k
            }
<wast::kw::memory as wast::parser::Parse>::parse
Line
Count
Source
107
33.3k
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
33.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
33.3k
            }
<wast::kw::module as wast::parser::Parse>::parse
Line
Count
Source
107
10.6k
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
10.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
10.6k
            }
Unexecuted instantiation: <wast::kw::modulecode as wast::parser::Parse>::parse
<wast::kw::noextern as wast::parser::Parse>::parse
Line
Count
Source
107
40.2k
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
40.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
40.2k
            }
Unexecuted instantiation: <wast::kw::noexn as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::nullexternref as wast::parser::Parse>::parse
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
<wast::kw::none as wast::parser::Parse>::parse
Line
Count
Source
107
200k
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
200k
                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
200k
            }
<wast::kw::null as wast::parser::Parse>::parse
Line
Count
Source
107
491k
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
491k
                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
491k
            }
Unexecuted instantiation: <wast::kw::nullcontref as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::nullfuncref as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::outer as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::quote as wast::parser::Parse>::parse
<wast::kw::else as wast::parser::Parse>::parse
Line
Count
Source
107
2.14k
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
2.14k
                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
2.14k
            }
Unexecuted instantiation: <wast::kw::if as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::loop as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::own as wast::parser::Parse>::parse
<wast::kw::pagesize as wast::parser::Parse>::parse
Line
Count
Source
107
16.4k
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
16.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
16.4k
            }
<wast::kw::param as wast::parser::Parse>::parse
Line
Count
Source
107
208k
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
208k
                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
208k
            }
Unexecuted instantiation: <wast::kw::parent as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::passive 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::mut as wast::parser::Parse>::parse
Line
Count
Source
107
571k
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
571k
                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
571k
            }
<wast::kw::type as wast::parser::Parse>::parse
Line
Count
Source
107
594k
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
594k
                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
594k
            }
<wast::kw::rec as wast::parser::Parse>::parse
Line
Count
Source
107
55.4k
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
55.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
55.4k
            }
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
<wast::kw::any as wast::parser::Parse>::parse
Line
Count
Source
107
16.7k
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
16.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
16.7k
            }
<wast::kw::ref as wast::parser::Parse>::parse
Line
Count
Source
107
498k
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
498k
                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
498k
            }
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
            }
Unexecuted instantiation: <wast::kw::resource_new as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::resource_drop as wast::parser::Parse>::parse
<wast::kw::start as wast::parser::Parse>::parse
Line
Count
Source
107
216
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
216
                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
216
            }
<wast::kw::sub as wast::parser::Parse>::parse
Line
Count
Source
107
136k
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
136k
                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
136k
            }
Unexecuted instantiation: <wast::kw::switch as wast::parser::Parse>::parse
<wast::kw::final as wast::parser::Parse>::parse
Line
Count
Source
107
8.40k
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
8.40k
                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
8.40k
            }
<wast::kw::table as wast::parser::Parse>::parse
Line
Count
Source
107
45.0k
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
45.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
45.0k
            }
Unexecuted instantiation: <wast::kw::resource_rep as wast::parser::Parse>::parse
<wast::kw::result as wast::parser::Parse>::parse
Line
Count
Source
107
489k
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
489k
                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
489k
            }
Unexecuted instantiation: <wast::kw::seq_cst as wast::parser::Parse>::parse
<wast::kw::shared as wast::parser::Parse>::parse
Line
Count
Source
107
94.7k
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
94.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
94.7k
            }
<wast::kw::then as wast::parser::Parse>::parse
Line
Count
Source
107
26.6k
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
26.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
26.6k
            }
Unexecuted instantiation: <wast::kw::s32 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::try 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::u32 as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::u64 as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::bool_ 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::char 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::flags as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::option as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::canon 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::tuple 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::string_utf16 as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::with 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::string_latin1_utf16 as wast::parser::Parse>::parse
<wast::kw::struct as wast::parser::Parse>::parse
Line
Count
Source
107
65.5k
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
65.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
65.5k
            }
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::true_ as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::false_ as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::needed 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::anyref as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::language 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::thread as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::thread_spawn_ref as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::task_return 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::thread_spawn_indirect 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::stream_new as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::stream_drop_writable 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::stream_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::future_cancel_read as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::future_cancel_write as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::error_context_drop 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::future_drop_readable 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::callback as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::stream as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::waitable_set_poll 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::future 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::thread_index as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::thread_yield_to_suspended as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::cancellable as wast::parser::Parse>::parse
Unexecuted instantiation: <wast::kw::thread_new_indirect 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::arg as wast::parser::Parse>::parse
<wast::kw::array as wast::parser::Parse>::parse
Line
Count
Source
107
234k
            fn parse(parser: $crate::parser::Parser<'a>) -> $crate::parser::Result<Self> {
108
234k
                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
234k
            }
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
23.5M
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
23.5M
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
22.1M
                    kw == $kw
123
                } else {
124
1.42M
                    false
125
                })
126
23.5M
            }
<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
10.6k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
10.6k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
6
                    kw == $kw
123
                } else {
124
10.6k
                    false
125
                })
126
10.6k
            }
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
650k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
650k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
650k
                    kw == $kw
123
                } else {
124
0
                    false
125
                })
126
650k
            }
<wast::kw::catch_ref as wast::parser::Peek>::peek
Line
Count
Source
120
629k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
629k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
629k
                    kw == $kw
123
                } else {
124
0
                    false
125
                })
126
629k
            }
Unexecuted instantiation: <wast::kw::contref as wast::parser::Peek>::peek
<wast::kw::component as wast::parser::Peek>::peek
Line
Count
Source
120
2.17k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
2.17k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
846
                    kw == $kw
123
                } else {
124
1.32k
                    false
125
                })
126
2.17k
            }
<wast::kw::data as wast::parser::Peek>::peek
Line
Count
Source
120
32.2k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
32.2k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
31.9k
                    kw == $kw
123
                } else {
124
293
                    false
125
                })
126
32.2k
            }
<wast::kw::declare as wast::parser::Peek>::peek
Line
Count
Source
120
22.5k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
22.5k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
6.25k
                    kw == $kw
123
                } else {
124
16.3k
                    false
125
                })
126
22.5k
            }
Unexecuted instantiation: <wast::kw::delegate as wast::parser::Peek>::peek
<wast::kw::catch_all as wast::parser::Peek>::peek
Line
Count
Source
120
609k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
609k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
609k
                    kw == $kw
123
                } else {
124
0
                    false
125
                })
126
609k
            }
<wast::kw::catch_all_ref as wast::parser::Peek>::peek
Line
Count
Source
120
41.1k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
41.1k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
41.1k
                    kw == $kw
123
                } else {
124
0
                    false
125
                })
126
41.1k
            }
Unexecuted instantiation: <wast::kw::code as wast::parser::Peek>::peek
<wast::kw::cont as wast::parser::Peek>::peek
Line
Count
Source
120
570k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
570k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
570k
                    kw == $kw
123
                } else {
124
2
                    false
125
                })
126
570k
            }
<wast::kw::descriptor as wast::parser::Peek>::peek
Line
Count
Source
120
397k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
397k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
397k
                    kw == $kw
123
                } else {
124
2
                    false
125
                })
126
397k
            }
<wast::kw::exact as wast::parser::Peek>::peek
Line
Count
Source
120
57.0k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
57.0k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
55.0k
                    kw == $kw
123
                } else {
124
1.99k
                    false
125
                })
126
57.0k
            }
<wast::kw::tag as wast::parser::Peek>::peek
Line
Count
Source
120
24.0k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
24.0k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
23.7k
                    kw == $kw
123
                } else {
124
293
                    false
125
                })
126
24.0k
            }
<wast::kw::exn as wast::parser::Peek>::peek
Line
Count
Source
120
603k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
603k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
603k
                    kw == $kw
123
                } else {
124
0
                    false
125
                })
126
603k
            }
Unexecuted instantiation: <wast::kw::exnref as wast::parser::Peek>::peek
<wast::kw::describes as wast::parser::Peek>::peek
Line
Count
Source
120
397k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
397k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
397k
                    kw == $kw
123
                } else {
124
2
                    false
125
                })
126
397k
            }
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
54.7k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
54.7k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
54.4k
                    kw == $kw
123
                } else {
124
293
                    false
125
                })
126
54.7k
            }
Unexecuted instantiation: <wast::kw::end as wast::parser::Peek>::peek
<wast::kw::export as wast::parser::Peek>::peek
Line
Count
Source
120
93.5k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
93.5k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
93.2k
                    kw == $kw
123
                } else {
124
293
                    false
125
                })
126
93.5k
            }
<wast::kw::extern as wast::parser::Peek>::peek
Line
Count
Source
120
627k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
627k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
627k
                    kw == $kw
123
                } else {
124
0
                    false
125
                })
126
627k
            }
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
538k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
538k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
538k
                    kw == $kw
123
                } else {
124
0
                    false
125
                })
126
538k
            }
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
1.50M
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
1.50M
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
1.49M
                    kw == $kw
123
                } else {
124
3.45k
                    false
125
                })
126
1.50M
            }
<wast::kw::i16x8 as wast::parser::Peek>::peek
Line
Count
Source
120
85.1k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
85.1k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
85.1k
                    kw == $kw
123
                } else {
124
0
                    false
125
                })
126
85.1k
            }
<wast::kw::i31 as wast::parser::Peek>::peek
Line
Count
Source
120
511k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
511k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
511k
                    kw == $kw
123
                } else {
124
0
                    false
125
                })
126
511k
            }
Unexecuted instantiation: <wast::kw::i31ref as wast::parser::Peek>::peek
<wast::kw::i32 as wast::parser::Peek>::peek
Line
Count
Source
120
98.6k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
98.6k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
64.9k
                    kw == $kw
123
                } else {
124
33.7k
                    false
125
                })
126
98.6k
            }
<wast::kw::i32x4 as wast::parser::Peek>::peek
Line
Count
Source
120
85.1k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
85.1k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
85.1k
                    kw == $kw
123
                } else {
124
0
                    false
125
                })
126
85.1k
            }
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
198k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
198k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
197k
                    kw == $kw
123
                } else {
124
293
                    false
125
                })
126
198k
            }
<wast::kw::i16 as wast::parser::Peek>::peek
Line
Count
Source
120
322k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
322k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
272k
                    kw == $kw
123
                } else {
124
49.5k
                    false
125
                })
126
322k
            }
<wast::kw::i64 as wast::parser::Peek>::peek
Line
Count
Source
120
98.6k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
98.6k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
64.9k
                    kw == $kw
123
                } else {
124
33.7k
                    false
125
                })
126
98.6k
            }
<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::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
            }
Unexecuted instantiation: <wast::kw::i64x2 as wast::parser::Peek>::peek
<wast::kw::i8 as wast::parser::Peek>::peek
Line
Count
Source
120
723k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
723k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
674k
                    kw == $kw
123
                } else {
124
49.5k
                    false
125
                })
126
723k
            }
<wast::kw::i8x16 as wast::parser::Peek>::peek
Line
Count
Source
120
85.1k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
85.1k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
85.1k
                    kw == $kw
123
                } else {
124
0
                    false
125
                })
126
85.1k
            }
<wast::kw::import as wast::parser::Peek>::peek
Line
Count
Source
120
390k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
390k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
389k
                    kw == $kw
123
                } else {
124
293
                    false
125
                })
126
390k
            }
Unexecuted instantiation: <wast::kw::implements as wast::parser::Peek>::peek
<wast::kw::item as wast::parser::Peek>::peek
Line
Count
Source
120
301k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
301k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
301k
                    kw == $kw
123
                } else {
124
0
                    false
125
                })
126
301k
            }
Unexecuted instantiation: <wast::kw::last as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::nan_arithmetic as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::nan_canonical as wast::parser::Peek>::peek
<wast::kw::nocont as wast::parser::Peek>::peek
Line
Count
Source
120
397k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
397k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
397k
                    kw == $kw
123
                } else {
124
0
                    false
125
                })
126
397k
            }
<wast::kw::nofunc as wast::parser::Peek>::peek
Line
Count
Source
120
504k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
504k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
504k
                    kw == $kw
123
                } else {
124
0
                    false
125
                })
126
504k
            }
<wast::kw::local as wast::parser::Peek>::peek
Line
Count
Source
120
161k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
161k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
85.6k
                    kw == $kw
123
                } else {
124
75.9k
                    false
125
                })
126
161k
            }
<wast::kw::memory as wast::parser::Peek>::peek
Line
Count
Source
120
233k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
233k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
232k
                    kw == $kw
123
                } else {
124
295
                    false
125
                })
126
233k
            }
<wast::kw::module as wast::parser::Peek>::peek
Line
Count
Source
120
13.0k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
13.0k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
11.4k
                    kw == $kw
123
                } else {
124
1.32k
                    false
125
                })
126
13.0k
            }
Unexecuted instantiation: <wast::kw::modulecode as wast::parser::Peek>::peek
<wast::kw::noextern as wast::parser::Peek>::peek
Line
Count
Source
120
477k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
477k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
477k
                    kw == $kw
123
                } else {
124
0
                    false
125
                })
126
477k
            }
<wast::kw::noexn as wast::parser::Peek>::peek
Line
Count
Source
120
397k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
397k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
397k
                    kw == $kw
123
                } else {
124
0
                    false
125
                })
126
397k
            }
Unexecuted instantiation: <wast::kw::nullexternref as wast::parser::Peek>::peek
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
18.6k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
18.6k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
18.6k
                    kw == $kw
123
                } else {
124
7
                    false
125
                })
126
18.6k
            }
Unexecuted instantiation: <wast::kw::on as wast::parser::Peek>::peek
<wast::kw::none as wast::parser::Peek>::peek
Line
Count
Source
120
397k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
397k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
397k
                    kw == $kw
123
                } else {
124
0
                    false
125
                })
126
397k
            }
<wast::kw::null as wast::parser::Peek>::peek
Line
Count
Source
120
498k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
498k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
496k
                    kw == $kw
123
                } else {
124
1.99k
                    false
125
                })
126
498k
            }
Unexecuted instantiation: <wast::kw::nullcontref as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::nullfuncref as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::outer 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
            }
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
Unexecuted instantiation: <wast::kw::own as wast::parser::Peek>::peek
<wast::kw::pagesize as wast::parser::Peek>::peek
Line
Count
Source
120
16.4k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
16.4k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
16.4k
                    kw == $kw
123
                } else {
124
1
                    false
125
                })
126
16.4k
            }
<wast::kw::param as wast::parser::Peek>::peek
Line
Count
Source
120
1.93M
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
1.93M
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
1.63M
                    kw == $kw
123
                } else {
124
307k
                    false
125
                })
126
1.93M
            }
Unexecuted instantiation: <wast::kw::parent as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::passive as wast::parser::Peek>::peek
<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::mut as wast::parser::Peek>::peek
Line
Count
Source
120
876k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
876k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
652k
                    kw == $kw
123
                } else {
124
224k
                    false
125
                })
126
876k
            }
<wast::kw::type as wast::parser::Peek>::peek
Line
Count
Source
120
1.55M
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
1.55M
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
1.42M
                    kw == $kw
123
                } else {
124
126k
                    false
125
                })
126
1.55M
            }
<wast::kw::rec as wast::parser::Peek>::peek
Line
Count
Source
120
445k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
445k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
445k
                    kw == $kw
123
                } else {
124
293
                    false
125
                })
126
445k
            }
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
<wast::kw::ref as wast::parser::Peek>::peek
Line
Count
Source
120
567k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
567k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
567k
                    kw == $kw
123
                } else {
124
7
                    false
125
                })
126
567k
            }
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
            }
Unexecuted instantiation: <wast::kw::resource_new as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::resource_drop as wast::parser::Peek>::peek
<wast::kw::start as wast::parser::Peek>::peek
Line
Count
Source
120
54.9k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
54.9k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
54.6k
                    kw == $kw
123
                } else {
124
293
                    false
125
                })
126
54.9k
            }
<wast::kw::sub as wast::parser::Peek>::peek
Line
Count
Source
120
397k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
397k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
397k
                    kw == $kw
123
                } else {
124
2
                    false
125
                })
126
397k
            }
Unexecuted instantiation: <wast::kw::switch as wast::parser::Peek>::peek
<wast::kw::final as wast::parser::Peek>::peek
Line
Count
Source
120
136k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
136k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
8.40k
                    kw == $kw
123
                } else {
124
128k
                    false
125
                })
126
136k
            }
<wast::kw::table as wast::parser::Peek>::peek
Line
Count
Source
120
277k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
277k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
277k
                    kw == $kw
123
                } else {
124
298
                    false
125
                })
126
277k
            }
<wast::kw::any as wast::parser::Peek>::peek
Line
Count
Source
120
570k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
570k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
570k
                    kw == $kw
123
                } else {
124
0
                    false
125
                })
126
570k
            }
Unexecuted instantiation: <wast::kw::resource_rep as wast::parser::Peek>::peek
<wast::kw::result as wast::parser::Peek>::peek
Line
Count
Source
120
1.59M
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
1.59M
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
1.27M
                    kw == $kw
123
                } else {
124
315k
                    false
125
                })
126
1.59M
            }
Unexecuted instantiation: <wast::kw::seq_cst as wast::parser::Peek>::peek
<wast::kw::shared as wast::parser::Peek>::peek
Line
Count
Source
120
628k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
628k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
589k
                    kw == $kw
123
                } else {
124
38.8k
                    false
125
                })
126
628k
            }
<wast::kw::then as wast::parser::Peek>::peek
Line
Count
Source
120
53.6k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
53.6k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
53.6k
                    kw == $kw
123
                } else {
124
3
                    false
125
                })
126
53.6k
            }
Unexecuted instantiation: <wast::kw::s32 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::try 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::u32 as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::u64 as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::bool_ 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::char 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::flags as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::option as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::canon 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::tuple 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::string_utf16 as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::with 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::string_latin1_utf16 as wast::parser::Peek>::peek
<wast::kw::struct as wast::parser::Peek>::peek
Line
Count
Source
120
815k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
815k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
815k
                    kw == $kw
123
                } else {
124
2
                    false
125
                })
126
815k
            }
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::true_ as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::false_ as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::needed 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
Unexecuted instantiation: <wast::kw::language as wast::parser::Peek>::peek
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
<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::thread_spawn_ref as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::task_return 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::anyref as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::thread_spawn_indirect 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::stream_new as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::stream_drop_writable 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::stream_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::future_cancel_read as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::future_cancel_write as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::error_context_drop 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::future_drop_readable 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::callback as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::stream as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::waitable_set_poll 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::future 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::thread_index as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::thread_yield_to_suspended as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::cancellable as wast::parser::Peek>::peek
Unexecuted instantiation: <wast::kw::thread_new_indirect 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::arg as wast::parser::Peek>::peek
<wast::kw::array as wast::parser::Peek>::peek
Line
Count
Source
120
749k
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
121
749k
                Ok(if let Some((kw, _rest)) = cursor.keyword()? {
122
749k
                    kw == $kw
123
                } else {
124
2
                    false
125
                })
126
749k
            }
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
5.32M
            fn display() -> &'static str {
129
5.32M
                concat!("`", $kw, "`")
130
5.32M
            }
<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
295k
            fn display() -> &'static str {
129
295k
                concat!("`", $kw, "`")
130
295k
            }
Unexecuted instantiation: <wast::kw::descriptor as wast::parser::Peek>::display
<wast::kw::exact as wast::parser::Peek>::display
Line
Count
Source
128
34.8k
            fn display() -> &'static str {
129
34.8k
                concat!("`", $kw, "`")
130
34.8k
            }
Unexecuted instantiation: <wast::kw::tag as wast::parser::Peek>::display
<wast::kw::exn as wast::parser::Peek>::display
Line
Count
Source
128
295k
            fn display() -> &'static str {
129
295k
                concat!("`", $kw, "`")
130
295k
            }
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
315k
            fn display() -> &'static str {
129
315k
                concat!("`", $kw, "`")
130
315k
            }
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
272k
            fn display() -> &'static str {
129
272k
                concat!("`", $kw, "`")
130
272k
            }
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
682k
            fn display() -> &'static str {
129
682k
                concat!("`", $kw, "`")
130
682k
            }
<wast::kw::i16x8 as wast::parser::Peek>::display
Line
Count
Source
128
85.1k
            fn display() -> &'static str {
129
85.1k
                concat!("`", $kw, "`")
130
85.1k
            }
<wast::kw::i31 as wast::parser::Peek>::display
Line
Count
Source
128
256k
            fn display() -> &'static str {
129
256k
                concat!("`", $kw, "`")
130
256k
            }
Unexecuted instantiation: <wast::kw::i31ref as wast::parser::Peek>::display
<wast::kw::i32 as wast::parser::Peek>::display
Line
Count
Source
128
25.2k
            fn display() -> &'static str {
129
25.2k
                concat!("`", $kw, "`")
130
25.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
6.41k
            fn display() -> &'static str {
129
6.41k
                concat!("`", $kw, "`")
130
6.41k
            }
<wast::kw::i16 as wast::parser::Peek>::display
Line
Count
Source
128
186k
            fn display() -> &'static str {
129
186k
                concat!("`", $kw, "`")
130
186k
            }
<wast::kw::i64 as wast::parser::Peek>::display
Line
Count
Source
128
4.36k
            fn display() -> &'static str {
129
4.36k
                concat!("`", $kw, "`")
130
4.36k
            }
Unexecuted instantiation: <wast::kw::instance as wast::parser::Peek>::display
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::i64x2 as wast::parser::Peek>::display
<wast::kw::i8 as wast::parser::Peek>::display
Line
Count
Source
128
322k
            fn display() -> &'static str {
129
322k
                concat!("`", $kw, "`")
130
322k
            }
<wast::kw::i8x16 as wast::parser::Peek>::display
Line
Count
Source
128
85.1k
            fn display() -> &'static str {
129
85.1k
                concat!("`", $kw, "`")
130
85.1k
            }
Unexecuted instantiation: <wast::kw::import as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::implements as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::item as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::last as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::nan_arithmetic 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
200k
            fn display() -> &'static str {
129
200k
                concat!("`", $kw, "`")
130
200k
            }
<wast::kw::nofunc as wast::parser::Peek>::display
Line
Count
Source
128
240k
            fn display() -> &'static str {
129
240k
                concat!("`", $kw, "`")
130
240k
            }
Unexecuted instantiation: <wast::kw::local as wast::parser::Peek>::display
<wast::kw::memory as wast::parser::Peek>::display
Line
Count
Source
128
38.1k
            fn display() -> &'static str {
129
38.1k
                concat!("`", $kw, "`")
130
38.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
<wast::kw::noextern as wast::parser::Peek>::display
Line
Count
Source
128
200k
            fn display() -> &'static str {
129
200k
                concat!("`", $kw, "`")
130
200k
            }
<wast::kw::noexn as wast::parser::Peek>::display
Line
Count
Source
128
200k
            fn display() -> &'static str {
129
200k
                concat!("`", $kw, "`")
130
200k
            }
Unexecuted instantiation: <wast::kw::nullexternref 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::none 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::outer as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::quote 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::own 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
489k
            fn display() -> &'static str {
129
489k
                concat!("`", $kw, "`")
130
489k
            }
Unexecuted instantiation: <wast::kw::parent as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::passive 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::mut as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::type as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::rec as wast::parser::Peek>::display
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
<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::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::resource_new as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::resource_drop as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::start 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
45.1k
            fn display() -> &'static str {
129
45.1k
                concat!("`", $kw, "`")
130
45.1k
            }
<wast::kw::any as wast::parser::Peek>::display
Line
Count
Source
128
278k
            fn display() -> &'static str {
129
278k
                concat!("`", $kw, "`")
130
278k
            }
Unexecuted instantiation: <wast::kw::resource_rep as wast::parser::Peek>::display
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
12.3k
            fn display() -> &'static str {
129
12.3k
                concat!("`", $kw, "`")
130
12.3k
            }
Unexecuted instantiation: <wast::kw::then as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::s32 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::try 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::u32 as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::u64 as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::bool_ 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::char 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::flags as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::option as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::canon 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::tuple 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::string_utf16 as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::with 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::string_latin1_utf16 as wast::parser::Peek>::display
<wast::kw::struct as wast::parser::Peek>::display
Line
Count
Source
128
495k
            fn display() -> &'static str {
129
495k
                concat!("`", $kw, "`")
130
495k
            }
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::true_ as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::false_ as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::needed 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
Unexecuted instantiation: <wast::kw::language as wast::parser::Peek>::display
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
<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::thread_spawn_ref as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::task_return 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::anyref as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::thread_spawn_indirect 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::stream_new as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::stream_drop_writable 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::stream_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::future_cancel_read as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::future_cancel_write as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::error_context_drop 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::future_drop_readable 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::callback as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::stream as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::waitable_set_poll 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::future 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::thread_index as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::thread_yield_to_suspended as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::cancellable as wast::parser::Peek>::display
Unexecuted instantiation: <wast::kw::thread_new_indirect 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::arg as wast::parser::Peek>::display
<wast::kw::array as wast::parser::Peek>::display
Line
Count
Source
128
260k
            fn display() -> &'static str {
129
260k
                concat!("`", $kw, "`")
130
260k
            }
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.10M
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
337
5.10M
                Ok(if let Some((a, _rest)) = cursor.annotation()? {
338
66
                    a == $annotation
339
                } else {
340
5.10M
                    false
341
                })
342
5.10M
            }
<wast::annotation::name as wast::parser::Peek>::peek
Line
Count
Source
336
1.42M
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
337
1.42M
                Ok(if let Some((a, _rest)) = cursor.annotation()? {
338
4
                    a == $annotation
339
                } else {
340
1.42M
                    false
341
                })
342
1.42M
            }
<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.67M
            fn peek(cursor: $crate::parser::Cursor<'_>) -> $crate::parser::Result<bool> {
337
3.67M
                Ok(if let Some((a, _rest)) = cursor.annotation()? {
338
1
                    a == $annotation
339
                } else {
340
3.67M
                    false
341
                })
342
3.67M
            }
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!(implements);
458
    custom_keyword!(instance);
459
    custom_keyword!(instantiate);
460
    custom_keyword!(interface);
461
    custom_keyword!(invoke);
462
    custom_keyword!(item);
463
    custom_keyword!(last);
464
    custom_keyword!(local);
465
    custom_keyword!(memory);
466
    custom_keyword!(module);
467
    custom_keyword!(modulecode);
468
    custom_keyword!(nan_arithmetic = "nan:arithmetic");
469
    custom_keyword!(nan_canonical = "nan:canonical");
470
    custom_keyword!(nocont);
471
    custom_keyword!(nofunc);
472
    custom_keyword!(noextern);
473
    custom_keyword!(noexn);
474
    custom_keyword!(none);
475
    custom_keyword!(null);
476
    custom_keyword!(nullcontref);
477
    custom_keyword!(nullfuncref);
478
    custom_keyword!(nullexternref);
479
    custom_keyword!(nullexnref);
480
    custom_keyword!(nullref);
481
    custom_keyword!(offset);
482
    custom_keyword!(on);
483
    custom_keyword!(outer);
484
    custom_keyword!(own);
485
    custom_keyword!(pagesize);
486
    custom_keyword!(param);
487
    custom_keyword!(parent);
488
    custom_keyword!(passive);
489
    custom_keyword!(quote);
490
    custom_keyword!(r#else = "else");
491
    custom_keyword!(r#if = "if");
492
    custom_keyword!(r#loop = "loop");
493
    custom_keyword!(r#mut = "mut");
494
    custom_keyword!(r#type = "type");
495
    custom_keyword!(r#ref = "ref");
496
    custom_keyword!(ref_func = "ref.func");
497
    custom_keyword!(ref_null = "ref.null");
498
    custom_keyword!(register);
499
    custom_keyword!(rec);
500
    custom_keyword!(acq_rel);
501
    custom_keyword!(rep);
502
    custom_keyword!(resource);
503
    custom_keyword!(resource_new = "resource.new");
504
    custom_keyword!(resource_drop = "resource.drop");
505
    custom_keyword!(resource_rep = "resource.rep");
506
    custom_keyword!(result);
507
    custom_keyword!(seq_cst);
508
    custom_keyword!(shared);
509
    custom_keyword!(start);
510
    custom_keyword!(sub);
511
    custom_keyword!(switch);
512
    custom_keyword!(r#final = "final");
513
    custom_keyword!(table);
514
    custom_keyword!(then);
515
    custom_keyword!(r#try = "try");
516
    custom_keyword!(v128);
517
    custom_keyword!(value);
518
    custom_keyword!(s8);
519
    custom_keyword!(s16);
520
    custom_keyword!(s32);
521
    custom_keyword!(s64);
522
    custom_keyword!(u8);
523
    custom_keyword!(u16);
524
    custom_keyword!(u32);
525
    custom_keyword!(u64);
526
    custom_keyword!(char);
527
    custom_keyword!(case);
528
    custom_keyword!(record);
529
    custom_keyword!(string);
530
    custom_keyword!(bool_ = "bool");
531
    custom_keyword!(float32);
532
    custom_keyword!(float64);
533
    custom_keyword!(variant);
534
    custom_keyword!(flags);
535
    custom_keyword!(option);
536
    custom_keyword!(tuple);
537
    custom_keyword!(list);
538
    custom_keyword!(map);
539
    custom_keyword!(error);
540
    custom_keyword!(canon);
541
    custom_keyword!(lift);
542
    custom_keyword!(lower);
543
    custom_keyword!(enum_ = "enum");
544
    custom_keyword!(string_utf8 = "string-encoding=utf8");
545
    custom_keyword!(string_utf16 = "string-encoding=utf16");
546
    custom_keyword!(string_latin1_utf16 = "string-encoding=latin1+utf16");
547
    custom_keyword!(r#struct = "struct");
548
    custom_keyword!(structref);
549
    custom_keyword!(realloc);
550
    custom_keyword!(post_return = "post-return");
551
    custom_keyword!(with);
552
    custom_keyword!(core);
553
    custom_keyword!(core_type = "core-type");
554
    custom_keyword!(gc);
555
    custom_keyword!(true_ = "true");
556
    custom_keyword!(false_ = "false");
557
    custom_keyword!(language);
558
    custom_keyword!(sdk);
559
    custom_keyword!(processed_by = "processed-by");
560
    custom_keyword!(mem_info = "mem-info");
561
    custom_keyword!(needed);
562
    custom_keyword!(export_info = "export-info");
563
    custom_keyword!(import_info = "import-info");
564
    custom_keyword!(runtime_path = "runtime-path");
565
    custom_keyword!(thread);
566
    custom_keyword!(thread_spawn_ref = "thread.spawn-ref");
567
    custom_keyword!(thread_spawn_indirect = "thread.spawn-indirect");
568
    custom_keyword!(thread_available_parallelism = "thread.available_parallelism");
569
    custom_keyword!(backpressure_inc = "backpressure.inc");
570
    custom_keyword!(backpressure_dec = "backpressure.dec");
571
    custom_keyword!(task_return = "task.return");
572
    custom_keyword!(task_cancel = "task.cancel");
573
    custom_keyword!(thread_yield = "thread.yield");
574
    custom_keyword!(subtask_drop = "subtask.drop");
575
    custom_keyword!(subtask_cancel = "subtask.cancel");
576
    custom_keyword!(stream_new = "stream.new");
577
    custom_keyword!(stream_read = "stream.read");
578
    custom_keyword!(stream_write = "stream.write");
579
    custom_keyword!(stream_cancel_read = "stream.cancel-read");
580
    custom_keyword!(stream_cancel_write = "stream.cancel-write");
581
    custom_keyword!(stream_drop_readable = "stream.drop-readable");
582
    custom_keyword!(stream_drop_writable = "stream.drop-writable");
583
    custom_keyword!(future_new = "future.new");
584
    custom_keyword!(future_read = "future.read");
585
    custom_keyword!(future_write = "future.write");
586
    custom_keyword!(future_cancel_read = "future.cancel-read");
587
    custom_keyword!(future_cancel_write = "future.cancel-write");
588
    custom_keyword!(future_drop_readable = "future.drop-readable");
589
    custom_keyword!(future_drop_writable = "future.drop-writable");
590
    custom_keyword!(error_context_new = "error-context.new");
591
    custom_keyword!(error_context_debug_message = "error-context.debug-message");
592
    custom_keyword!(error_context_drop = "error-context.drop");
593
    custom_keyword!(wait);
594
    custom_keyword!(definition);
595
    custom_keyword!(r#async = "async");
596
    custom_keyword!(callback);
597
    custom_keyword!(stream);
598
    custom_keyword!(future);
599
    custom_keyword!(error_context = "error-context");
600
    custom_keyword!(waitable_set_new = "waitable-set.new");
601
    custom_keyword!(waitable_set_wait = "waitable-set.wait");
602
    custom_keyword!(waitable_set_poll = "waitable-set.poll");
603
    custom_keyword!(waitable_set_drop = "waitable-set.drop");
604
    custom_keyword!(waitable_join = "waitable.join");
605
    custom_keyword!(context_get = "context.get");
606
    custom_keyword!(context_set = "context.set");
607
    custom_keyword!(thread_index = "thread.index");
608
    custom_keyword!(thread_new_indirect = "thread.new-indirect");
609
    custom_keyword!(thread_suspend_to_suspended = "thread.suspend-to-suspended");
610
    custom_keyword!(thread_suspend = "thread.suspend");
611
    custom_keyword!(thread_suspend_to = "thread.suspend-to");
612
    custom_keyword!(thread_unsuspend = "thread.unsuspend");
613
    custom_keyword!(thread_yield_to_suspended = "thread.yield-to-suspended");
614
    custom_keyword!(cancellable);
615
}
616
617
/// Common annotations used to parse WebAssembly text files.
618
pub mod annotation {
619
    annotation!(custom);
620
    annotation!(name);
621
    annotation!(producers);
622
    annotation!(dylink_0 = "dylink.0");
623
    annotation!(metadata_code_branch_hint = "metadata.code.branch_hint");
624
}