inf_wast/component/
custom.rs1use crate::annotation;
2use crate::parser::{Parse, Parser, Result};
3use crate::token::Span;
4
5#[derive(Debug)]
7pub struct Custom<'a> {
8 pub span: Span,
10
11 pub name: &'a str,
13
14 pub data: Vec<&'a [u8]>,
16}
17
18impl<'a> Parse<'a> for Custom<'a> {
19 fn parse(parser: Parser<'a>) -> Result<Self> {
20 let span = parser.parse::<annotation::custom>()?.0;
21 let name = parser.parse()?;
22 let mut data = Vec::new();
23 while !parser.is_empty() {
24 data.push(parser.parse()?);
25 }
26 Ok(Self { span, name, data })
27 }
28}