pub fn std_native_table() -> Arc<NativeTable> ⓘExpand description
Default FFI table with StdoutSink. Prefer std_native_table_with
in embedders that must not touch stdout.
Examples found in repository?
examples/ping_pong.rs (line 13)
9fn main() {
10 let chunk = samples::ping_pong();
11 let rt = match Runtime::with_natives_and_config(
12 chunk,
13 std_native_table(),
14 RuntimeConfig {
15 workers: 1,
16 quantum: 10_000,
17 mailbox: byteflow::MailboxConfig::DEFAULT,
18 ..Default::default()
19 },
20 ) {
21 Ok(rt) => rt,
22 Err(e) => {
23 eprintln!("runtime: {e}");
24 std::process::exit(1);
25 }
26 };
27 let Some(main) = rt.function_index("main") else {
28 eprintln!("missing main");
29 std::process::exit(1);
30 };
31 let handle = match rt.spawn(main, &[]) {
32 Ok(h) => h,
33 Err(e) => {
34 eprintln!("spawn: {e}");
35 std::process::exit(1);
36 }
37 };
38 let outcome = handle.join();
39 let metrics = rt.metrics();
40 rt.shutdown();
41
42 match outcome {
43 FlowOutcome::Completed(Value::Int(2)) => {
44 println!("pong replied 2 (Atomic Hop)");
45 println!("{metrics}");
46 }
47 other => {
48 eprintln!("unexpected {other:?}");
49 std::process::exit(1);
50 }
51 }
52}More examples
examples/atomic_actors.rs (line 25)
21fn main() {
22 let chunk = samples::atomic_request_reply();
23 let rt = match Runtime::with_natives_and_config(
24 chunk,
25 std_native_table(),
26 RuntimeConfig {
27 workers: 2,
28 quantum: 10_000,
29 mailbox: byteflow::MailboxConfig::DEFAULT,
30 ..Default::default()
31 },
32 ) {
33 Ok(rt) => rt,
34 Err(e) => {
35 eprintln!("runtime: {e}");
36 std::process::exit(1);
37 }
38 };
39 let Some(main) = rt.function_index("main") else {
40 eprintln!("missing main");
41 std::process::exit(1);
42 };
43 let handle = match rt.spawn(main, &[]) {
44 Ok(h) => h,
45 Err(e) => {
46 eprintln!("spawn: {e}");
47 std::process::exit(1);
48 }
49 };
50 let outcome = handle.join();
51 let metrics = rt.metrics();
52 rt.shutdown();
53
54 match outcome {
55 FlowOutcome::Completed(Value::Int(42)) => {
56 println!("atomic request-reply ok: payload=42");
57 println!("{metrics}");
58 }
59 other => {
60 eprintln!("unexpected {other:?}");
61 std::process::exit(1);
62 }
63 }
64}