wasm_encoder/component/
components.rs

1use crate::{Component, ComponentSection, ComponentSectionId, Encode};
2use alloc::vec::Vec;
3
4/// An encoder for the component section of WebAssembly components.
5///
6/// # Example
7///
8/// ```rust
9/// use wasm_encoder::{Component, NestedComponentSection};
10///
11/// let mut nested = Component::new();
12/// let mut component = Component::new();
13/// component.section(&NestedComponentSection(&nested));
14///
15/// let bytes = component.finish();
16/// ```
17#[derive(Clone, Debug)]
18pub struct NestedComponentSection<'a>(pub &'a Component);
19
20impl Encode for NestedComponentSection<'_> {
21    fn encode(&self, sink: &mut Vec<u8>) {
22        self.0.bytes.encode(sink);
23    }
24}
25
26impl ComponentSection for NestedComponentSection<'_> {
27    fn id(&self) -> u8 {
28        ComponentSectionId::Component.into()
29    }
30}