1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
//! Thin `macro_rules!` sugar over crate-internal [`ChunkBuilder`] helpers.
//!
//! Prefer [`crate::Fn::native1_from`] and [`crate::Fn::native_n`] in new code.
//! These macros remain for internal tests that emit bytecode directly.
/// `emit_native1_from!(builder, dest, src, native)` — see [`Fn::native1_from`].
///
/// # Example
/// ```
/// use byteflow::Program;
///
/// let mut p = Program::new("example");
/// p.function("main", 0, |f| {
/// let msg = f.receive();
/// let sender = f.native1_from(msg, 3);
/// f.return_(sender);
/// });
/// let chunk = p.build();
/// assert!(chunk.code.len() >= 4);
/// ```
/// `emit_native_n!(builder, base, native, argc)` — see [`Fn::native_n`].
/// Namespaced re-exports for callers who prefer an explicit path.