wasm_encoder/raw.rs
1use crate::{Encode, Section};
2use alloc::vec::Vec;
3
4/// A section made up of uninterpreted, raw bytes.
5///
6/// Allows you to splat any data into a module or component.
7#[derive(Clone, Copy, Debug)]
8pub struct RawSection<'a> {
9 /// The id for this section.
10 pub id: u8,
11 /// The raw data for this section.
12 pub data: &'a [u8],
13}
14
15impl Encode for RawSection<'_> {
16 fn encode(&self, sink: &mut Vec<u8>) {
17 self.data.encode(sink);
18 }
19}
20
21impl Section for RawSection<'_> {
22 fn id(&self) -> u8 {
23 self.id
24 }
25}
26
27#[cfg(feature = "component-model")]
28impl crate::ComponentSection for RawSection<'_> {
29 fn id(&self) -> u8 {
30 self.id
31 }
32}