[INFO] fetching crate xidlc 0.8.0...
[INFO] testing xidlc-0.8.0 against beta-2026-03-05 for beta-1.95-1
[INFO] extracting crate xidlc 0.8.0 into /workspace/builds/worker-7-tc2/source
[INFO] started tweaking crates.io crate xidlc 0.8.0
[INFO] finished tweaking crates.io crate xidlc 0.8.0
[INFO] tweaked toml for crates.io crate xidlc 0.8.0 written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate xidlc 0.8.0 on toolchain beta-2026-03-05
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-03-05" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate xidlc 0.8.0 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2026-03-05" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-03-05" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 7e8de354d4b6be78c6427f1d1174a3f5834bbc179cace04b74bb1d869bf489ef
[INFO] running `Command { std: "docker" "start" "-a" "7e8de354d4b6be78c6427f1d1174a3f5834bbc179cace04b74bb1d869bf489ef", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "7e8de354d4b6be78c6427f1d1174a3f5834bbc179cace04b74bb1d869bf489ef", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7e8de354d4b6be78c6427f1d1174a3f5834bbc179cace04b74bb1d869bf489ef", kill_on_drop: false }`
[INFO] [stdout] 7e8de354d4b6be78c6427f1d1174a3f5834bbc179cace04b74bb1d869bf489ef
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-03-05" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] f34bb68fc639c17ddd6680376f3b6ce13b3d98e86239c6c671f55c5e01468560
[INFO] running `Command { std: "docker" "start" "-a" "f34bb68fc639c17ddd6680376f3b6ce13b3d98e86239c6c671f55c5e01468560", kill_on_drop: false }`
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling tree-sitter-language v0.1.7
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling libc v0.2.182
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling streaming-iterator v0.1.9
[INFO] [stderr]    Compiling clap_builder v4.5.60
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling toml_write v0.1.2
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling tree-sitter-idl v3.15.0
[INFO] [stderr]    Compiling cbindgen v0.28.0
[INFO] [stderr]    Compiling fastrand v2.3.0
[INFO] [stderr]    Compiling lock_api v0.4.14
[INFO] [stderr]    Compiling tree-sitter v0.25.0
[INFO] [stderr]    Compiling rust-embed-utils v8.11.0
[INFO] [stderr]    Compiling owo-colors v4.3.0
[INFO] [stderr]    Compiling tempfile v3.26.0
[INFO] [stderr]    Compiling clap v4.5.60
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling mio v1.1.1
[INFO] [stderr]    Compiling socket2 v0.6.2
[INFO] [stderr]    Compiling backtrace v0.3.76
[INFO] [stderr]    Compiling convert_case v0.8.0
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling tree-sitter-typescript v0.23.2
[INFO] [stderr]    Compiling tree-sitter-cpp v0.23.4
[INFO] [stderr]    Compiling tree-sitter-rust v0.23.3
[INFO] [stderr]    Compiling is_ci v1.2.0
[INFO] [stderr]    Compiling unicode-linebreak v0.1.5
[INFO] [stderr]    Compiling supports-color v3.0.2
[INFO] [stderr]    Compiling darling_core v0.21.3
[INFO] [stderr]    Compiling textwrap v0.16.2
[INFO] [stderr]    Compiling backtrace-ext v0.2.1
[INFO] [stderr]    Compiling matchers v0.2.0
[INFO] [stderr]    Compiling terminal_size v0.4.3
[INFO] [stderr]    Compiling indexmap v2.13.0
[INFO] [stderr]    Compiling supports-hyperlinks v3.2.0
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling tokio-macros v2.6.1
[INFO] [stderr]    Compiling rust-embed-impl v8.11.0
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling tokio v1.50.0
[INFO] [stderr]    Compiling rust-embed v8.11.0
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling darling_macro v0.21.3
[INFO] [stderr]    Compiling miette-derive v7.6.0
[INFO] [stderr]    Compiling clap_derive v4.5.55
[INFO] [stderr]    Compiling darling v0.21.3
[INFO] [stderr]    Compiling xidl-parser-derive v0.8.0
[INFO] [stderr]    Compiling utoipa-gen v5.4.0
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling memo-map v0.3.3
[INFO] [stderr]    Compiling supports-unicode v3.0.0
[INFO] [stderr]    Compiling doctest-file v1.0.0
[INFO] [stderr]    Compiling self_cell v1.2.2
[INFO] [stderr]    Compiling miette v7.6.0
[INFO] [stderr]    Compiling tracing-subscriber v0.3.22
[INFO] [stderr]    Compiling itertools v0.14.0
[INFO] [stderr]    Compiling tree-sitter-highlight v0.25.0
[INFO] [stderr]    Compiling enum_dispatch v0.3.13
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling serde_spanned v0.6.9
[INFO] [stderr]    Compiling toml_datetime v0.6.11
[INFO] [stderr]    Compiling minijinja v1.0.22
[INFO] [stderr]    Compiling minijinja v2.17.1
[INFO] [stderr]    Compiling toml_edit v0.22.27
[INFO] [stderr]    Compiling convert_case v0.11.0
[INFO] [stderr]    Compiling jiff v0.2.23
[INFO] [stderr]    Compiling semver v1.0.27
[INFO] [stderr]    Compiling md5 v0.8.0
[INFO] [stderr]    Compiling xidl-jsonrpc v0.8.0
[INFO] [stderr]    Compiling interprocess v2.4.0
[INFO] [stderr]    Compiling toml v0.8.23
[INFO] [stderr]    Compiling xidl-parser v0.8.0
[INFO] [stderr]    Compiling utoipa v5.4.0
[INFO] [stderr]    Compiling xidl-xcdr v0.8.0
[INFO] [stderr]    Compiling xidlc v0.8.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 2m 16s
[INFO] running `Command { std: "docker" "inspect" "f34bb68fc639c17ddd6680376f3b6ce13b3d98e86239c6c671f55c5e01468560", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f34bb68fc639c17ddd6680376f3b6ce13b3d98e86239c6c671f55c5e01468560", kill_on_drop: false }`
[INFO] [stdout] f34bb68fc639c17ddd6680376f3b6ce13b3d98e86239c6c671f55c5e01468560
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-03-05" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] e95d7119c5fe2126de4cb5aa94aa3e39b78cdb528630a3fe1f07614c49506c72
[INFO] running `Command { std: "docker" "start" "-a" "e95d7119c5fe2126de4cb5aa94aa3e39b78cdb528630a3fe1f07614c49506c72", kill_on_drop: false }`
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling console v0.15.11
[INFO] [stderr]    Compiling similar v2.7.0
[INFO] [stderr]    Compiling tempfile v3.26.0
[INFO] [stderr]    Compiling cbindgen v0.28.0
[INFO] [stderr]    Compiling terminal_size v0.4.3
[INFO] [stderr]    Compiling miette v7.6.0
[INFO] [stderr]    Compiling insta v1.46.3
[INFO] [stderr]    Compiling xidl-xcdr v0.8.0
[INFO] [stderr]    Compiling xidlc v0.8.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 23.53s
[INFO] running `Command { std: "docker" "inspect" "e95d7119c5fe2126de4cb5aa94aa3e39b78cdb528630a3fe1f07614c49506c72", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e95d7119c5fe2126de4cb5aa94aa3e39b78cdb528630a3fe1f07614c49506c72", kill_on_drop: false }`
[INFO] [stdout] e95d7119c5fe2126de4cb5aa94aa3e39b78cdb528630a3fe1f07614c49506c72
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2026-03-05" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 809836ea50d8281ff5dc878567a7b03980d1ad006d31e21560e8368591888ecb
[INFO] running `Command { std: "docker" "start" "-a" "809836ea50d8281ff5dc878567a7b03980d1ad006d31e21560e8368591888ecb", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.19s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/xidlc-9b4d4d45b5e3fbdb)
[INFO] [stdout] 
[INFO] [stdout] running 9 tests
[INFO] [stdout] test fmt::tests::jinja_content_braces_indents_block ... ok
[INFO] [stdout] test fmt::tests::jinja_control_statement_indents_block ... ok
[INFO] [stdout] test fmt::tests::jinja_else_branch_keeps_same_control_depth ... ok
[INFO] [stdout] test generate::utils::tests::test_parse_timestamp ... ok
[INFO] [stdout] test driver::lang::tests::test_plugin_from_str ... ok
[INFO] [stdout] test driver::tests::test_rust::test_code_gen ... FAILED
[INFO] [stdout] test driver::tests::test_rust_jsonrpc::test_code_gen ... FAILED
[INFO] [stdout] test driver::tests::test_code_gen ... FAILED
[INFO] [stdout] test driver::tests::test_rust_axum::test_code_gen ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- driver::tests::test_rust::test_code_gen stdout ----
[INFO] [stdout] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Snapshot Summary ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[INFO] [stdout] Snapshot file: src/driver/tests/test_rust/snapshots/xidlc__driver__tests__test_rust__rust_rust_gen__simple_union.snap
[INFO] [stdout] Snapshot: rust_rust_gen__simple_union
[INFO] [stdout] Source: src/driver/tests/test_rust/mod.rs:45
[INFO] [stdout] ────────────────────────────────────────────────────────────────────────────────
[INFO] [stdout] Expression: output
[INFO] [stdout] ────────────────────────────────────────────────────────────────────────────────
[INFO] [stdout] +new results
[INFO] [stdout] ────────────┬───────────────────────────────────────────────────────────────────
[INFO] [stdout]           1 │+===============
[INFO] [stdout]           2 │+simple_union.rs
[INFO] [stdout]           3 │+===============
[INFO] [stdout]           4 │+#[derive(
[INFO] [stdout]           5 │+Debug,
[INFO] [stdout]           6 │+Clone,
[INFO] [stdout]           7 │+Copy,
[INFO] [stdout]           8 │+PartialEq,
[INFO] [stdout]           9 │+Eq
[INFO] [stdout]          10 │+)]
[INFO] [stdout]          11 │+pub enum Tag{
[INFO] [stdout]          12 │+    A,
[INFO] [stdout]          13 │+    B
[INFO] [stdout]          14 │+}
[INFO] [stdout]          15 │+
[INFO] [stdout]          16 │+pub struct SimpleUnion{
[INFO] [stdout]          17 │+    tag:Tag,
[INFO] [stdout]          18 │+    data:SimpleUnionData,
[INFO] [stdout]          19 │+}
[INFO] [stdout]          20 │+
[INFO] [stdout]          21 │+union SimpleUnionData{
[INFO] [stdout]          22 │+    a:core::mem::ManuallyDrop<int>,
[INFO] [stdout]          23 │+    b:core::mem::ManuallyDrop<int>,
[INFO] [stdout]          24 │+}
[INFO] [stdout]          25 │+
[INFO] [stdout]          26 │+impl Drop for SimpleUnion{
[INFO] [stdout]          27 │+    fn drop(&mut self){
[INFO] [stdout]          28 │+        match self.tag{
[INFO] [stdout]          29 │+            A => {
[INFO] [stdout]          30 │+                unsafe{
[INFO] [stdout]          31 │+                    core::mem::ManuallyDrop::drop(&mut self.data.a);
[INFO] [stdout]          32 │+                }
[INFO] [stdout]          33 │+            }
[INFO] [stdout]          34 │+            B => {
[INFO] [stdout]          35 │+                unsafe{
[INFO] [stdout]          36 │+                    core::mem::ManuallyDrop::drop(&mut self.data.b);
[INFO] [stdout]          37 │+                }
[INFO] [stdout]          38 │+            }
[INFO] [stdout]          39 │+        }
[INFO] [stdout]          40 │+    }
[INFO] [stdout]          41 │+}
[INFO] [stdout]          42 │+
[INFO] [stdout]          43 │+impl SimpleUnion{
[INFO] [stdout]          44 │+    pub fn new_a(value:int)->Self{
[INFO] [stdout]          45 │+        Self{
[INFO] [stdout]          46 │+            tag:A,
[INFO] [stdout]          47 │+            data:SimpleUnionData{
[INFO] [stdout]          48 │+                a:core::mem::ManuallyDrop::new(value),
[INFO] [stdout]          49 │+            }
[INFO] [stdout]          50 │+        }
[INFO] [stdout]          51 │+    }
[INFO] [stdout]          52 │+
[INFO] [stdout]          53 │+    pub fn is_a(&self)->bool{
[INFO] [stdout]          54 │+        matches!(self.tag,A)
[INFO] [stdout]          55 │+    }
[INFO] [stdout]          56 │+
[INFO] [stdout]          57 │+    pub fn as_a(&self)->&int{
[INFO] [stdout]          58 │+        debug_assert!(self.is_a());
[INFO] [stdout]          59 │+        unsafe{
[INFO] [stdout]          60 │+            &self.data.a
[INFO] [stdout]          61 │+        }
[INFO] [stdout]          62 │+    }
[INFO] [stdout]          63 │+
[INFO] [stdout]          64 │+    pub fn as_a_mut(&mut self)->&mut int{
[INFO] [stdout]          65 │+        debug_assert!(self.is_a());
[INFO] [stdout]          66 │+        unsafe{
[INFO] [stdout]          67 │+            &mut self.data.a
[INFO] [stdout]          68 │+        }
[INFO] [stdout]          69 │+    }
[INFO] [stdout]          70 │+
[INFO] [stdout]          71 │+    pub fn into_a(self)->int{
[INFO] [stdout]          72 │+        debug_assert!(self.is_a());
[INFO] [stdout]          73 │+        unsafe{
[INFO] [stdout]          74 │+            let mut forget = core::mem::ManuallyDrop::new(self);
[INFO] [stdout]          75 │+            core::mem::ManuallyDrop::take(&mut forget.data.a)
[INFO] [stdout]          76 │+        }
[INFO] [stdout]          77 │+    }
[INFO] [stdout]          78 │+
[INFO] [stdout]          79 │+    pub fn new_b(value:int)->Self{
[INFO] [stdout]          80 │+        Self{
[INFO] [stdout]          81 │+            tag:B,
[INFO] [stdout]          82 │+            data:SimpleUnionData{
[INFO] [stdout]          83 │+                b:core::mem::ManuallyDrop::new(value),
[INFO] [stdout]          84 │+            }
[INFO] [stdout]          85 │+        }
[INFO] [stdout]          86 │+    }
[INFO] [stdout]          87 │+
[INFO] [stdout]          88 │+    pub fn is_b(&self)->bool{
[INFO] [stdout]          89 │+        matches!(self.tag,B)
[INFO] [stdout]          90 │+    }
[INFO] [stdout]          91 │+
[INFO] [stdout]          92 │+    pub fn as_b(&self)->&int{
[INFO] [stdout]          93 │+        debug_assert!(self.is_b());
[INFO] [stdout]          94 │+        unsafe{
[INFO] [stdout]          95 │+            &self.data.b
[INFO] [stdout]          96 │+        }
[INFO] [stdout]          97 │+    }
[INFO] [stdout]          98 │+
[INFO] [stdout]          99 │+    pub fn as_b_mut(&mut self)->&mut int{
[INFO] [stdout]         100 │+        debug_assert!(self.is_b());
[INFO] [stdout]         101 │+        unsafe{
[INFO] [stdout]         102 │+            &mut self.data.b
[INFO] [stdout]         103 │+        }
[INFO] [stdout]         104 │+    }
[INFO] [stdout]         105 │+
[INFO] [stdout]         106 │+    pub fn into_b(self)->int{
[INFO] [stdout]         107 │+        debug_assert!(self.is_b());
[INFO] [stdout]         108 │+        unsafe{
[INFO] [stdout]         109 │+            let mut forget = core::mem::ManuallyDrop::new(self);
[INFO] [stdout]         110 │+            core::mem::ManuallyDrop::take(&mut forget.data.b)
[INFO] [stdout]         111 │+        }
[INFO] [stdout]         112 │+    }
[INFO] [stdout]         113 │+
[INFO] [stdout]         114 │+    pub fn tag(&self)->&Tag{
[INFO] [stdout]         115 │+        &self.tag
[INFO] [stdout]         116 │+    }
[INFO] [stdout]         117 │+}
[INFO] [stdout] ────────────┴───────────────────────────────────────────────────────────────────
[INFO] [stdout] 
[INFO] [stdout] thread 'driver::tests::test_rust::test_code_gen' (19) panicked at src/driver/tests/test_rust/mod.rs:45:5:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: Os { code: 30, kind: ReadOnlyFilesystem, message: "Read-only file system" }
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x6442bf3a160a - std[b80a194dd3c418bb]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x6442bf3a160a - std[b80a194dd3c418bb]::backtrace_rs::backtrace::trace_unsynchronized::<std[b80a194dd3c418bb]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x6442bf3a160a - std[b80a194dd3c418bb]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x6442bf3a160a - <<std[b80a194dd3c418bb]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[10b6fa85044e1869]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x6442bf3ba68a - <core[10b6fa85044e1869]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x6442bf3ba68a - core[10b6fa85044e1869]::fmt::write
[INFO] [stdout]    6:     0x6442bf3a64d2 - std[b80a194dd3c418bb]::io::default_write_fmt::<alloc[dd269455e567d8e9]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x6442bf3a64d2 - <alloc[dd269455e567d8e9]::vec::Vec<u8> as std[b80a194dd3c418bb]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/io/mod.rs:1994:13
[INFO] [stdout]    8:     0x6442bf37d00f - <std[b80a194dd3c418bb]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x6442bf37d00f - std[b80a194dd3c418bb]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x6442bf398589 - std[b80a194dd3c418bb]::panicking::default_hook
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x6442be8b05ac - <alloc[dd269455e567d8e9]::boxed::Box<dyn for<'a, 'b> core[10b6fa85044e1869]::ops::function::Fn<(&'a std[b80a194dd3c418bb]::panic::PanicHookInfo<'b>,), Output = ()> + core[10b6fa85044e1869]::marker::Sync + core[10b6fa85044e1869]::marker::Send> as core[10b6fa85044e1869]::ops::function::Fn<(&std[b80a194dd3c418bb]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/alloc/src/boxed.rs:2254:9
[INFO] [stdout]   12:     0x6442be8b05ac - test[826cbc6ef54ab466]::test_main_with_exit_callback::<test[826cbc6ef54ab466]::test_main::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x6442bf398802 - <alloc[dd269455e567d8e9]::boxed::Box<dyn for<'a, 'b> core[10b6fa85044e1869]::ops::function::Fn<(&'a std[b80a194dd3c418bb]::panic::PanicHookInfo<'b>,), Output = ()> + core[10b6fa85044e1869]::marker::Sync + core[10b6fa85044e1869]::marker::Send> as core[10b6fa85044e1869]::ops::function::Fn<(&std[b80a194dd3c418bb]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/alloc/src/boxed.rs:2254:9
[INFO] [stdout]   14:     0x6442bf398802 - std[b80a194dd3c418bb]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x6442bf37d0c8 - std[b80a194dd3c418bb]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x6442bf374679 - std[b80a194dd3c418bb]::sys::backtrace::__rust_end_short_backtrace::<std[b80a194dd3c418bb]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x6442bf37de7d - __rustc[9698a3e60dd14283]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x6442bf3bafec - core[10b6fa85044e1869]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x6442bf3bad62 - core[10b6fa85044e1869]::result::unwrap_failed
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/result.rs:1867:5
[INFO] [stdout]   20:     0x6442be7e172d - core::result::Result<T,E>::unwrap::h8f12a7b6ee6576f7
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/result.rs:1233:23
[INFO] [stdout]   21:     0x6442be7e172d - xidlc::driver::tests::test_rust::assert_cases::{{closure}}::h3076cd8a458f3b4f
[INFO] [stdout]                                at /opt/rustwide/workdir/src/driver/tests/test_rust/mod.rs:45:5
[INFO] [stdout]   22:     0x6442be7e1c4e - xidlc::driver::tests::test_rust::test_code_gen::{{closure}}::h1d6515caf0a8e6f4
[INFO] [stdout]                                at /opt/rustwide/workdir/src/driver/tests/test_rust/mod.rs:56:59
[INFO] [stdout]   23:     0x6442be86be82 - <core::pin::Pin<P> as core::future::future::Future>::poll::h7269b232cf02af35
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/future/future.rs:133:9
[INFO] [stdout]   24:     0x6442be86c01d - <core::pin::Pin<P> as core::future::future::Future>::poll::ha7eca16e29d50446
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/future/future.rs:133:9
[INFO] [stdout]   25:     0x6442be591cdd - tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}::{{closure}}::h8dddc8d4138fdb03
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/scheduler/current_thread/mod.rs:769:70
[INFO] [stdout]   26:     0x6442be591a7b - tokio::task::coop::with_budget::h0833f0cd1a5082c9
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/task/coop/mod.rs:167:5
[INFO] [stdout]   27:     0x6442be591a7b - tokio::task::coop::budget::ha8266006ee14def9
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/task/coop/mod.rs:133:5
[INFO] [stdout]   28:     0x6442be591a7b - tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}::h25f439007d3f4b3d
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/scheduler/current_thread/mod.rs:769:25
[INFO] [stdout]   29:     0x6442be58ecc0 - tokio::runtime::scheduler::current_thread::Context::enter::h0186d5f1551ea574
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/scheduler/current_thread/mod.rs:446:19
[INFO] [stdout]   30:     0x6442be59061d - tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::h15cf200ff0097766
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/scheduler/current_thread/mod.rs:768:44
[INFO] [stdout]   31:     0x6442be590284 - tokio::runtime::scheduler::current_thread::CoreGuard::enter::{{closure}}::h440b96f4b3dd3da4
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/scheduler/current_thread/mod.rs:856:68
[INFO] [stdout]   32:     0x6442be86b0eb - tokio::runtime::context::scoped::Scoped<T>::set::h343eb9fd21e99d92
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/context/scoped.rs:40:9
[INFO] [stdout]   33:     0x6442be63f499 - tokio::runtime::context::set_scheduler::{{closure}}::hca58545c06db7536
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/context.rs:176:38
[INFO] [stdout]   34:     0x6442be735212 - std::thread::local::LocalKey<T>::try_with::hf689ec30273e1865
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/thread/local.rs:513:12
[INFO] [stdout]   35:     0x6442be73285e - std::thread::local::LocalKey<T>::with::h56ee0fbb5b4f9079
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/thread/local.rs:477:20
[INFO] [stdout]   36:     0x6442be63f40d - tokio::runtime::context::set_scheduler::h5c2633451a3e310e
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/context.rs:176:17
[INFO] [stdout]   37:     0x6442be590030 - tokio::runtime::scheduler::current_thread::CoreGuard::enter::hceaab51e60d89797
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/scheduler/current_thread/mod.rs:856:27
[INFO] [stdout]   38:     0x6442be590366 - tokio::runtime::scheduler::current_thread::CoreGuard::block_on::h3e6d29924c82f91e
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/scheduler/current_thread/mod.rs:756:24
[INFO] [stdout]   39:     0x6442be58b4d0 - tokio::runtime::scheduler::current_thread::CurrentThread::block_on::{{closure}}::h2052e2f880cce265
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/scheduler/current_thread/mod.rs:200:33
[INFO] [stdout]   40:     0x6442be6dd063 - tokio::runtime::context::runtime::enter_runtime::hbe9728016edb4e5a
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/context/runtime.rs:65:16
[INFO] [stdout]   41:     0x6442be58b291 - tokio::runtime::scheduler::current_thread::CurrentThread::block_on::h84b487f0c6a2e993
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/scheduler/current_thread/mod.rs:188:9
[INFO] [stdout]   42:     0x6442be6ddb84 - tokio::runtime::runtime::Runtime::block_on_inner::h26db8e162dbf12a9
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/runtime.rs:371:52
[INFO] [stdout]   43:     0x6442be6dde5f - tokio::runtime::runtime::Runtime::block_on::he1b4da13d1d16cf2
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/runtime.rs:345:18
[INFO] [stdout]   44:     0x6442be7e1a13 - xidlc::driver::tests::test_rust::test_code_gen::h8b111bb995f554f3
[INFO] [stdout]                                at /opt/rustwide/workdir/src/driver/tests/test_rust/mod.rs:52:40
[INFO] [stdout]   45:     0x6442be7e2107 - xidlc::driver::tests::test_rust::test_code_gen::{{closure}}::h2ec9df4f07cf8d6b
[INFO] [stdout]                                at /opt/rustwide/workdir/src/driver/tests/test_rust/mod.rs:49:25
[INFO] [stdout]   46:     0x6442be6b35a6 - core::ops::function::FnOnce::call_once::h2cc3d25e70d18624
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   47:     0x6442be8a468b - <fn() -> core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String> as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   48:     0x6442be8a468b - test[826cbc6ef54ab466]::__rust_begin_short_backtrace::<core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>, fn() -> core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:663:18
[INFO] [stdout]   49:     0x6442be8b107b - test[826cbc6ef54ab466]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:686:74
[INFO] [stdout]   50:     0x6442be8b107b - <core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<test[826cbc6ef54ab466]::run_test_in_process::{closure#0}> as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   51:     0x6442be8b107b - std[b80a194dd3c418bb]::panicking::catch_unwind::do_call::<core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<test[826cbc6ef54ab466]::run_test_in_process::{closure#0}>, core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:581:40
[INFO] [stdout]   52:     0x6442be8b107b - std[b80a194dd3c418bb]::panicking::catch_unwind::<core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>, core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<test[826cbc6ef54ab466]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:544:19
[INFO] [stdout]   53:     0x6442be8b107b - std[b80a194dd3c418bb]::panic::catch_unwind::<core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<test[826cbc6ef54ab466]::run_test_in_process::{closure#0}>, core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panic.rs:359:14
[INFO] [stdout]   54:     0x6442be8b107b - test[826cbc6ef54ab466]::run_test_in_process
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:686:27
[INFO] [stdout]   55:     0x6442be8b107b - test[826cbc6ef54ab466]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:607:43
[INFO] [stdout]   56:     0x6442be8ac794 - test[826cbc6ef54ab466]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:637:41
[INFO] [stdout]   57:     0x6442be8ac794 - std[b80a194dd3c418bb]::sys::backtrace::__rust_begin_short_backtrace::<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   58:     0x6442be8b3c82 - std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked::<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/thread/lifecycle.rs:91:13
[INFO] [stdout]   59:     0x6442be8b3c82 - <core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   60:     0x6442be8b3c82 - std[b80a194dd3c418bb]::panicking::catch_unwind::do_call::<core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:581:40
[INFO] [stdout]   61:     0x6442be8b3c82 - std[b80a194dd3c418bb]::panicking::catch_unwind::<(), core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:544:19
[INFO] [stdout]   62:     0x6442be8b3c82 - std[b80a194dd3c418bb]::panic::catch_unwind::<core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panic.rs:359:14
[INFO] [stdout]   63:     0x6442be8b3c82 - std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked::<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/thread/lifecycle.rs:89:26
[INFO] [stdout]   64:     0x6442be8b3c82 - <std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1} as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   65:     0x6442bf3a06bf - <alloc[dd269455e567d8e9]::boxed::Box<dyn core[10b6fa85044e1869]::ops::function::FnOnce<(), Output = ()> + core[10b6fa85044e1869]::marker::Send> as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/alloc/src/boxed.rs:2240:9
[INFO] [stdout]   66:     0x6442bf3a06bf - <std[b80a194dd3c418bb]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   67:     0x7a42cb40aaa4 - <unknown>
[INFO] [stdout]   68:     0x7a42cb497a64 - clone
[INFO] [stdout]   69:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- driver::tests::test_rust_jsonrpc::test_code_gen stdout ----
[INFO] [stdout] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Snapshot Summary ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[INFO] [stdout] Snapshot file: src/driver/tests/test_rust_jsonrpc/snapshots/xidlc__driver__tests__test_rust_jsonrpc__rust_jsonrpc_rust_gen__ipc.snap
[INFO] [stdout] Snapshot: rust_jsonrpc_rust_gen__ipc
[INFO] [stdout] Source: src/driver/tests/test_rust_jsonrpc/mod.rs:45
[INFO] [stdout] ────────────────────────────────────────────────────────────────────────────────
[INFO] [stdout] Expression: output
[INFO] [stdout] ────────────────────────────────────────────────────────────────────────────────
[INFO] [stdout] +new results
[INFO] [stdout] ────────────┬───────────────────────────────────────────────────────────────────
[INFO] [stdout]           1 │+===============
[INFO] [stdout]           2 │+ipc.rs
[INFO] [stdout]           3 │+===============
[INFO] [stdout]           4 │+#[async_trait::async_trait]
[INFO] [stdout]           5 │+pub trait Codegen{
[INFO] [stdout]           6 │+    async fn get_engine_version<'a>(&'a self)->Result<String,xidl_jsonrpc::Error>;
[INFO] [stdout]           7 │+    async fn get_properties<'a>(&'a self)->Result<::xidl_parser::hir::ParserProperties,xidl_jsonrpc::Error>;
[INFO] [stdout]           8 │+    async fn generate<'a>(&'a self,hir: ::xidl_parser::hir::Specification,path:String,props: ::xidl_parser::hir::ParserProperties)->Result<Vec<Artifact>,xidl_jsonrpc::Error>;
[INFO] [stdout]           9 │+}
[INFO] [stdout]          10 │+
[INFO] [stdout]          11 │+#[derive(::serde::Serialize,::serde::Deserialize)]
[INFO] [stdout]          12 │+struct CodegengetEngineVersionParams{
[INFO] [stdout]          13 │+}
[INFO] [stdout]          14 │+
[INFO] [stdout]          15 │+#[derive(::serde::Serialize,::serde::Deserialize)]
[INFO] [stdout]          16 │+struct CodegengetPropertiesParams{
[INFO] [stdout]          17 │+}
[INFO] [stdout]          18 │+
[INFO] [stdout]          19 │+#[derive(::serde::Serialize,::serde::Deserialize)]
[INFO] [stdout]          20 │+struct CodegengenerateParams{
[INFO] [stdout]          21 │+    hir: ::xidl_parser::hir::Specification,
[INFO] [stdout]          22 │+    path:String,
[INFO] [stdout]          23 │+    props: ::xidl_parser::hir::ParserProperties,
[INFO] [stdout]          24 │+}
[INFO] [stdout]          25 │+
[INFO] [stdout]          26 │+pub struct CodegenServer<T>{
[INFO] [stdout]          27 │+    inner:T,
[INFO] [stdout]          28 │+}
[INFO] [stdout]          29 │+
[INFO] [stdout]          30 │+impl<T>CodegenServer<T>{
[INFO] [stdout]          31 │+    pub fn new(inner:T)->Self{
[INFO] [stdout]          32 │+        Self{
[INFO] [stdout]          33 │+            inner}
[INFO] [stdout]          34 │+    }
[INFO] [stdout]          35 │+}
[INFO] [stdout]          36 │+
[INFO] [stdout]          37 │+#[async_trait::async_trait]
[INFO] [stdout]          38 │+impl<T>xidl_jsonrpc::Handler for CodegenServer<T>
[INFO] [stdout]          39 │+where
[INFO] [stdout]          40 │+T:Codegen+Send+Sync,
[INFO] [stdout]          41 │+{
[INFO] [stdout]          42 │+    async fn handle(&self,method:&str,params: ::serde_json::Value)->Result<::serde_json::Value,xidl_jsonrpc::Error>{
[INFO] [stdout]          43 │+        match method{
[INFO] [stdout]          44 │+            "Codegen.get_engine_version" => {
[INFO] [stdout]          45 │+                let result = self.inner.get_engine_version().await?;
[INFO] [stdout]          46 │+                Ok(::serde_json::to_value(result)?)
[INFO] [stdout]          47 │+            }
[INFO] [stdout]          48 │+            "Codegen.get_properties" => {
[INFO] [stdout]          49 │+                let result = self.inner.get_properties().await?;
[INFO] [stdout]          50 │+                Ok(::serde_json::to_value(result)?)
[INFO] [stdout]          51 │+            }
[INFO] [stdout]          52 │+            "Codegen.generate" => {
[INFO] [stdout]          53 │+                let params:CodegengenerateParams = ::serde_json::from_value(params)
[INFO] [stdout]          54 │+                .map_err(|err|xidl_jsonrpc::Error::invalid_params(err.to_string()))?;
[INFO] [stdout]          55 │+                let result = self.inner.generate(params.hir,params.path,params.props).await?;
[INFO] [stdout]          56 │+                Ok(::serde_json::to_value(result)?)
[INFO] [stdout]          57 │+            }
[INFO] [stdout]          58 │+            _ => Err(xidl_jsonrpc::Error::method_not_found(method)),
[INFO] [stdout]          59 │+        }
[INFO] [stdout]          60 │+    }
[INFO] [stdout]          61 │+}
[INFO] [stdout]          62 │+
[INFO] [stdout]          63 │+pub struct CodegenClient<R,W>{
[INFO] [stdout]          64 │+    client:tokio::sync::Mutex<xidl_jsonrpc::Client<tokio::io::BufReader<R>,W>>,
[INFO] [stdout]          65 │+}
[INFO] [stdout]          66 │+
[INFO] [stdout]          67 │+impl<R,W>CodegenClient<R,W>
[INFO] [stdout]          68 │+where
[INFO] [stdout]          69 │+R:tokio::io::AsyncRead+Unpin+Send,
[INFO] [stdout]          70 │+W:tokio::io::AsyncWrite+Unpin+Send,
[INFO] [stdout]          71 │+{
[INFO] [stdout]          72 │+    pub fn new(reader:R,writer:W)->Self{
[INFO] [stdout]          73 │+        Self{
[INFO] [stdout]          74 │+            client:tokio::sync::Mutex::new(xidl_jsonrpc::Client::new(tokio::io::BufReader::new(reader),writer)),
[INFO] [stdout]          75 │+        }
[INFO] [stdout]          76 │+    }
[INFO] [stdout]          77 │+}
[INFO] [stdout]          78 │+
[INFO] [stdout]          79 │+#[async_trait::async_trait]
[INFO] [stdout]          80 │+impl<R,W>Codegen for CodegenClient<R,W>
[INFO] [stdout]          81 │+where
[INFO] [stdout]          82 │+R:tokio::io::AsyncRead+Unpin+Send,
[INFO] [stdout]          83 │+W:tokio::io::AsyncWrite+Unpin+Send,
[INFO] [stdout]          84 │+{
[INFO] [stdout]          85 │+    async fn get_engine_version(&self)->Result<String,xidl_jsonrpc::Error>{
[INFO] [stdout]          86 │+        let params = CodegengetEngineVersionParams{
[INFO] [stdout]          87 │+        };
[INFO] [stdout]          88 │+        let mut client = self.client.lock().await;
[INFO] [stdout]          89 │+        client.call("Codegen.get_engine_version",params).await
[INFO] [stdout]          90 │+    }
[INFO] [stdout]          91 │+
[INFO] [stdout]          92 │+    async fn get_properties(&self)->Result<::xidl_parser::hir::ParserProperties,xidl_jsonrpc::Error>{
[INFO] [stdout]          93 │+        let params = CodegengetPropertiesParams{
[INFO] [stdout]          94 │+        };
[INFO] [stdout]          95 │+        let mut client = self.client.lock().await;
[INFO] [stdout]          96 │+        client.call("Codegen.get_properties",params).await
[INFO] [stdout]          97 │+    }
[INFO] [stdout]          98 │+
[INFO] [stdout]          99 │+    async fn generate(&self,hir: ::xidl_parser::hir::Specification,path:String,props: ::xidl_parser::hir::ParserProperties)->Result<Vec<Artifact>,xidl_jsonrpc::Error>{
[INFO] [stdout]         100 │+        let params = CodegengenerateParams{
[INFO] [stdout]         101 │+            hir,
[INFO] [stdout]         102 │+            path,
[INFO] [stdout]         103 │+            props,
[INFO] [stdout]         104 │+        };
[INFO] [stdout]         105 │+        let mut client = self.client.lock().await;
[INFO] [stdout]         106 │+        client.call("Codegen.generate",params).await
[INFO] [stdout]         107 │+    }
[INFO] [stdout]         108 │+}
[INFO] [stdout]         109 │+===============
[INFO] [stdout]         110 │+ipc.rs
[INFO] [stdout]         111 │+===============
[INFO] [stdout]         112 │+#[derive(Debug,::serde::Serialize,::serde::Deserialize)]
[INFO] [stdout]         113 │+pub struct ArtifactHir{
[INFO] [stdout]         114 │+    pub lang:String,
[INFO] [stdout]         115 │+    pub hir: ::xidl_parser::hir::Specification,
[INFO] [stdout]         116 │+    pub props: ::xidl_parser::hir::ParserProperties,
[INFO] [stdout]         117 │+}
[INFO] [stdout]         118 │+
[INFO] [stdout]         119 │+impl ArtifactHir{
[INFO] [stdout]         120 │+}
[INFO] [stdout]         121 │+
[INFO] [stdout]         122 │+#[derive(Debug,::serde::Serialize,::serde::Deserialize)]
[INFO] [stdout]         123 │+pub struct ArtifactFile{
[INFO] [stdout]         124 │+    pub path:String,
[INFO] [stdout]         125 │+    pub content:String,
[INFO] [stdout]         126 │+}
[INFO] [stdout]         127 │+
[INFO] [stdout]         128 │+impl ArtifactFile{
[INFO] [stdout]         129 │+}
[INFO] [stdout]         130 │+
[INFO] [stdout]         131 │+#[derive(
[INFO] [stdout]         132 │+Debug,
[INFO] [stdout]         133 │+Clone,
[INFO] [stdout]         134 │+Copy,
[INFO] [stdout]         135 │+PartialEq,
[INFO] [stdout]         136 │+Eq,
[INFO] [stdout]         137 │+::serde::Serialize,
[INFO] [stdout]         138 │+::serde::Deserialize
[INFO] [stdout]         139 │+)]
[INFO] [stdout]         140 │+pub enum ArtifactKind{
[INFO] [stdout]         141 │+    Hir,
[INFO] [stdout]         142 │+    File
[INFO] [stdout]         143 │+}
[INFO] [stdout]         144 │+
[INFO] [stdout]         145 │+pub struct Artifact{
[INFO] [stdout]         146 │+    tag:ArtifactKind,
[INFO] [stdout]         147 │+    data:ArtifactData,
[INFO] [stdout]         148 │+}
[INFO] [stdout]         149 │+
[INFO] [stdout]         150 │+union ArtifactData{
[INFO] [stdout]         151 │+    hir:core::mem::ManuallyDrop<ArtifactHir>,
[INFO] [stdout]         152 │+    file:core::mem::ManuallyDrop<ArtifactFile>,
[INFO] [stdout]         153 │+}
[INFO] [stdout]         154 │+
[INFO] [stdout]         155 │+impl Drop for Artifact{
[INFO] [stdout]         156 │+    fn drop(&mut self){
[INFO] [stdout]         157 │+        match self.tag{
[INFO] [stdout]         158 │+            ArtifactKind::Hir => {
[INFO] [stdout]         159 │+                unsafe{
[INFO] [stdout]         160 │+                    core::mem::ManuallyDrop::drop(&mut self.data.hir);
[INFO] [stdout]         161 │+                }
[INFO] [stdout]         162 │+            }
[INFO] [stdout]         163 │+            ArtifactKind::File => {
[INFO] [stdout]         164 │+                unsafe{
[INFO] [stdout]         165 │+                    core::mem::ManuallyDrop::drop(&mut self.data.file);
[INFO] [stdout]         166 │+                }
[INFO] [stdout]         167 │+            }
[INFO] [stdout]         168 │+        }
[INFO] [stdout]         169 │+    }
[INFO] [stdout]         170 │+}
[INFO] [stdout]         171 │+
[INFO] [stdout]         172 │+impl Artifact{
[INFO] [stdout]         173 │+    pub fn new_hir(value:ArtifactHir)->Self{
[INFO] [stdout]         174 │+        Self{
[INFO] [stdout]         175 │+            tag:ArtifactKind::Hir,
[INFO] [stdout]         176 │+            data:ArtifactData{
[INFO] [stdout]         177 │+                hir:core::mem::ManuallyDrop::new(value),
[INFO] [stdout]         178 │+            }
[INFO] [stdout]         179 │+        }
[INFO] [stdout]         180 │+    }
[INFO] [stdout]         181 │+
[INFO] [stdout]         182 │+    pub fn is_hir(&self)->bool{
[INFO] [stdout]         183 │+        matches!(self.tag,ArtifactKind::Hir)
[INFO] [stdout]         184 │+    }
[INFO] [stdout]         185 │+
[INFO] [stdout]         186 │+    pub fn as_hir(&self)->&ArtifactHir{
[INFO] [stdout]         187 │+        debug_assert!(self.is_hir());
[INFO] [stdout]         188 │+        unsafe{
[INFO] [stdout]         189 │+            &self.data.hir
[INFO] [stdout]         190 │+        }
[INFO] [stdout]         191 │+    }
[INFO] [stdout]         192 │+
[INFO] [stdout]         193 │+    pub fn as_hir_mut(&mut self)->&mut ArtifactHir{
[INFO] [stdout]         194 │+        debug_assert!(self.is_hir());
[INFO] [stdout]         195 │+        unsafe{
[INFO] [stdout]         196 │+            &mut self.data.hir
[INFO] [stdout]         197 │+        }
[INFO] [stdout]         198 │+    }
[INFO] [stdout]         199 │+
[INFO] [stdout]         200 │+    pub fn into_hir(self)->ArtifactHir{
[INFO] [stdout]         201 │+        debug_assert!(self.is_hir());
[INFO] [stdout]         202 │+        unsafe{
[INFO] [stdout]         203 │+            let mut forget = core::mem::ManuallyDrop::new(self);
[INFO] [stdout]         204 │+            core::mem::ManuallyDrop::take(&mut forget.data.hir)
[INFO] [stdout]         205 │+        }
[INFO] [stdout]         206 │+    }
[INFO] [stdout]         207 │+
[INFO] [stdout]         208 │+    pub fn new_file(value:ArtifactFile)->Self{
[INFO] [stdout]         209 │+        Self{
[INFO] [stdout]         210 │+            tag:ArtifactKind::File,
[INFO] [stdout]         211 │+            data:ArtifactData{
[INFO] [stdout]         212 │+                file:core::mem::ManuallyDrop::new(value),
[INFO] [stdout]         213 │+            }
[INFO] [stdout]         214 │+        }
[INFO] [stdout]         215 │+    }
[INFO] [stdout]         216 │+
[INFO] [stdout]         217 │+    pub fn is_file(&self)->bool{
[INFO] [stdout]         218 │+        matches!(self.tag,ArtifactKind::File)
[INFO] [stdout]         219 │+    }
[INFO] [stdout]         220 │+
[INFO] [stdout]         221 │+    pub fn as_file(&self)->&ArtifactFile{
[INFO] [stdout]         222 │+        debug_assert!(self.is_file());
[INFO] [stdout]         223 │+        unsafe{
[INFO] [stdout]         224 │+            &self.data.file
[INFO] [stdout]         225 │+        }
[INFO] [stdout]         226 │+    }
[INFO] [stdout]         227 │+
[INFO] [stdout]         228 │+    pub fn as_file_mut(&mut self)->&mut ArtifactFile{
[INFO] [stdout]         229 │+        debug_assert!(self.is_file());
[INFO] [stdout]         230 │+        unsafe{
[INFO] [stdout]         231 │+            &mut self.data.file
[INFO] [stdout]         232 │+        }
[INFO] [stdout]         233 │+    }
[INFO] [stdout]         234 │+
[INFO] [stdout]         235 │+    pub fn into_file(self)->ArtifactFile{
[INFO] [stdout]         236 │+        debug_assert!(self.is_file());
[INFO] [stdout]         237 │+        unsafe{
[INFO] [stdout]         238 │+            let mut forget = core::mem::ManuallyDrop::new(self);
[INFO] [stdout]         239 │+            core::mem::ManuallyDrop::take(&mut forget.data.file)
[INFO] [stdout]         240 │+        }
[INFO] [stdout]         241 │+    }
[INFO] [stdout]         242 │+
[INFO] [stdout]         243 │+    pub fn tag(&self)->&ArtifactKind{
[INFO] [stdout]         244 │+        &self.tag
[INFO] [stdout]         245 │+    }
[INFO] [stdout]         246 │+}
[INFO] [stdout]         247 │+
[INFO] [stdout]         248 │+impl serde::Serialize for Artifact{
[INFO] [stdout]         249 │+    fn serialize<__S>(&self,__serializer:__S)->serde::__private228::Result<__S::Ok,__S::Error>
[INFO] [stdout]         250 │+    where
[INFO] [stdout]         251 │+    __S:serde::Serializer,
[INFO] [stdout]         252 │+    {
[INFO] [stdout]         253 │+        match self.tag{
[INFO] [stdout]         254 │+            ArtifactKind::Hir => {
[INFO] [stdout]         255 │+                let mut s = serde::Serializer::serialize_struct_variant(
[INFO] [stdout]         256 │+                __serializer,
[INFO] [stdout]         257 │+                "Artifact",
[INFO] [stdout]         258 │+                0,
[INFO] [stdout]         259 │+                "ArtifactKind::Hir",
[INFO] [stdout]         260 │+                size_of::<ArtifactHir>(),
[INFO] [stdout]         261 │+                )?;
[INFO] [stdout]         262 │+                let x = unsafe{
[INFO] [stdout]         263 │+                    std::ops::Deref::deref(&self.data.hir)
[INFO] [stdout]         264 │+                };
[INFO] [stdout]         265 │+                serde::ser::SerializeStructVariant::serialize_field(&mut s,"ArtifactKind::Hir",x)?;
[INFO] [stdout]         266 │+                serde::ser::SerializeStructVariant::end(s)
[INFO] [stdout]         267 │+            },
[INFO] [stdout]         268 │+            ArtifactKind::File => {
[INFO] [stdout]         269 │+                let mut s = serde::Serializer::serialize_struct_variant(
[INFO] [stdout]         270 │+                __serializer,
[INFO] [stdout]         271 │+                "Artifact",
[INFO] [stdout]         272 │+                1,
[INFO] [stdout]         273 │+                "ArtifactKind::File",
[INFO] [stdout]         274 │+                size_of::<ArtifactFile>(),
[INFO] [stdout]         275 │+                )?;
[INFO] [stdout]         276 │+                let x = unsafe{
[INFO] [stdout]         277 │+                    std::ops::Deref::deref(&self.data.file)
[INFO] [stdout]         278 │+                };
[INFO] [stdout]         279 │+                serde::ser::SerializeStructVariant::serialize_field(&mut s,"ArtifactKind::File",x)?;
[INFO] [stdout]         280 │+                serde::ser::SerializeStructVariant::end(s)
[INFO] [stdout]         281 │+            },
[INFO] [stdout]         282 │+        }
[INFO] [stdout]         283 │+    }
[INFO] [stdout]         284 │+}
[INFO] [stdout]         285 │+
[INFO] [stdout]         286 │+impl<'de>serde::Deserialize<'de>for Artifact{
[INFO] [stdout]         287 │+    fn deserialize<D>(deserializer:D)->Result<Self,D::Error>
[INFO] [stdout]         288 │+    where
[INFO] [stdout]         289 │+    D:serde::Deserializer<'de>,
[INFO] [stdout]         290 │+    {
[INFO] [stdout]         291 │+        const VARIANTS:&[&str] = &[
[INFO] [stdout]         292 │+
[INFO] [stdout]         293 │+        "ArtifactKind::Hir",
[INFO] [stdout]         294 │+
[INFO] [stdout]         295 │+        "ArtifactKind::File",
[INFO] [stdout]         296 │+
[INFO] [stdout]         297 │+        ];
[INFO] [stdout]         298 │+        enum __Variant{
[INFO] [stdout]         299 │+            __Case0,
[INFO] [stdout]         300 │+            __Case1,
[INFO] [stdout]         301 │+        }
[INFO] [stdout]         302 │+
[INFO] [stdout]         303 │+        impl<'de>serde::Deserialize<'de>for __Variant{
[INFO] [stdout]         304 │+            fn deserialize<D>(deserializer:D)->Result<Self,D::Error>
[INFO] [stdout]         305 │+            where
[INFO] [stdout]         306 │+            D:serde::Deserializer<'de>,
[INFO] [stdout]         307 │+            {
[INFO] [stdout]         308 │+                struct __VariantVisitor;
[INFO] [stdout]         309 │+                impl serde::de::Visitor<'_>for __VariantVisitor{
[INFO] [stdout]         310 │+                    type Value = __Variant;
[INFO] [stdout]         311 │+                    fn expecting(&self,formatter:&mut core::fmt::Formatter)->core::fmt::Result{
[INFO] [stdout]         312 │+                        formatter.write_str("union variant")
[INFO] [stdout]         313 │+                    }
[INFO] [stdout]         314 │+
[INFO] [stdout]         315 │+                    fn visit_str<E>(self,value:&str)->Result<Self::Value,E>
[INFO] [stdout]         316 │+                    where
[INFO] [stdout]         317 │+                    E:serde::de::Error,
[INFO] [stdout]         318 │+                    {
[INFO] [stdout]         319 │+                        match value{
[INFO] [stdout]         320 │+                            "ArtifactKind::Hir" => Ok(__Variant::__Case0),
[INFO] [stdout]         321 │+                            "ArtifactKind::File" => Ok(__Variant::__Case1),
[INFO] [stdout]         322 │+                            _ => Err(E::unknown_variant(value,VARIANTS)),
[INFO] [stdout]         323 │+                        }
[INFO] [stdout]         324 │+                    }
[INFO] [stdout]         325 │+                }
[INFO] [stdout]         326 │+
[INFO] [stdout]         327 │+                deserializer.deserialize_identifier(__VariantVisitor)
[INFO] [stdout]         328 │+            }
[INFO] [stdout]         329 │+        }
[INFO] [stdout]         330 │+
[INFO] [stdout]         331 │+        struct __Visitor;
[INFO] [stdout]         332 │+        impl<'de>serde::de::Visitor<'de>for __Visitor{
[INFO] [stdout]         333 │+            type Value = Artifact;
[INFO] [stdout]         334 │+            fn expecting(&self,formatter:&mut core::fmt::Formatter)->core::fmt::Result{
[INFO] [stdout]         335 │+                formatter.write_str("externally tagged union Artifact")
[INFO] [stdout]         336 │+            }
[INFO] [stdout]         337 │+
[INFO] [stdout]         338 │+            fn visit_enum<A>(self,data:A)->Result<Self::Value,A::Error>
[INFO] [stdout]         339 │+            where
[INFO] [stdout]         340 │+            A:serde::de::EnumAccess<'de>,
[INFO] [stdout]         341 │+            {
[INFO] [stdout]         342 │+                let(variant,variant_access) = data.variant::<__Variant>()?;
[INFO] [stdout]         343 │+                match variant{
[INFO] [stdout]         344 │+                    __Variant::__Case0 => {
[INFO] [stdout]         345 │+                        struct __CaseVisitor;
[INFO] [stdout]         346 │+                        impl<'de>serde::de::Visitor<'de>for __CaseVisitor{
[INFO] [stdout]         347 │+                            type Value = ArtifactHir;
[INFO] [stdout]         348 │+                            fn expecting(
[INFO] [stdout]         349 │+                            &self,
[INFO] [stdout]         350 │+                            formatter:&mut core::fmt::Formatter,
[INFO] [stdout]         351 │+                            )->core::fmt::Result{
[INFO] [stdout]         352 │+                                formatter.write_str("struct variant ArtifactKind::Hir")
[INFO] [stdout]         353 │+                            }
[INFO] [stdout]         354 │+
[INFO] [stdout]         355 │+                            fn visit_map<M>(self,mut map:M)->Result<Self::Value,M::Error>
[INFO] [stdout]         356 │+                            where
[INFO] [stdout]         357 │+                            M:serde::de::MapAccess<'de>,
[INFO] [stdout]         358 │+                            {
[INFO] [stdout]         359 │+                                let mut value = None;
[INFO] [stdout]         360 │+                                while let Some(key) = map.next_key::<String>()?{
[INFO] [stdout]         361 │+                                    if key=="ArtifactKind::Hir"{
[INFO] [stdout]         362 │+                                        if value.is_some(){
[INFO] [stdout]         363 │+                                            return Err(serde::de::Error::duplicate_field(
[INFO] [stdout]         364 │+                                            "ArtifactKind::Hir",
[INFO] [stdout]         365 │+                                            ));
[INFO] [stdout]         366 │+                                        }
[INFO] [stdout]         367 │+                                        value = Some(map.next_value()?);
[INFO] [stdout]         368 │+
[INFO] [stdout]         369 │+                                    }else{
[INFO] [stdout]         370 │+                                        let _:serde::de::IgnoredAny = map.next_value()?;
[INFO] [stdout]         371 │+                                    }
[INFO] [stdout]         372 │+                                }
[INFO] [stdout]         373 │+                                value.ok_or_else(||{
[INFO] [stdout]         374 │+                                    serde::de::Error::missing_field("ArtifactKind::Hir")
[INFO] [stdout]         375 │+                                })
[INFO] [stdout]         376 │+                            }
[INFO] [stdout]         377 │+                        }
[INFO] [stdout]         378 │+
[INFO] [stdout]         379 │+                        let value = serde::de::VariantAccess::struct_variant(
[INFO] [stdout]         380 │+                        variant_access,
[INFO] [stdout]         381 │+                        &["ArtifactKind::Hir"],
[INFO] [stdout]         382 │+                        __CaseVisitor,
[INFO] [stdout]         383 │+                        )?;
[INFO] [stdout]         384 │+                        let tag = ArtifactKind::Hir;
[INFO] [stdout]         385 │+                        Ok(Artifact{
[INFO] [stdout]         386 │+                            tag,
[INFO] [stdout]         387 │+                            data:ArtifactData{
[INFO] [stdout]         388 │+                                hir:core::mem::ManuallyDrop::new(value),
[INFO] [stdout]         389 │+                            },
[INFO] [stdout]         390 │+                        })
[INFO] [stdout]         391 │+                    }
[INFO] [stdout]         392 │+                    __Variant::__Case1 => {
[INFO] [stdout]         393 │+                        struct __CaseVisitor;
[INFO] [stdout]         394 │+                        impl<'de>serde::de::Visitor<'de>for __CaseVisitor{
[INFO] [stdout]         395 │+                            type Value = ArtifactFile;
[INFO] [stdout]         396 │+                            fn expecting(
[INFO] [stdout]         397 │+                            &self,
[INFO] [stdout]         398 │+                            formatter:&mut core::fmt::Formatter,
[INFO] [stdout]         399 │+                            )->core::fmt::Result{
[INFO] [stdout]         400 │+                                formatter.write_str("struct variant ArtifactKind::File")
[INFO] [stdout]         401 │+                            }
[INFO] [stdout]         402 │+
[INFO] [stdout]         403 │+                            fn visit_map<M>(self,mut map:M)->Result<Self::Value,M::Error>
[INFO] [stdout]         404 │+                            where
[INFO] [stdout]         405 │+                            M:serde::de::MapAccess<'de>,
[INFO] [stdout]         406 │+                            {
[INFO] [stdout]         407 │+                                let mut value = None;
[INFO] [stdout]         408 │+                                while let Some(key) = map.next_key::<String>()?{
[INFO] [stdout]         409 │+                                    if key=="ArtifactKind::File"{
[INFO] [stdout]         410 │+                                        if value.is_some(){
[INFO] [stdout]         411 │+                                            return Err(serde::de::Error::duplicate_field(
[INFO] [stdout]         412 │+                                            "ArtifactKind::File",
[INFO] [stdout]         413 │+                                            ));
[INFO] [stdout]         414 │+                                        }
[INFO] [stdout]         415 │+                                        value = Some(map.next_value()?);
[INFO] [stdout]         416 │+
[INFO] [stdout]         417 │+                                    }else{
[INFO] [stdout]         418 │+                                        let _:serde::de::IgnoredAny = map.next_value()?;
[INFO] [stdout]         419 │+                                    }
[INFO] [stdout]         420 │+                                }
[INFO] [stdout]         421 │+                                value.ok_or_else(||{
[INFO] [stdout]         422 │+                                    serde::de::Error::missing_field("ArtifactKind::File")
[INFO] [stdout]         423 │+                                })
[INFO] [stdout]         424 │+                            }
[INFO] [stdout]         425 │+                        }
[INFO] [stdout]         426 │+
[INFO] [stdout]         427 │+                        let value = serde::de::VariantAccess::struct_variant(
[INFO] [stdout]         428 │+                        variant_access,
[INFO] [stdout]         429 │+                        &["ArtifactKind::File"],
[INFO] [stdout]         430 │+                        __CaseVisitor,
[INFO] [stdout]         431 │+                        )?;
[INFO] [stdout]         432 │+                        let tag = ArtifactKind::File;
[INFO] [stdout]         433 │+                        Ok(Artifact{
[INFO] [stdout]         434 │+                            tag,
[INFO] [stdout]         435 │+                            data:ArtifactData{
[INFO] [stdout]         436 │+                                file:core::mem::ManuallyDrop::new(value),
[INFO] [stdout]         437 │+                            },
[INFO] [stdout]         438 │+                        })
[INFO] [stdout]         439 │+                    }
[INFO] [stdout]         440 │+                }
[INFO] [stdout]         441 │+            }
[INFO] [stdout]         442 │+        }
[INFO] [stdout]         443 │+
[INFO] [stdout]         444 │+        deserializer.deserialize_enum("Artifact",VARIANTS,__Visitor)
[INFO] [stdout]         445 │+    }
[INFO] [stdout]         446 │+}
[INFO] [stdout] ────────────┴───────────────────────────────────────────────────────────────────
[INFO] [stdout] 
[INFO] [stdout] thread 'driver::tests::test_rust_jsonrpc::test_code_gen' (21) panicked at src/driver/tests/test_rust_jsonrpc/mod.rs:45:5:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: Os { code: 30, kind: ReadOnlyFilesystem, message: "Read-only file system" }
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x6442bf3a160a - std[b80a194dd3c418bb]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x6442bf3a160a - std[b80a194dd3c418bb]::backtrace_rs::backtrace::trace_unsynchronized::<std[b80a194dd3c418bb]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x6442bf3a160a - std[b80a194dd3c418bb]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x6442bf3a160a - <<std[b80a194dd3c418bb]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[10b6fa85044e1869]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x6442bf3ba68a - <core[10b6fa85044e1869]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x6442bf3ba68a - core[10b6fa85044e1869]::fmt::write
[INFO] [stdout]    6:     0x6442bf3a64d2 - std[b80a194dd3c418bb]::io::default_write_fmt::<alloc[dd269455e567d8e9]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x6442bf3a64d2 - <alloc[dd269455e567d8e9]::vec::Vec<u8> as std[b80a194dd3c418bb]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/io/mod.rs:1994:13
[INFO] [stdout]    8:     0x6442bf37d00f - <std[b80a194dd3c418bb]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x6442bf37d00f - std[b80a194dd3c418bb]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x6442bf398589 - std[b80a194dd3c418bb]::panicking::default_hook
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x6442be8b05ac - <alloc[dd269455e567d8e9]::boxed::Box<dyn for<'a, 'b> core[10b6fa85044e1869]::ops::function::Fn<(&'a std[b80a194dd3c418bb]::panic::PanicHookInfo<'b>,), Output = ()> + core[10b6fa85044e1869]::marker::Sync + core[10b6fa85044e1869]::marker::Send> as core[10b6fa85044e1869]::ops::function::Fn<(&std[b80a194dd3c418bb]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/alloc/src/boxed.rs:2254:9
[INFO] [stdout]   12:     0x6442be8b05ac - test[826cbc6ef54ab466]::test_main_with_exit_callback::<test[826cbc6ef54ab466]::test_main::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x6442bf398802 - <alloc[dd269455e567d8e9]::boxed::Box<dyn for<'a, 'b> core[10b6fa85044e1869]::ops::function::Fn<(&'a std[b80a194dd3c418bb]::panic::PanicHookInfo<'b>,), Output = ()> + core[10b6fa85044e1869]::marker::Sync + core[10b6fa85044e1869]::marker::Send> as core[10b6fa85044e1869]::ops::function::Fn<(&std[b80a194dd3c418bb]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/alloc/src/boxed.rs:2254:9
[INFO] [stdout]   14:     0x6442bf398802 - std[b80a194dd3c418bb]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x6442bf37d0c8 - std[b80a194dd3c418bb]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x6442bf374679 - std[b80a194dd3c418bb]::sys::backtrace::__rust_end_short_backtrace::<std[b80a194dd3c418bb]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x6442bf37de7d - __rustc[9698a3e60dd14283]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x6442bf3bafec - core[10b6fa85044e1869]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x6442bf3bad62 - core[10b6fa85044e1869]::result::unwrap_failed
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/result.rs:1867:5
[INFO] [stdout]   20:     0x6442be645b4d - core::result::Result<T,E>::unwrap::h8f12a7b6ee6576f7
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/result.rs:1233:23
[INFO] [stdout]   21:     0x6442be645b4d - xidlc::driver::tests::test_rust_jsonrpc::assert_cases::{{closure}}::ha78e1b9923482e6e
[INFO] [stdout]                                at /opt/rustwide/workdir/src/driver/tests/test_rust_jsonrpc/mod.rs:45:5
[INFO] [stdout]   22:     0x6442be64606e - xidlc::driver::tests::test_rust_jsonrpc::test_code_gen::{{closure}}::h46aedef71074266e
[INFO] [stdout]                                at /opt/rustwide/workdir/src/driver/tests/test_rust_jsonrpc/mod.rs:56:67
[INFO] [stdout]   23:     0x6442be86be82 - <core::pin::Pin<P> as core::future::future::Future>::poll::h7269b232cf02af35
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/future/future.rs:133:9
[INFO] [stdout]   24:     0x6442be86c01d - <core::pin::Pin<P> as core::future::future::Future>::poll::ha7eca16e29d50446
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/future/future.rs:133:9
[INFO] [stdout]   25:     0x6442be591cdd - tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}::{{closure}}::h8dddc8d4138fdb03
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/scheduler/current_thread/mod.rs:769:70
[INFO] [stdout]   26:     0x6442be591a7b - tokio::task::coop::with_budget::h0833f0cd1a5082c9
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/task/coop/mod.rs:167:5
[INFO] [stdout]   27:     0x6442be591a7b - tokio::task::coop::budget::ha8266006ee14def9
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/task/coop/mod.rs:133:5
[INFO] [stdout]   28:     0x6442be591a7b - tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}::h25f439007d3f4b3d
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/scheduler/current_thread/mod.rs:769:25
[INFO] [stdout]   29:     0x6442be58ecc0 - tokio::runtime::scheduler::current_thread::Context::enter::h0186d5f1551ea574
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/scheduler/current_thread/mod.rs:446:19
[INFO] [stdout]   30:     0x6442be59061d - tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::h15cf200ff0097766
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/scheduler/current_thread/mod.rs:768:44
[INFO] [stdout]   31:     0x6442be590284 - tokio::runtime::scheduler::current_thread::CoreGuard::enter::{{closure}}::h440b96f4b3dd3da4
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/scheduler/current_thread/mod.rs:856:68
[INFO] [stdout]   32:     0x6442be86b0eb - tokio::runtime::context::scoped::Scoped<T>::set::h343eb9fd21e99d92
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/context/scoped.rs:40:9
[INFO] [stdout]   33:     0x6442be63f499 - tokio::runtime::context::set_scheduler::{{closure}}::hca58545c06db7536
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/context.rs:176:38
[INFO] [stdout]   34:     0x6442be735212 - std::thread::local::LocalKey<T>::try_with::hf689ec30273e1865
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/thread/local.rs:513:12
[INFO] [stdout]   35:     0x6442be73285e - std::thread::local::LocalKey<T>::with::h56ee0fbb5b4f9079
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/thread/local.rs:477:20
[INFO] [stdout]   36:     0x6442be63f40d - tokio::runtime::context::set_scheduler::h5c2633451a3e310e
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/context.rs:176:17
[INFO] [stdout]   37:     0x6442be590030 - tokio::runtime::scheduler::current_thread::CoreGuard::enter::hceaab51e60d89797
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/scheduler/current_thread/mod.rs:856:27
[INFO] [stdout]   38:     0x6442be590366 - tokio::runtime::scheduler::current_thread::CoreGuard::block_on::h3e6d29924c82f91e
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/scheduler/current_thread/mod.rs:756:24
[INFO] [stdout]   39:     0x6442be58b4d0 - tokio::runtime::scheduler::current_thread::CurrentThread::block_on::{{closure}}::h2052e2f880cce265
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/scheduler/current_thread/mod.rs:200:33
[INFO] [stdout]   40:     0x6442be6dd063 - tokio::runtime::context::runtime::enter_runtime::hbe9728016edb4e5a
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/context/runtime.rs:65:16
[INFO] [stdout]   41:     0x6442be58b291 - tokio::runtime::scheduler::current_thread::CurrentThread::block_on::h84b487f0c6a2e993
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/scheduler/current_thread/mod.rs:188:9
[INFO] [stdout]   42:     0x6442be6ddb84 - tokio::runtime::runtime::Runtime::block_on_inner::h26db8e162dbf12a9
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/runtime.rs:371:52
[INFO] [stdout]   43:     0x6442be6dde5f - tokio::runtime::runtime::Runtime::block_on::he1b4da13d1d16cf2
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/runtime.rs:345:18
[INFO] [stdout]   44:     0x6442be645e33 - xidlc::driver::tests::test_rust_jsonrpc::test_code_gen::h298f0d0b41342c7e
[INFO] [stdout]                                at /opt/rustwide/workdir/src/driver/tests/test_rust_jsonrpc/mod.rs:52:40
[INFO] [stdout]   45:     0x6442be646527 - xidlc::driver::tests::test_rust_jsonrpc::test_code_gen::{{closure}}::he67d95ef2604be80
[INFO] [stdout]                                at /opt/rustwide/workdir/src/driver/tests/test_rust_jsonrpc/mod.rs:49:25
[INFO] [stdout]   46:     0x6442be6b52c6 - core::ops::function::FnOnce::call_once::h7129b124930dd019
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   47:     0x6442be8a468b - <fn() -> core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String> as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   48:     0x6442be8a468b - test[826cbc6ef54ab466]::__rust_begin_short_backtrace::<core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>, fn() -> core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:663:18
[INFO] [stdout]   49:     0x6442be8b107b - test[826cbc6ef54ab466]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:686:74
[INFO] [stdout]   50:     0x6442be8b107b - <core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<test[826cbc6ef54ab466]::run_test_in_process::{closure#0}> as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   51:     0x6442be8b107b - std[b80a194dd3c418bb]::panicking::catch_unwind::do_call::<core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<test[826cbc6ef54ab466]::run_test_in_process::{closure#0}>, core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:581:40
[INFO] [stdout]   52:     0x6442be8b107b - std[b80a194dd3c418bb]::panicking::catch_unwind::<core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>, core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<test[826cbc6ef54ab466]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:544:19
[INFO] [stdout]   53:     0x6442be8b107b - std[b80a194dd3c418bb]::panic::catch_unwind::<core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<test[826cbc6ef54ab466]::run_test_in_process::{closure#0}>, core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panic.rs:359:14
[INFO] [stdout]   54:     0x6442be8b107b - test[826cbc6ef54ab466]::run_test_in_process
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:686:27
[INFO] [stdout]   55:     0x6442be8b107b - test[826cbc6ef54ab466]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:607:43
[INFO] [stdout]   56:     0x6442be8ac794 - test[826cbc6ef54ab466]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:637:41
[INFO] [stdout]   57:     0x6442be8ac794 - std[b80a194dd3c418bb]::sys::backtrace::__rust_begin_short_backtrace::<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   58:     0x6442be8b3c82 - std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked::<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/thread/lifecycle.rs:91:13
[INFO] [stdout]   59:     0x6442be8b3c82 - <core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   60:     0x6442be8b3c82 - std[b80a194dd3c418bb]::panicking::catch_unwind::do_call::<core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:581:40
[INFO] [stdout]   61:     0x6442be8b3c82 - std[b80a194dd3c418bb]::panicking::catch_unwind::<(), core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:544:19
[INFO] [stdout]   62:     0x6442be8b3c82 - std[b80a194dd3c418bb]::panic::catch_unwind::<core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panic.rs:359:14
[INFO] [stdout]   63:     0x6442be8b3c82 - std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked::<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/thread/lifecycle.rs:89:26
[INFO] [stdout]   64:     0x6442be8b3c82 - <std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1} as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   65:     0x6442bf3a06bf - <alloc[dd269455e567d8e9]::boxed::Box<dyn core[10b6fa85044e1869]::ops::function::FnOnce<(), Output = ()> + core[10b6fa85044e1869]::marker::Send> as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/alloc/src/boxed.rs:2240:9
[INFO] [stdout]   66:     0x6442bf3a06bf - <std[b80a194dd3c418bb]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   67:     0x7a42cb40aaa4 - <unknown>
[INFO] [stdout]   68:     0x7a42cb497a64 - clone
[INFO] [stdout]   69:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- driver::tests::test_code_gen stdout ----
[INFO] [stdout] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Snapshot Summary ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[INFO] [stdout] Snapshot file: src/driver/tests/snapshots/xidlc__driver__tests__c_c_gen__annotation_basic.snap
[INFO] [stdout] Snapshot: c_c_gen__annotation_basic
[INFO] [stdout] Source: src/driver/tests/mod.rs:60
[INFO] [stdout] ────────────────────────────────────────────────────────────────────────────────
[INFO] [stdout] Expression: output
[INFO] [stdout] ────────────────────────────────────────────────────────────────────────────────
[INFO] [stdout] +new results
[INFO] [stdout] ────────────┬───────────────────────────────────────────────────────────────────
[INFO] [stdout]           1 │+===============
[INFO] [stdout]           2 │+annotation_basic.c
[INFO] [stdout]           3 │+===============
[INFO] [stdout]           4 │+#include"annotation_basic.h"
[INFO] [stdout]           5 │+
[INFO] [stdout]           6 │+S S_new(void){
[INFO] [stdout]           7 │+    S value;
[INFO] [stdout]           8 │+    S_init(&value);
[INFO] [stdout]           9 │+    return value;
[INFO] [stdout]          10 │+}
[INFO] [stdout]          11 │+
[INFO] [stdout]          12 │+void S_init(S * self){
[INFO] [stdout]          13 │+    * self = (S){
[INFO] [stdout]          14 │+        0
[INFO] [stdout]          15 │+    };
[INFO] [stdout]          16 │+}
[INFO] [stdout]          17 │+
[INFO] [stdout]          18 │+E E_new(void){
[INFO] [stdout]          19 │+    E value;
[INFO] [stdout]          20 │+    E_init(&value);
[INFO] [stdout]          21 │+    return value;
[INFO] [stdout]          22 │+}
[INFO] [stdout]          23 │+
[INFO] [stdout]          24 │+void E_init(E * self){
[INFO] [stdout]          25 │+    * self = (E)0;
[INFO] [stdout]          26 │+}
[INFO] [stdout]          27 │+
[INFO] [stdout]          28 │+BM BM_new(void){
[INFO] [stdout]          29 │+    BM value;
[INFO] [stdout]          30 │+    BM_init(&value);
[INFO] [stdout]          31 │+    return value;
[INFO] [stdout]          32 │+}
[INFO] [stdout]          33 │+
[INFO] [stdout]          34 │+void BM_init(BM * self){
[INFO] [stdout]          35 │+    * self = (BM)0;
[INFO] [stdout]          36 │+}
[INFO] [stdout]          37 │+
[INFO] [stdout]          38 │+unsigned int BM_bits(BM const * self){
[INFO] [stdout]          39 │+    return(unsigned int)( * self);
[INFO] [stdout]          40 │+}
[INFO] [stdout]          41 │+
[INFO] [stdout]          42 │+bool BM_is_empty(BM const * self){
[INFO] [stdout]          43 │+    return BM_bits(self) == 0u;
[INFO] [stdout]          44 │+}
[INFO] [stdout]          45 │+
[INFO] [stdout]          46 │+bool BM_is_all(BM const * self){
[INFO] [stdout]          47 │+    return(BM_bits(self)&(A|B)) == (A|B);
[INFO] [stdout]          48 │+}
[INFO] [stdout]          49 │+
[INFO] [stdout]          50 │+bool BM_contains(BM const * self, BM other){
[INFO] [stdout]          51 │+    return(BM_bits(self)&(unsigned int)other) == (unsigned int)other;
[INFO] [stdout]          52 │+}
[INFO] [stdout]          53 │+
[INFO] [stdout]          54 │+bool BM_intersects(BM const * self, BM other){
[INFO] [stdout]          55 │+    return(BM_bits(self)&(unsigned int)other) != 0u;
[INFO] [stdout]          56 │+}
[INFO] [stdout]          57 │+
[INFO] [stdout]          58 │+void BM_insert(BM * self, BM other){
[INFO] [stdout]          59 │+    * self = (BM)(BM_bits(self)|(unsigned int)other);
[INFO] [stdout]          60 │+}
[INFO] [stdout]          61 │+
[INFO] [stdout]          62 │+void BM_remove(BM * self, BM other){
[INFO] [stdout]          63 │+    * self = (BM)(BM_bits(self)&~(unsigned int)other);
[INFO] [stdout]          64 │+}
[INFO] [stdout]          65 │+
[INFO] [stdout]          66 │+void BM_toggle(BM * self, BM other){
[INFO] [stdout]          67 │+    * self = (BM)(BM_bits(self)^(unsigned int)other);
[INFO] [stdout]          68 │+}
[INFO] [stdout]          69 │+
[INFO] [stdout]          70 │+void BM_set(BM * self, BM other, bool value){
[INFO] [stdout]          71 │+    if(value){
[INFO] [stdout]          72 │+        BM_insert(self, other);
[INFO] [stdout]          73 │+
[INFO] [stdout]          74 │+    }else{
[INFO] [stdout]          75 │+        BM_remove(self, other);
[INFO] [stdout]          76 │+    }
[INFO] [stdout]          77 │+}
[INFO] [stdout]          78 │+
[INFO] [stdout]          79 │+U U_new(void){
[INFO] [stdout]          80 │+    U value;
[INFO] [stdout]          81 │+    U_init(&value);
[INFO] [stdout]          82 │+    return value;
[INFO] [stdout]          83 │+}
[INFO] [stdout]          84 │+
[INFO] [stdout]          85 │+void U_init(U * self){
[INFO] [stdout]          86 │+    * self = (U){
[INFO] [stdout]          87 │+        0
[INFO] [stdout]          88 │+    };
[INFO] [stdout]          89 │+}
[INFO] [stdout]          90 │+
[INFO] [stdout]          91 │+I_ping_In I_ping_In_new(void){
[INFO] [stdout]          92 │+    I_ping_In value;
[INFO] [stdout]          93 │+    I_ping_In_init(&value);
[INFO] [stdout]          94 │+    return value;
[INFO] [stdout]          95 │+}
[INFO] [stdout]          96 │+
[INFO] [stdout]          97 │+void I_ping_In_init(I_ping_In * self){
[INFO] [stdout]          98 │+    * self = (I_ping_In){
[INFO] [stdout]          99 │+        0
[INFO] [stdout]         100 │+    };
[INFO] [stdout]         101 │+}
[INFO] [stdout]         102 │+
[INFO] [stdout]         103 │+I_ping_Out I_ping_Out_new(void){
[INFO] [stdout]         104 │+    I_ping_Out value;
[INFO] [stdout]         105 │+    I_ping_Out_init(&value);
[INFO] [stdout]         106 │+    return value;
[INFO] [stdout]         107 │+}
[INFO] [stdout]         108 │+
[INFO] [stdout]         109 │+void I_ping_Out_init(I_ping_Out * self){
[INFO] [stdout]         110 │+    * self = (I_ping_Out){
[INFO] [stdout]         111 │+        0
[INFO] [stdout]         112 │+    };
[INFO] [stdout]         113 │+}
[INFO] [stdout]         114 │+
[INFO] [stdout]         115 │+I_ping_Result I_ping_Result_new(void){
[INFO] [stdout]         116 │+    I_ping_Result value;
[INFO] [stdout]         117 │+    I_ping_Result_init(&value);
[INFO] [stdout]         118 │+    return value;
[INFO] [stdout]         119 │+}
[INFO] [stdout]         120 │+
[INFO] [stdout]         121 │+void I_ping_Result_init(I_ping_Result * self){
[INFO] [stdout]         122 │+    * self = (I_ping_Result){
[INFO] [stdout]         123 │+        0
[INFO] [stdout]         124 │+    };
[INFO] [stdout]         125 │+}
[INFO] [stdout]         126 │+
[INFO] [stdout]         127 │+I_get_attribute_value_In I_get_attribute_value_In_new(void){
[INFO] [stdout]         128 │+    I_get_attribute_value_In value;
[INFO] [stdout]         129 │+    I_get_attribute_value_In_init(&value);
[INFO] [stdout]         130 │+    return value;
[INFO] [stdout]         131 │+}
[INFO] [stdout]         132 │+
[INFO] [stdout]         133 │+void I_get_attribute_value_In_init(I_get_attribute_value_In * self){
[INFO] [stdout]         134 │+    * self = (I_get_attribute_value_In){
[INFO] [stdout]         135 │+        0
[INFO] [stdout]         136 │+    };
[INFO] [stdout]         137 │+}
[INFO] [stdout]         138 │+
[INFO] [stdout]         139 │+I_get_attribute_value_Out I_get_attribute_value_Out_new(void){
[INFO] [stdout]         140 │+    I_get_attribute_value_Out value;
[INFO] [stdout]         141 │+    I_get_attribute_value_Out_init(&value);
[INFO] [stdout]         142 │+    return value;
[INFO] [stdout]         143 │+}
[INFO] [stdout]         144 │+
[INFO] [stdout]         145 │+void I_get_attribute_value_Out_init(I_get_attribute_value_Out * self){
[INFO] [stdout]         146 │+    * self = (I_get_attribute_value_Out){
[INFO] [stdout]         147 │+        0
[INFO] [stdout]         148 │+    };
[INFO] [stdout]         149 │+}
[INFO] [stdout]         150 │+
[INFO] [stdout]         151 │+I_get_attribute_value_Result I_get_attribute_value_Result_new(void){
[INFO] [stdout]         152 │+    I_get_attribute_value_Result value;
[INFO] [stdout]         153 │+    I_get_attribute_value_Result_init(&value);
[INFO] [stdout]         154 │+    return value;
[INFO] [stdout]         155 │+}
[INFO] [stdout]         156 │+
[INFO] [stdout]         157 │+void I_get_attribute_value_Result_init(I_get_attribute_value_Result * self){
[INFO] [stdout]         158 │+    * self = (I_get_attribute_value_Result){
[INFO] [stdout]         159 │+        0
[INFO] [stdout]         160 │+    };
[INFO] [stdout]         161 │+}
[INFO] [stdout]         162 │+
[INFO] [stdout]         163 │+I_set_attribute_value_In I_set_attribute_value_In_new(void){
[INFO] [stdout]         164 │+    I_set_attribute_value_In value;
[INFO] [stdout]         165 │+    I_set_attribute_value_In_init(&value);
[INFO] [stdout]         166 │+    return value;
[INFO] [stdout]         167 │+}
[INFO] [stdout]         168 │+
[INFO] [stdout]         169 │+void I_set_attribute_value_In_init(I_set_attribute_value_In * self){
[INFO] [stdout]         170 │+    * self = (I_set_attribute_value_In){
[INFO] [stdout]         171 │+        0
[INFO] [stdout]         172 │+    };
[INFO] [stdout]         173 │+}
[INFO] [stdout]         174 │+
[INFO] [stdout]         175 │+I_set_attribute_value_Out I_set_attribute_value_Out_new(void){
[INFO] [stdout]         176 │+    I_set_attribute_value_Out value;
[INFO] [stdout]         177 │+    I_set_attribute_value_Out_init(&value);
[INFO] [stdout]         178 │+    return value;
[INFO] [stdout]         179 │+}
[INFO] [stdout]         180 │+
[INFO] [stdout]         181 │+void I_set_attribute_value_Out_init(I_set_attribute_value_Out * self){
[INFO] [stdout]         182 │+    * self = (I_set_attribute_value_Out){
[INFO] [stdout]         183 │+        0
[INFO] [stdout]         184 │+    };
[INFO] [stdout]         185 │+}
[INFO] [stdout]         186 │+
[INFO] [stdout]         187 │+I_set_attribute_value_Result I_set_attribute_value_Result_new(void){
[INFO] [stdout]         188 │+    I_set_attribute_value_Result value;
[INFO] [stdout]         189 │+    I_set_attribute_value_Result_init(&value);
[INFO] [stdout]         190 │+    return value;
[INFO] [stdout]         191 │+}
[INFO] [stdout]         192 │+
[INFO] [stdout]         193 │+void I_set_attribute_value_Result_init(I_set_attribute_value_Result * self){
[INFO] [stdout]         194 │+    * self = (I_set_attribute_value_Result){
[INFO] [stdout]         195 │+        0
[INFO] [stdout]         196 │+    };
[INFO] [stdout]         197 │+}
[INFO] [stdout]         198 │+
[INFO] [stdout]         199 │+I_Call I_Call_new(void){
[INFO] [stdout]         200 │+    I_Call value;
[INFO] [stdout]         201 │+    I_Call_init(&value);
[INFO] [stdout]         202 │+    return value;
[INFO] [stdout]         203 │+}
[INFO] [stdout]         204 │+
[INFO] [stdout]         205 │+void I_Call_init(I_Call * self){
[INFO] [stdout]         206 │+    * self = (I_Call){
[INFO] [stdout]         207 │+        0
[INFO] [stdout]         208 │+    };
[INFO] [stdout]         209 │+}
[INFO] [stdout]         210 │+
[INFO] [stdout]         211 │+I_Request I_Request_new(void){
[INFO] [stdout]         212 │+    I_Request value;
[INFO] [stdout]         213 │+    I_Request_init(&value);
[INFO] [stdout]         214 │+    return value;
[INFO] [stdout]         215 │+}
[INFO] [stdout]         216 │+
[INFO] [stdout]         217 │+void I_Request_init(I_Request * self){
[INFO] [stdout]         218 │+    * self = (I_Request){
[INFO] [stdout]         219 │+        0
[INFO] [stdout]         220 │+    };
[INFO] [stdout]         221 │+}
[INFO] [stdout]         222 │+
[INFO] [stdout]         223 │+I_Return I_Return_new(void){
[INFO] [stdout]         224 │+    I_Return value;
[INFO] [stdout]         225 │+    I_Return_init(&value);
[INFO] [stdout]         226 │+    return value;
[INFO] [stdout]         227 │+}
[INFO] [stdout]         228 │+
[INFO] [stdout]         229 │+void I_Return_init(I_Return * self){
[INFO] [stdout]         230 │+    * self = (I_Return){
[INFO] [stdout]         231 │+        0
[INFO] [stdout]         232 │+    };
[INFO] [stdout]         233 │+}
[INFO] [stdout]         234 │+
[INFO] [stdout]         235 │+I_Reply I_Reply_new(void){
[INFO] [stdout]         236 │+    I_Reply value;
[INFO] [stdout]         237 │+    I_Reply_init(&value);
[INFO] [stdout]         238 │+    return value;
[INFO] [stdout]         239 │+}
[INFO] [stdout]         240 │+
[INFO] [stdout]         241 │+void I_Reply_init(I_Reply * self){
[INFO] [stdout]         242 │+    * self = (I_Reply){
[INFO] [stdout]         243 │+        0
[INFO] [stdout]         244 │+    };
[INFO] [stdout]         245 │+}
[INFO] [stdout]         246 │+
[INFO] [stdout]         247 │+void I_ping(void){
[INFO] [stdout]         248 │+}
[INFO] [stdout]         249 │+
[INFO] [stdout]         250 │+int32_t I_get_attribute_value(void){
[INFO] [stdout]         251 │+    int32_t result = {
[INFO] [stdout]         252 │+        0
[INFO] [stdout]         253 │+    };
[INFO] [stdout]         254 │+    return result;
[INFO] [stdout]         255 │+}
[INFO] [stdout]         256 │+
[INFO] [stdout]         257 │+void I_set_attribute_value(int32_t value){
[INFO] [stdout]         258 │+}
[INFO] [stdout]         259 │+===============
[INFO] [stdout]         260 │+annotation_basic.h
[INFO] [stdout]         261 │+===============
[INFO] [stdout]         262 │+#ifndef ANNOTATION_BASIC_H
[INFO] [stdout]         263 │+#define ANNOTATION_BASIC_H
[INFO] [stdout]         264 │+#include<stdbool.h>
[INFO] [stdout]         265 │+#include<stdint.h>
[INFO] [stdout]         266 │+#include<wchar.h>
[INFO] [stdout]         267 │+
[INFO] [stdout]         268 │+typedef struct S{
[INFO] [stdout]         269 │+    int32_t a;
[INFO] [stdout]         270 │+    int16_t b;
[INFO] [stdout]         271 │+
[INFO] [stdout]         272 │+}S;
[INFO] [stdout]         273 │+S S_new(void);
[INFO] [stdout]         274 │+void S_init(S * self);
[INFO] [stdout]         275 │+typedef enum E{
[INFO] [stdout]         276 │+    A, B,
[INFO] [stdout]         277 │+}E;
[INFO] [stdout]         278 │+E E_new(void);
[INFO] [stdout]         279 │+void E_init(E * self);
[INFO] [stdout]         280 │+typedef enum BM{
[INFO] [stdout]         281 │+    A, B,
[INFO] [stdout]         282 │+}BM;
[INFO] [stdout]         283 │+BM BM_new(void);
[INFO] [stdout]         284 │+void BM_init(BM * self);
[INFO] [stdout]         285 │+unsigned int BM_bits(BM const * self);
[INFO] [stdout]         286 │+bool BM_is_empty(BM const * self);
[INFO] [stdout]         287 │+bool BM_is_all(BM const * self);
[INFO] [stdout]         288 │+bool BM_contains(BM const * self, BM other);
[INFO] [stdout]         289 │+bool BM_intersects(BM const * self, BM other);
[INFO] [stdout]         290 │+void BM_insert(BM * self, BM other);
[INFO] [stdout]         291 │+void BM_remove(BM * self, BM other);
[INFO] [stdout]         292 │+void BM_toggle(BM * self, BM other);
[INFO] [stdout]         293 │+void BM_set(BM * self, BM other, bool value);
[INFO] [stdout]         294 │+typedef struct U{
[INFO] [stdout]         295 │+    int32_t _d;
[INFO] [stdout]         296 │+    union{
[INFO] [stdout]         297 │+        int32_t a;
[INFO] [stdout]         298 │+        int32_t b;
[INFO] [stdout]         299 │+
[INFO] [stdout]         300 │+    }_u;
[INFO] [stdout]         301 │+
[INFO] [stdout]         302 │+}U;
[INFO] [stdout]         303 │+U U_new(void);
[INFO] [stdout]         304 │+void U_init(U * self);
[INFO] [stdout]         305 │+static const int32_t I_ping_Hash = 18846175;
[INFO] [stdout]         306 │+static const int32_t I_get_attribute_value_Hash = 3881857402;
[INFO] [stdout]         307 │+static const int32_t I_set_attribute_value_Hash = 1976821110;
[INFO] [stdout]         308 │+typedef struct I_ping_In{
[INFO] [stdout]         309 │+    dds_rpc_UnusedMember dummy;
[INFO] [stdout]         310 │+
[INFO] [stdout]         311 │+}I_ping_In;
[INFO] [stdout]         312 │+I_ping_In I_ping_In_new(void);
[INFO] [stdout]         313 │+void I_ping_In_init(I_ping_In * self);
[INFO] [stdout]         314 │+typedef struct I_ping_Out{
[INFO] [stdout]         315 │+    dds_rpc_UnusedMember dummy;
[INFO] [stdout]         316 │+
[INFO] [stdout]         317 │+}I_ping_Out;
[INFO] [stdout]         318 │+I_ping_Out I_ping_Out_new(void);
[INFO] [stdout]         319 │+void I_ping_Out_init(I_ping_Out * self);
[INFO] [stdout]         320 │+typedef struct I_ping_Result{
[INFO] [stdout]         321 │+    int32_t _d;
[INFO] [stdout]         322 │+    union{
[INFO] [stdout]         323 │+        I_ping_Out result;
[INFO] [stdout]         324 │+
[INFO] [stdout]         325 │+    }_u;
[INFO] [stdout]         326 │+
[INFO] [stdout]         327 │+}I_ping_Result;
[INFO] [stdout]         328 │+I_ping_Result I_ping_Result_new(void);
[INFO] [stdout]         329 │+void I_ping_Result_init(I_ping_Result * self);
[INFO] [stdout]         330 │+typedef struct I_get_attribute_value_In{
[INFO] [stdout]         331 │+    dds_rpc_UnusedMember dummy;
[INFO] [stdout]         332 │+
[INFO] [stdout]         333 │+}I_get_attribute_value_In;
[INFO] [stdout]         334 │+I_get_attribute_value_In I_get_attribute_value_In_new(void);
[INFO] [stdout]         335 │+void I_get_attribute_value_In_init(I_get_attribute_value_In * self);
[INFO] [stdout]         336 │+typedef struct I_get_attribute_value_Out{
[INFO] [stdout]         337 │+    int32_t return_;
[INFO] [stdout]         338 │+
[INFO] [stdout]         339 │+}I_get_attribute_value_Out;
[INFO] [stdout]         340 │+I_get_attribute_value_Out I_get_attribute_value_Out_new(void);
[INFO] [stdout]         341 │+void I_get_attribute_value_Out_init(I_get_attribute_value_Out * self);
[INFO] [stdout]         342 │+typedef struct I_get_attribute_value_Result{
[INFO] [stdout]         343 │+    int32_t _d;
[INFO] [stdout]         344 │+    union{
[INFO] [stdout]         345 │+        I_get_attribute_value_Out result;
[INFO] [stdout]         346 │+
[INFO] [stdout]         347 │+    }_u;
[INFO] [stdout]         348 │+
[INFO] [stdout]         349 │+}I_get_attribute_value_Result;
[INFO] [stdout]         350 │+I_get_attribute_value_Result I_get_attribute_value_Result_new(void);
[INFO] [stdout]         351 │+void I_get_attribute_value_Result_init(I_get_attribute_value_Result * self);
[INFO] [stdout]         352 │+typedef struct I_set_attribute_value_In{
[INFO] [stdout]         353 │+    int32_t value;
[INFO] [stdout]         354 │+
[INFO] [stdout]         355 │+}I_set_attribute_value_In;
[INFO] [stdout]         356 │+I_set_attribute_value_In I_set_attribute_value_In_new(void);
[INFO] [stdout]         357 │+void I_set_attribute_value_In_init(I_set_attribute_value_In * self);
[INFO] [stdout]         358 │+typedef struct I_set_attribute_value_Out{
[INFO] [stdout]         359 │+    dds_rpc_UnusedMember dummy;
[INFO] [stdout]         360 │+
[INFO] [stdout]         361 │+}I_set_attribute_value_Out;
[INFO] [stdout]         362 │+I_set_attribute_value_Out I_set_attribute_value_Out_new(void);
[INFO] [stdout]         363 │+void I_set_attribute_value_Out_init(I_set_attribute_value_Out * self);
[INFO] [stdout]         364 │+typedef struct I_set_attribute_value_Result{
[INFO] [stdout]         365 │+    int32_t _d;
[INFO] [stdout]         366 │+    union{
[INFO] [stdout]         367 │+        I_set_attribute_value_Out result;
[INFO] [stdout]         368 │+
[INFO] [stdout]         369 │+    }_u;
[INFO] [stdout]         370 │+
[INFO] [stdout]         371 │+}I_set_attribute_value_Result;
[INFO] [stdout]         372 │+I_set_attribute_value_Result I_set_attribute_value_Result_new(void);
[INFO] [stdout]         373 │+void I_set_attribute_value_Result_init(I_set_attribute_value_Result * self);
[INFO] [stdout]         374 │+typedef struct I_Call{
[INFO] [stdout]         375 │+    int32_t _d;
[INFO] [stdout]         376 │+    union{
[INFO] [stdout]         377 │+        dds_rpc_UnknownOperation unknownOp;
[INFO] [stdout]         378 │+        I_ping_In ping;
[INFO] [stdout]         379 │+        I_get_attribute_value_In get_attribute_value;
[INFO] [stdout]         380 │+        I_set_attribute_value_In set_attribute_value;
[INFO] [stdout]         381 │+
[INFO] [stdout]         382 │+    }_u;
[INFO] [stdout]         383 │+
[INFO] [stdout]         384 │+}I_Call;
[INFO] [stdout]         385 │+I_Call I_Call_new(void);
[INFO] [stdout]         386 │+void I_Call_init(I_Call * self);
[INFO] [stdout]         387 │+typedef struct I_Request{
[INFO] [stdout]         388 │+    dds_rpc_RequestHeader header;
[INFO] [stdout]         389 │+    I_Call data;
[INFO] [stdout]         390 │+
[INFO] [stdout]         391 │+}I_Request;
[INFO] [stdout]         392 │+I_Request I_Request_new(void);
[INFO] [stdout]         393 │+void I_Request_init(I_Request * self);
[INFO] [stdout]         394 │+typedef struct I_Return{
[INFO] [stdout]         395 │+    int32_t _d;
[INFO] [stdout]         396 │+    union{
[INFO] [stdout]         397 │+        dds_rpc_UnknownOperation unknownOp;
[INFO] [stdout]         398 │+        I_ping_Result ping;
[INFO] [stdout]         399 │+        I_get_attribute_value_Result get_attribute_value;
[INFO] [stdout]         400 │+        I_set_attribute_value_Result set_attribute_value;
[INFO] [stdout]         401 │+
[INFO] [stdout]         402 │+    }_u;
[INFO] [stdout]         403 │+
[INFO] [stdout]         404 │+}I_Return;
[INFO] [stdout]         405 │+I_Return I_Return_new(void);
[INFO] [stdout]         406 │+void I_Return_init(I_Return * self);
[INFO] [stdout]         407 │+typedef struct I_Reply{
[INFO] [stdout]         408 │+    dds_rpc_ReplyHeader header;
[INFO] [stdout]         409 │+    I_Return data;
[INFO] [stdout]         410 │+
[INFO] [stdout]         411 │+}I_Reply;
[INFO] [stdout]         412 │+I_Reply I_Reply_new(void);
[INFO] [stdout]         413 │+void I_Reply_init(I_Reply * self);
[INFO] [stdout]         414 │+/* Interface I */
[INFO] [stdout]         415 │+void I_ping(void);
[INFO] [stdout]         416 │+int32_t I_get_attribute_value(void);
[INFO] [stdout]         417 │+void I_set_attribute_value(int32_t value);
[INFO] [stdout]         418 │+#endif
[INFO] [stdout]         419 │+===============
[INFO] [stdout]         420 │+annotation_basic_xcdr.c
[INFO] [stdout]         421 │+===============
[INFO] [stdout]         422 │+#include"annotation_basic_xcdr.h"
[INFO] [stdout]         423 │+
[INFO] [stdout]         424 │+XcdrBufferResult S_serialize(S const * self, XcdrBuffer buf){
[INFO] [stdout]         425 │+    uint8_t * ptr = buf.ptr;
[INFO] [stdout]         426 │+    size_t len = buf.len;
[INFO] [stdout]         427 │+    FfiCdrSerializer serializer = cdr_serializer_new(ptr, len);
[INFO] [stdout]         428 │+    XcdrFfiError err = Ok;
[INFO] [stdout]         429 │+    err = cdr_serializer_write_i32(&serializer, "self->a");
[INFO] [stdout]         430 │+    if(err != Ok){
[INFO] [stdout]         431 │+        return(XcdrBufferResult){
[INFO] [stdout]         432 │+            err, cdr_serializer_position(&serializer)
[INFO] [stdout]         433 │+        };
[INFO] [stdout]         434 │+    }
[INFO] [stdout]         435 │+
[INFO] [stdout]         436 │+    err = cdr_serializer_write_i16(&serializer, "self->b");
[INFO] [stdout]         437 │+    if(err != Ok){
[INFO] [stdout]         438 │+        return(XcdrBufferResult){
[INFO] [stdout]         439 │+            err, cdr_serializer_position(&serializer)
[INFO] [stdout]         440 │+        };
[INFO] [stdout]         441 │+    }
[INFO] [stdout]         442 │+
[INFO] [stdout]         443 │+    return(XcdrBufferResult){
[INFO] [stdout]         444 │+        Ok, cdr_serializer_position(&serializer)
[INFO] [stdout]         445 │+    };
[INFO] [stdout]         446 │+}
[INFO] [stdout]         447 │+
[INFO] [stdout]         448 │+XcdrBufferResult S_deserialize(S * self, XcdrConstBuffer buf){
[INFO] [stdout]         449 │+    const uint8_t * ptr = buf.ptr;
[INFO] [stdout]         450 │+    size_t len = buf.len;
[INFO] [stdout]         451 │+    FfiCdrDeserializer deserializer = cdr_deserializer_new(ptr, len);
[INFO] [stdout]         452 │+    XcdrFfiError err = Ok;
[INFO] [stdout]         453 │+    err = cdr_deserializer_read_i32_le(&deserializer, "self->a");
[INFO] [stdout]         454 │+    if(err != Ok){
[INFO] [stdout]         455 │+        return(XcdrBufferResult){
[INFO] [stdout]         456 │+            err, cdr_deserializer_position(&deserializer)
[INFO] [stdout]         457 │+        };
[INFO] [stdout]         458 │+    }
[INFO] [stdout]         459 │+
[INFO] [stdout]         460 │+    err = cdr_deserializer_read_i16_le(&deserializer, "self->b");
[INFO] [stdout]         461 │+    if(err != Ok){
[INFO] [stdout]         462 │+        return(XcdrBufferResult){
[INFO] [stdout]         463 │+            err, cdr_deserializer_position(&deserializer)
[INFO] [stdout]         464 │+        };
[INFO] [stdout]         465 │+    }
[INFO] [stdout]         466 │+
[INFO] [stdout]         467 │+    return(XcdrBufferResult){
[INFO] [stdout]         468 │+        Ok, cdr_deserializer_position(&deserializer)
[INFO] [stdout]         469 │+    };
[INFO] [stdout]         470 │+}
[INFO] [stdout]         471 │+
[INFO] [stdout]         472 │+XcdrBufferResult E_serialize(E const * self, XcdrBuffer buf){
[INFO] [stdout]         473 │+    uint8_t * ptr = buf.ptr;
[INFO] [stdout]         474 │+    size_t len = buf.len;
[INFO] [stdout]         475 │+    FfiCdrSerializer serializer = cdr_serializer_new(ptr, len);
[INFO] [stdout]         476 │+    XcdrFfiError err = Ok;
[INFO] [stdout]         477 │+    err = cdr_serializer_write_i32(&serializer, "(*self)");
[INFO] [stdout]         478 │+    if(err != Ok){
[INFO] [stdout]         479 │+        return(XcdrBufferResult){
[INFO] [stdout]         480 │+            err, cdr_serializer_position(&serializer)
[INFO] [stdout]         481 │+        };
[INFO] [stdout]         482 │+    }
[INFO] [stdout]         483 │+
[INFO] [stdout]         484 │+    return(XcdrBufferResult){
[INFO] [stdout]         485 │+        Ok, cdr_serializer_position(&serializer)
[INFO] [stdout]         486 │+    };
[INFO] [stdout]         487 │+}
[INFO] [stdout]         488 │+
[INFO] [stdout]         489 │+XcdrBufferResult E_deserialize(E * self, XcdrConstBuffer buf){
[INFO] [stdout]         490 │+    const uint8_t * ptr = buf.ptr;
[INFO] [stdout]         491 │+    size_t len = buf.len;
[INFO] [stdout]         492 │+    FfiCdrDeserializer deserializer = cdr_deserializer_new(ptr, len);
[INFO] [stdout]         493 │+    XcdrFfiError err = Ok;
[INFO] [stdout]         494 │+    err = cdr_deserializer_read_i32_le(&deserializer, "(*self)");
[INFO] [stdout]         495 │+    if(err != Ok){
[INFO] [stdout]         496 │+        return(XcdrBufferResult){
[INFO] [stdout]         497 │+            err, cdr_deserializer_position(&deserializer)
[INFO] [stdout]         498 │+        };
[INFO] [stdout]         499 │+    }
[INFO] [stdout]         500 │+
[INFO] [stdout]         501 │+    return(XcdrBufferResult){
[INFO] [stdout]         502 │+        Ok, cdr_deserializer_position(&deserializer)
[INFO] [stdout]         503 │+    };
[INFO] [stdout]         504 │+}
[INFO] [stdout]         505 │+
[INFO] [stdout]         506 │+XcdrBufferResult BM_serialize(BM const * self, XcdrBuffer buf){
[INFO] [stdout]         507 │+    uint8_t * ptr = buf.ptr;
[INFO] [stdout]         508 │+    size_t len = buf.len;
[INFO] [stdout]         509 │+    FfiCdrSerializer serializer = cdr_serializer_new(ptr, len);
[INFO] [stdout]         510 │+    XcdrFfiError err = Ok;
[INFO] [stdout]         511 │+    err = cdr_serializer_write_u32(&serializer, "(*self)");
[INFO] [stdout]         512 │+    if(err != Ok){
[INFO] [stdout]         513 │+        return(XcdrBufferResult){
[INFO] [stdout]         514 │+            err, cdr_serializer_position(&serializer)
[INFO] [stdout]         515 │+        };
[INFO] [stdout]         516 │+    }
[INFO] [stdout]         517 │+
[INFO] [stdout]         518 │+    return(XcdrBufferResult){
[INFO] [stdout]         519 │+        Ok, cdr_serializer_position(&serializer)
[INFO] [stdout]         520 │+    };
[INFO] [stdout]         521 │+}
[INFO] [stdout]         522 │+
[INFO] [stdout]         523 │+XcdrBufferResult BM_deserialize(BM * self, XcdrConstBuffer buf){
[INFO] [stdout]         524 │+    const uint8_t * ptr = buf.ptr;
[INFO] [stdout]         525 │+    size_t len = buf.len;
[INFO] [stdout]         526 │+    FfiCdrDeserializer deserializer = cdr_deserializer_new(ptr, len);
[INFO] [stdout]         527 │+    XcdrFfiError err = Ok;
[INFO] [stdout]         528 │+    err = cdr_deserializer_read_u32_le(&deserializer, "(*self)");
[INFO] [stdout]         529 │+    if(err != Ok){
[INFO] [stdout]         530 │+        return(XcdrBufferResult){
[INFO] [stdout]         531 │+            err, cdr_deserializer_position(&deserializer)
[INFO] [stdout]         532 │+        };
[INFO] [stdout]         533 │+    }
[INFO] [stdout]         534 │+
[INFO] [stdout]         535 │+    return(XcdrBufferResult){
[INFO] [stdout]         536 │+        Ok, cdr_deserializer_position(&deserializer)
[INFO] [stdout]         537 │+    };
[INFO] [stdout]         538 │+}
[INFO] [stdout]         539 │+
[INFO] [stdout]         540 │+XcdrBufferResult U_serialize(U const * self, XcdrBuffer buf){
[INFO] [stdout]         541 │+    uint8_t * ptr = buf.ptr;
[INFO] [stdout]         542 │+    size_t len = buf.len;
[INFO] [stdout]         543 │+    FfiCdrSerializer serializer = cdr_serializer_new(ptr, len);
[INFO] [stdout]         544 │+    XcdrFfiError err = Ok;
[INFO] [stdout]         545 │+    err = cdr_serializer_write_i32(&serializer, "self->_d");
[INFO] [stdout]         546 │+    if(err != Ok){
[INFO] [stdout]         547 │+        return(XcdrBufferResult){
[INFO] [stdout]         548 │+            err, cdr_serializer_position(&serializer)
[INFO] [stdout]         549 │+        };
[INFO] [stdout]         550 │+    }
[INFO] [stdout]         551 │+
[INFO] [stdout]         552 │+    switch(self->_d){
[INFO] [stdout]         553 │+        case 0:
[INFO] [stdout]         554 │+
[INFO] [stdout]         555 │+            err = cdr_serializer_write_i32(&serializer, "self->_u.a");
[INFO] [stdout]         556 │+            if(err != Ok){
[INFO] [stdout]         557 │+                return(XcdrBufferResult){
[INFO] [stdout]         558 │+                    err, cdr_serializer_position(&serializer)
[INFO] [stdout]         559 │+                };
[INFO] [stdout]         560 │+            }
[INFO] [stdout]         561 │+
[INFO] [stdout]         562 │+            break;
[INFO] [stdout]         563 │+        default:
[INFO] [stdout]         564 │+
[INFO] [stdout]         565 │+            err = cdr_serializer_write_i32(&serializer, "self->_u.b");
[INFO] [stdout]         566 │+            if(err != Ok){
[INFO] [stdout]         567 │+                return(XcdrBufferResult){
[INFO] [stdout]         568 │+                    err, cdr_serializer_position(&serializer)
[INFO] [stdout]         569 │+                };
[INFO] [stdout]         570 │+            }
[INFO] [stdout]         571 │+
[INFO] [stdout]         572 │+            break;
[INFO] [stdout]         573 │+    }
[INFO] [stdout]         574 │+    return(XcdrBufferResult){
[INFO] [stdout]         575 │+        Ok, cdr_serializer_position(&serializer)
[INFO] [stdout]         576 │+    };
[INFO] [stdout]         577 │+}
[INFO] [stdout]         578 │+
[INFO] [stdout]         579 │+XcdrBufferResult U_deserialize(U * self, XcdrConstBuffer buf){
[INFO] [stdout]         580 │+    const uint8_t * ptr = buf.ptr;
[INFO] [stdout]         581 │+    size_t len = buf.len;
[INFO] [stdout]         582 │+    FfiCdrDeserializer deserializer = cdr_deserializer_new(ptr, len);
[INFO] [stdout]         583 │+    XcdrFfiError err = Ok;
[INFO] [stdout]         584 │+    err = cdr_deserializer_read_i32_le(&deserializer, "self->_d");
[INFO] [stdout]         585 │+    if(err != Ok){
[INFO] [stdout]         586 │+        return(XcdrBufferResult){
[INFO] [stdout]         587 │+            err, cdr_deserializer_position(&deserializer)
[INFO] [stdout]         588 │+        };
[INFO] [stdout]         589 │+    }
[INFO] [stdout]         590 │+
[INFO] [stdout]         591 │+    switch(self->_d){
[INFO] [stdout]         592 │+        case 0:
[INFO] [stdout]         593 │+
[INFO] [stdout]         594 │+            err = cdr_deserializer_read_i32_le(&deserializer, "self->_u.a");
[INFO] [stdout]         595 │+            if(err != Ok){
[INFO] [stdout]         596 │+                return(XcdrBufferResult){
[INFO] [stdout]         597 │+                    err, cdr_deserializer_position(&deserializer)
[INFO] [stdout]         598 │+                };
[INFO] [stdout]         599 │+            }
[INFO] [stdout]         600 │+
[INFO] [stdout]         601 │+            break;
[INFO] [stdout]         602 │+        default:
[INFO] [stdout]         603 │+
[INFO] [stdout]         604 │+            err = cdr_deserializer_read_i32_le(&deserializer, "self->_u.b");
[INFO] [stdout]         605 │+            if(err != Ok){
[INFO] [stdout]         606 │+                return(XcdrBufferResult){
[INFO] [stdout]         607 │+                    err, cdr_deserializer_position(&deserializer)
[INFO] [stdout]         608 │+                };
[INFO] [stdout]         609 │+            }
[INFO] [stdout]         610 │+
[INFO] [stdout]         611 │+            break;
[INFO] [stdout]         612 │+    }
[INFO] [stdout]         613 │+    return(XcdrBufferResult){
[INFO] [stdout]         614 │+        Ok, cdr_deserializer_position(&deserializer)
[INFO] [stdout]         615 │+    };
[INFO] [stdout]         616 │+}
[INFO] [stdout]         617 │+
[INFO] [stdout]         618 │+XcdrBufferResult I_ping_In_serialize(I_ping_In const * self, XcdrBuffer buf){
[INFO] [stdout]         619 │+    uint8_t * ptr = buf.ptr;
[INFO] [stdout]         620 │+    size_t len = buf.len;
[INFO] [stdout]         621 │+    FfiCdrSerializer serializer = cdr_serializer_new(ptr, len);
[INFO] [stdout]         622 │+    XcdrFfiError err = Ok;
[INFO] [stdout]         623 │+    {
[INFO] [stdout]         624 │+        size_t before = cdr_serializer_position(&serializer);
[INFO] [stdout]         625 │+        XcdrBufferResult child = dds_rpc_UnusedMember_serialize(
[INFO] [stdout]         626 │+        &self->dummy, (XcdrBuffer){
[INFO] [stdout]         627 │+            .ptr = ptr + before, .len = len - before, .pos = 0
[INFO] [stdout]         628 │+        });
[INFO] [stdout]         629 │+        if(child.err != Ok){
[INFO] [stdout]         630 │+            return(XcdrBufferResult){
[INFO] [stdout]         631 │+                child.err, before + child.used
[INFO] [stdout]         632 │+            };
[INFO] [stdout]         633 │+        }
[INFO] [stdout]         634 │+        serializer.pos = before + child.used;
[INFO] [stdout]         635 │+    }
[INFO] [stdout]         636 │+
[INFO] [stdout]         637 │+    return(XcdrBufferResult){
[INFO] [stdout]         638 │+        Ok, cdr_serializer_position(&serializer)
[INFO] [stdout]         639 │+    };
[INFO] [stdout]         640 │+}
[INFO] [stdout]         641 │+
[INFO] [stdout]         642 │+XcdrBufferResult I_ping_In_deserialize(I_ping_In * self, XcdrConstBuffer buf){
[INFO] [stdout]         643 │+    const uint8_t * ptr = buf.ptr;
[INFO] [stdout]         644 │+    size_t len = buf.len;
[INFO] [stdout]         645 │+    FfiCdrDeserializer deserializer = cdr_deserializer_new(ptr, len);
[INFO] [stdout]         646 │+    XcdrFfiError err = Ok;
[INFO] [stdout]         647 │+    {
[INFO] [stdout]         648 │+        size_t before = cdr_deserializer_position(&deserializer);
[INFO] [stdout]         649 │+        XcdrBufferResult child = dds_rpc_UnusedMember_deserialize(
[INFO] [stdout]         650 │+        &self->dummy, (XcdrConstBuffer){
[INFO] [stdout]         651 │+            .ptr = ptr + before, .len = len - before, .pos = 0
[INFO] [stdout]         652 │+        });
[INFO] [stdout]         653 │+        if(child.err != Ok){
[INFO] [stdout]         654 │+            return(XcdrBufferResult){
[INFO] [stdout]         655 │+                child.err, before + child.used
[INFO] [stdout]         656 │+            };
[INFO] [stdout]         657 │+        }
[INFO] [stdout]         658 │+        deserializer.pos = before + child.used;
[INFO] [stdout]         659 │+    }
[INFO] [stdout]         660 │+
[INFO] [stdout]         661 │+    return(XcdrBufferResult){
[INFO] [stdout]         662 │+        Ok, cdr_deserializer_position(&deserializer)
[INFO] [stdout]         663 │+    };
[INFO] [stdout]         664 │+}
[INFO] [stdout]         665 │+
[INFO] [stdout]         666 │+XcdrBufferResult I_ping_Out_serialize(I_ping_Out const * self, XcdrBuffer buf){
[INFO] [stdout]         667 │+    uint8_t * ptr = buf.ptr;
[INFO] [stdout]         668 │+    size_t len = buf.len;
[INFO] [stdout]         669 │+    FfiCdrSerializer serializer = cdr_serializer_new(ptr, len);
[INFO] [stdout]         670 │+    XcdrFfiError err = Ok;
[INFO] [stdout]         671 │+    {
[INFO] [stdout]         672 │+        size_t before = cdr_serializer_position(&serializer);
[INFO] [stdout]         673 │+        XcdrBufferResult child = dds_rpc_UnusedMember_serialize(
[INFO] [stdout]         674 │+        &self->dummy, (XcdrBuffer){
[INFO] [stdout]         675 │+            .ptr = ptr + before, .len = len - before, .pos = 0
[INFO] [stdout]         676 │+        });
[INFO] [stdout]         677 │+        if(child.err != Ok){
[INFO] [stdout]         678 │+            return(XcdrBufferResult){
[INFO] [stdout]         679 │+                child.err, before + child.used
[INFO] [stdout]         680 │+            };
[INFO] [stdout]         681 │+        }
[INFO] [stdout]         682 │+        serializer.pos = before + child.used;
[INFO] [stdout]         683 │+    }
[INFO] [stdout]         684 │+
[INFO] [stdout]         685 │+    return(XcdrBufferResult){
[INFO] [stdout]         686 │+        Ok, cdr_serializer_position(&serializer)
[INFO] [stdout]         687 │+    };
[INFO] [stdout]         688 │+}
[INFO] [stdout]         689 │+
[INFO] [stdout]         690 │+XcdrBufferResult I_ping_Out_deserialize(I_ping_Out * self, XcdrConstBuffer buf){
[INFO] [stdout]         691 │+    const uint8_t * ptr = buf.ptr;
[INFO] [stdout]         692 │+    size_t len = buf.len;
[INFO] [stdout]         693 │+    FfiCdrDeserializer deserializer = cdr_deserializer_new(ptr, len);
[INFO] [stdout]         694 │+    XcdrFfiError err = Ok;
[INFO] [stdout]         695 │+    {
[INFO] [stdout]         696 │+        size_t before = cdr_deserializer_position(&deserializer);
[INFO] [stdout]         697 │+        XcdrBufferResult child = dds_rpc_UnusedMember_deserialize(
[INFO] [stdout]         698 │+        &self->dummy, (XcdrConstBuffer){
[INFO] [stdout]         699 │+            .ptr = ptr + before, .len = len - before, .pos = 0
[INFO] [stdout]         700 │+        });
[INFO] [stdout]         701 │+        if(child.err != Ok){
[INFO] [stdout]         702 │+            return(XcdrBufferResult){
[INFO] [stdout]         703 │+                child.err, before + child.used
[INFO] [stdout]         704 │+            };
[INFO] [stdout]         705 │+        }
[INFO] [stdout]         706 │+        deserializer.pos = before + child.used;
[INFO] [stdout]         707 │+    }
[INFO] [stdout]         708 │+
[INFO] [stdout]         709 │+    return(XcdrBufferResult){
[INFO] [stdout]         710 │+        Ok, cdr_deserializer_position(&deserializer)
[INFO] [stdout]         711 │+    };
[INFO] [stdout]         712 │+}
[INFO] [stdout]         713 │+
[INFO] [stdout]         714 │+XcdrBufferResult I_ping_Result_serialize(I_ping_Result const * self, XcdrBuffer buf){
[INFO] [stdout]         715 │+    uint8_t * ptr = buf.ptr;
[INFO] [stdout]         716 │+    size_t len = buf.len;
[INFO] [stdout]         717 │+    FfiCdrSerializer serializer = cdr_serializer_new(ptr, len);
[INFO] [stdout]         718 │+    XcdrFfiError err = Ok;
[INFO] [stdout]         719 │+    err = cdr_serializer_write_i32(&serializer, "self->_d");
[INFO] [stdout]         720 │+    if(err != Ok){
[INFO] [stdout]         721 │+        return(XcdrBufferResult){
[INFO] [stdout]         722 │+            err, cdr_serializer_position(&serializer)
[INFO] [stdout]         723 │+        };
[INFO] [stdout]         724 │+    }
[INFO] [stdout]         725 │+
[INFO] [stdout]         726 │+    switch(self->_d){
[INFO] [stdout]         727 │+        case dds_RETCODE_OK:
[INFO] [stdout]         728 │+
[INFO] [stdout]         729 │+            {
[INFO] [stdout]         730 │+                size_t before = cdr_serializer_position(&serializer);
[INFO] [stdout]         731 │+                XcdrBufferResult child = I_ping_Out_serialize(
[INFO] [stdout]         732 │+                &self->_u.result, (XcdrBuffer){
[INFO] [stdout]         733 │+                    .ptr = ptr + before, .len = len - before, .pos = 0
[INFO] [stdout]         734 │+                });
[INFO] [stdout]         735 │+                if(child.err != Ok){
[INFO] [stdout]         736 │+                    return(XcdrBufferResult){
[INFO] [stdout]         737 │+                        child.err, before + child.used
[INFO] [stdout]         738 │+                    };
[INFO] [stdout]         739 │+                }
[INFO] [stdout]         740 │+                serializer.pos = before + child.used;
[INFO] [stdout]         741 │+            }
[INFO] [stdout]         742 │+
[INFO] [stdout]         743 │+            break;
[INFO] [stdout]         744 │+    }
[INFO] [stdout]         745 │+    return(XcdrBufferResult){
[INFO] [stdout]         746 │+        Ok, cdr_serializer_position(&serializer)
[INFO] [stdout]         747 │+    };
[INFO] [stdout]         748 │+}
[INFO] [stdout]         749 │+
[INFO] [stdout]         750 │+XcdrBufferResult I_ping_Result_deserialize(I_ping_Result * self, XcdrConstBuffer buf){
[INFO] [stdout]         751 │+    const uint8_t * ptr = buf.ptr;
[INFO] [stdout]         752 │+    size_t len = buf.len;
[INFO] [stdout]         753 │+    FfiCdrDeserializer deserializer = cdr_deserializer_new(ptr, len);
[INFO] [stdout]         754 │+    XcdrFfiError err = Ok;
[INFO] [stdout]         755 │+    err = cdr_deserializer_read_i32_le(&deserializer, "self->_d");
[INFO] [stdout]         756 │+    if(err != Ok){
[INFO] [stdout]         757 │+        return(XcdrBufferResult){
[INFO] [stdout]         758 │+            err, cdr_deserializer_position(&deserializer)
[INFO] [stdout]         759 │+        };
[INFO] [stdout]         760 │+    }
[INFO] [stdout]         761 │+
[INFO] [stdout]         762 │+    switch(self->_d){
[INFO] [stdout]         763 │+        case dds_RETCODE_OK:
[INFO] [stdout]         764 │+
[INFO] [stdout]         765 │+            {
[INFO] [stdout]         766 │+                size_t before = cdr_deserializer_position(&deserializer);
[INFO] [stdout]         767 │+                XcdrBufferResult child = I_ping_Out_deserialize(
[INFO] [stdout]         768 │+                &self->_u.result, (XcdrConstBuffer){
[INFO] [stdout]         769 │+                    .ptr = ptr + before, .len = len - before, .pos = 0
[INFO] [stdout]         770 │+                });
[INFO] [stdout]         771 │+                if(child.err != Ok){
[INFO] [stdout]         772 │+                    return(XcdrBufferResult){
[INFO] [stdout]         773 │+                        child.err, before + child.used
[INFO] [stdout]         774 │+                    };
[INFO] [stdout]         775 │+                }
[INFO] [stdout]         776 │+                deserializer.pos = before + child.used;
[INFO] [stdout]         777 │+            }
[INFO] [stdout]         778 │+
[INFO] [stdout]         779 │+            break;
[INFO] [stdout]         780 │+    }
[INFO] [stdout]         781 │+    return(XcdrBufferResult){
[INFO] [stdout]         782 │+        Ok, cdr_deserializer_position(&deserializer)
[INFO] [stdout]         783 │+    };
[INFO] [stdout]         784 │+}
[INFO] [stdout]         785 │+
[INFO] [stdout]         786 │+XcdrBufferResult I_get_attribute_value_In_serialize(I_get_attribute_value_In const * self, XcdrBuffer buf){
[INFO] [stdout]         787 │+    uint8_t * ptr = buf.ptr;
[INFO] [stdout]         788 │+    size_t len = buf.len;
[INFO] [stdout]         789 │+    FfiCdrSerializer serializer = cdr_serializer_new(ptr, len);
[INFO] [stdout]         790 │+    XcdrFfiError err = Ok;
[INFO] [stdout]         791 │+    {
[INFO] [stdout]         792 │+        size_t before = cdr_serializer_position(&serializer);
[INFO] [stdout]         793 │+        XcdrBufferResult child = dds_rpc_UnusedMember_serialize(
[INFO] [stdout]         794 │+        &self->dummy, (XcdrBuffer){
[INFO] [stdout]         795 │+            .ptr = ptr + before, .len = len - before, .pos = 0
[INFO] [stdout]         796 │+        });
[INFO] [stdout]         797 │+        if(child.err != Ok){
[INFO] [stdout]         798 │+            return(XcdrBufferResult){
[INFO] [stdout]         799 │+                child.err, before + child.used
[INFO] [stdout]         800 │+            };
[INFO] [stdout]         801 │+        }
[INFO] [stdout]         802 │+        serializer.pos = before + child.used;
[INFO] [stdout]         803 │+    }
[INFO] [stdout]         804 │+
[INFO] [stdout]         805 │+    return(XcdrBufferResult){
[INFO] [stdout]         806 │+        Ok, cdr_serializer_position(&serializer)
[INFO] [stdout]         807 │+    };
[INFO] [stdout]         808 │+}
[INFO] [stdout]         809 │+
[INFO] [stdout]         810 │+XcdrBufferResult I_get_attribute_value_In_deserialize(I_get_attribute_value_In * self, XcdrConstBuffer buf){
[INFO] [stdout]         811 │+    const uint8_t * ptr = buf.ptr;
[INFO] [stdout]         812 │+    size_t len = buf.len;
[INFO] [stdout]         813 │+    FfiCdrDeserializer deserializer = cdr_deserializer_new(ptr, len);
[INFO] [stdout]         814 │+    XcdrFfiError err = Ok;
[INFO] [stdout]         815 │+    {
[INFO] [stdout]         816 │+        size_t before = cdr_deserializer_position(&deserializer);
[INFO] [stdout]         817 │+        XcdrBufferResult child = dds_rpc_UnusedMember_deserialize(
[INFO] [stdout]         818 │+        &self->dummy, (XcdrConstBuffer){
[INFO] [stdout]         819 │+            .ptr = ptr + before, .len = len - before, .pos = 0
[INFO] [stdout]         820 │+        });
[INFO] [stdout]         821 │+        if(child.err != Ok){
[INFO] [stdout]         822 │+            return(XcdrBufferResult){
[INFO] [stdout]         823 │+                child.err, before + child.used
[INFO] [stdout]         824 │+            };
[INFO] [stdout]         825 │+        }
[INFO] [stdout]         826 │+        deserializer.pos = before + child.used;
[INFO] [stdout]         827 │+    }
[INFO] [stdout]         828 │+
[INFO] [stdout]         829 │+    return(XcdrBufferResult){
[INFO] [stdout]         830 │+        Ok, cdr_deserializer_position(&deserializer)
[INFO] [stdout]         831 │+    };
[INFO] [stdout]         832 │+}
[INFO] [stdout]         833 │+
[INFO] [stdout]         834 │+XcdrBufferResult I_get_attribute_value_Out_serialize(I_get_attribute_value_Out const * self, XcdrBuffer buf){
[INFO] [stdout]         835 │+    uint8_t * ptr = buf.ptr;
[INFO] [stdout]         836 │+    size_t len = buf.len;
[INFO] [stdout]         837 │+    FfiCdrSerializer serializer = cdr_serializer_new(ptr, len);
[INFO] [stdout]         838 │+    XcdrFfiError err = Ok;
[INFO] [stdout]         839 │+    err = cdr_serializer_write_i32(&serializer, "self->return_");
[INFO] [stdout]         840 │+    if(err != Ok){
[INFO] [stdout]         841 │+        return(XcdrBufferResult){
[INFO] [stdout]         842 │+            err, cdr_serializer_position(&serializer)
[INFO] [stdout]         843 │+        };
[INFO] [stdout]         844 │+    }
[INFO] [stdout]         845 │+
[INFO] [stdout]         846 │+    return(XcdrBufferResult){
[INFO] [stdout]         847 │+        Ok, cdr_serializer_position(&serializer)
[INFO] [stdout]         848 │+    };
[INFO] [stdout]         849 │+}
[INFO] [stdout]         850 │+
[INFO] [stdout]         851 │+XcdrBufferResult I_get_attribute_value_Out_deserialize(I_get_attribute_value_Out * self, XcdrConstBuffer buf){
[INFO] [stdout]         852 │+    const uint8_t * ptr = buf.ptr;
[INFO] [stdout]         853 │+    size_t len = buf.len;
[INFO] [stdout]         854 │+    FfiCdrDeserializer deserializer = cdr_deserializer_new(ptr, len);
[INFO] [stdout]         855 │+    XcdrFfiError err = Ok;
[INFO] [stdout]         856 │+    err = cdr_deserializer_read_i32_le(&deserializer, "self->return_");
[INFO] [stdout]         857 │+    if(err != Ok){
[INFO] [stdout]         858 │+        return(XcdrBufferResult){
[INFO] [stdout]         859 │+            err, cdr_deserializer_position(&deserializer)
[INFO] [stdout]         860 │+        };
[INFO] [stdout]         861 │+    }
[INFO] [stdout]         862 │+
[INFO] [stdout]         863 │+    return(XcdrBufferResult){
[INFO] [stdout]         864 │+        Ok, cdr_deserializer_position(&deserializer)
[INFO] [stdout]         865 │+    };
[INFO] [stdout]         866 │+}
[INFO] [stdout]         867 │+
[INFO] [stdout]         868 │+XcdrBufferResult I_get_attribute_value_Result_serialize(I_get_attribute_value_Result const * self, XcdrBuffer buf){
[INFO] [stdout]         869 │+    uint8_t * ptr = buf.ptr;
[INFO] [stdout]         870 │+    size_t len = buf.len;
[INFO] [stdout]         871 │+    FfiCdrSerializer serializer = cdr_serializer_new(ptr, len);
[INFO] [stdout]         872 │+    XcdrFfiError err = Ok;
[INFO] [stdout]         873 │+    err = cdr_serializer_write_i32(&serializer, "self->_d");
[INFO] [stdout]         874 │+    if(err != Ok){
[INFO] [stdout]         875 │+        return(XcdrBufferResult){
[INFO] [stdout]         876 │+            err, cdr_serializer_position(&serializer)
[INFO] [stdout]         877 │+        };
[INFO] [stdout]         878 │+    }
[INFO] [stdout]         879 │+
[INFO] [stdout]         880 │+    switch(self->_d){
[INFO] [stdout]         881 │+        case dds_RETCODE_OK:
[INFO] [stdout]         882 │+
[INFO] [stdout]         883 │+            {
[INFO] [stdout]         884 │+                size_t before = cdr_serializer_position(&serializer);
[INFO] [stdout]         885 │+                XcdrBufferResult child = I_get_attribute_value_Out_serialize(
[INFO] [stdout]         886 │+                &self->_u.result, (XcdrBuffer){
[INFO] [stdout]         887 │+                    .ptr = ptr + before, .len = len - before, .pos = 0
[INFO] [stdout]         888 │+                });
[INFO] [stdout]         889 │+                if(child.err != Ok){
[INFO] [stdout]         890 │+                    return(XcdrBufferResult){
[INFO] [stdout]         891 │+                        child.err, before + child.used
[INFO] [stdout]         892 │+                    };
[INFO] [stdout]         893 │+                }
[INFO] [stdout]         894 │+                serializer.pos = before + child.used;
[INFO] [stdout]         895 │+            }
[INFO] [stdout]         896 │+
[INFO] [stdout]         897 │+            break;
[INFO] [stdout]         898 │+    }
[INFO] [stdout]         899 │+    return(XcdrBufferResult){
[INFO] [stdout]         900 │+        Ok, cdr_serializer_position(&serializer)
[INFO] [stdout]         901 │+    };
[INFO] [stdout]         902 │+}
[INFO] [stdout]         903 │+
[INFO] [stdout]         904 │+XcdrBufferResult I_get_attribute_value_Result_deserialize(I_get_attribute_value_Result * self, XcdrConstBuffer buf){
[INFO] [stdout]         905 │+    const uint8_t * ptr = buf.ptr;
[INFO] [stdout]         906 │+    size_t len = buf.len;
[INFO] [stdout]         907 │+    FfiCdrDeserializer deserializer = cdr_deserializer_new(ptr, len);
[INFO] [stdout]         908 │+    XcdrFfiError err = Ok;
[INFO] [stdout]         909 │+    err = cdr_deserializer_read_i32_le(&deserializer, "self->_d");
[INFO] [stdout]         910 │+    if(err != Ok){
[INFO] [stdout]         911 │+        return(XcdrBufferResult){
[INFO] [stdout]         912 │+            err, cdr_deserializer_position(&deserializer)
[INFO] [stdout]         913 │+        };
[INFO] [stdout]         914 │+    }
[INFO] [stdout]         915 │+
[INFO] [stdout]         916 │+    switch(self->_d){
[INFO] [stdout]         917 │+        case dds_RETCODE_OK:
[INFO] [stdout]         918 │+
[INFO] [stdout]         919 │+            {
[INFO] [stdout]         920 │+                size_t before = cdr_deserializer_position(&deserializer);
[INFO] [stdout]         921 │+                XcdrBufferResult child = I_get_attribute_value_Out_deserialize(
[INFO] [stdout]         922 │+                &self->_u.result, (XcdrConstBuffer){
[INFO] [stdout]         923 │+                    .ptr = ptr + before, .len = len - before, .pos = 0
[INFO] [stdout]         924 │+                });
[INFO] [stdout]         925 │+                if(child.err != Ok){
[INFO] [stdout]         926 │+                    return(XcdrBufferResult){
[INFO] [stdout]         927 │+                        child.err, before + child.used
[INFO] [stdout]         928 │+                    };
[INFO] [stdout]         929 │+                }
[INFO] [stdout]         930 │+                deserializer.pos = before + child.used;
[INFO] [stdout]         931 │+            }
[INFO] [stdout]         932 │+
[INFO] [stdout]         933 │+            break;
[INFO] [stdout]         934 │+    }
[INFO] [stdout]         935 │+    return(XcdrBufferResult){
[INFO] [stdout]         936 │+        Ok, cdr_deserializer_position(&deserializer)
[INFO] [stdout]         937 │+    };
[INFO] [stdout]         938 │+}
[INFO] [stdout]         939 │+
[INFO] [stdout]         940 │+XcdrBufferResult I_set_attribute_value_In_serialize(I_set_attribute_value_In const * self, XcdrBuffer buf){
[INFO] [stdout]         941 │+    uint8_t * ptr = buf.ptr;
[INFO] [stdout]         942 │+    size_t len = buf.len;
[INFO] [stdout]         943 │+    FfiCdrSerializer serializer = cdr_serializer_new(ptr, len);
[INFO] [stdout]         944 │+    XcdrFfiError err = Ok;
[INFO] [stdout]         945 │+    err = cdr_serializer_write_i32(&serializer, "self->value");
[INFO] [stdout]         946 │+    if(err != Ok){
[INFO] [stdout]         947 │+        return(XcdrBufferResult){
[INFO] [stdout]         948 │+            err, cdr_serializer_position(&serializer)
[INFO] [stdout]         949 │+        };
[INFO] [stdout]         950 │+    }
[INFO] [stdout]         951 │+
[INFO] [stdout]         952 │+    return(XcdrBufferResult){
[INFO] [stdout]         953 │+        Ok, cdr_serializer_position(&serializer)
[INFO] [stdout]         954 │+    };
[INFO] [stdout]         955 │+}
[INFO] [stdout]         956 │+
[INFO] [stdout]         957 │+XcdrBufferResult I_set_attribute_value_In_deserialize(I_set_attribute_value_In * self, XcdrConstBuffer buf){
[INFO] [stdout]         958 │+    const uint8_t * ptr = buf.ptr;
[INFO] [stdout]         959 │+    size_t len = buf.len;
[INFO] [stdout]         960 │+    FfiCdrDeserializer deserializer = cdr_deserializer_new(ptr, len);
[INFO] [stdout]         961 │+    XcdrFfiError err = Ok;
[INFO] [stdout]         962 │+    err = cdr_deserializer_read_i32_le(&deserializer, "self->value");
[INFO] [stdout]         963 │+    if(err != Ok){
[INFO] [stdout]         964 │+        return(XcdrBufferResult){
[INFO] [stdout]         965 │+            err, cdr_deserializer_position(&deserializer)
[INFO] [stdout]         966 │+        };
[INFO] [stdout]         967 │+    }
[INFO] [stdout]         968 │+
[INFO] [stdout]         969 │+    return(XcdrBufferResult){
[INFO] [stdout]         970 │+        Ok, cdr_deserializer_position(&deserializer)
[INFO] [stdout]         971 │+    };
[INFO] [stdout]         972 │+}
[INFO] [stdout]         973 │+
[INFO] [stdout]         974 │+XcdrBufferResult I_set_attribute_value_Out_serialize(I_set_attribute_value_Out const * self, XcdrBuffer buf){
[INFO] [stdout]         975 │+    uint8_t * ptr = buf.ptr;
[INFO] [stdout]         976 │+    size_t len = buf.len;
[INFO] [stdout]         977 │+    FfiCdrSerializer serializer = cdr_serializer_new(ptr, len);
[INFO] [stdout]         978 │+    XcdrFfiError err = Ok;
[INFO] [stdout]         979 │+    {
[INFO] [stdout]         980 │+        size_t before = cdr_serializer_position(&serializer);
[INFO] [stdout]         981 │+        XcdrBufferResult child = dds_rpc_UnusedMember_serialize(
[INFO] [stdout]         982 │+        &self->dummy, (XcdrBuffer){
[INFO] [stdout]         983 │+            .ptr = ptr + before, .len = len - before, .pos = 0
[INFO] [stdout]         984 │+        });
[INFO] [stdout]         985 │+        if(child.err != Ok){
[INFO] [stdout]         986 │+            return(XcdrBufferResult){
[INFO] [stdout]         987 │+                child.err, before + child.used
[INFO] [stdout]         988 │+            };
[INFO] [stdout]         989 │+        }
[INFO] [stdout]         990 │+        serializer.pos = before + child.used;
[INFO] [stdout]         991 │+    }
[INFO] [stdout]         992 │+
[INFO] [stdout]         993 │+    return(XcdrBufferResult){
[INFO] [stdout]         994 │+        Ok, cdr_serializer_position(&serializer)
[INFO] [stdout]         995 │+    };
[INFO] [stdout]         996 │+}
[INFO] [stdout]         997 │+
[INFO] [stdout]         998 │+XcdrBufferResult I_set_attribute_value_Out_deserialize(I_set_attribute_value_Out * self, XcdrConstBuffer buf){
[INFO] [stdout]         999 │+    const uint8_t * ptr = buf.ptr;
[INFO] [stdout]        1000 │+    size_t len = buf.len;
[INFO] [stdout]        1001 │+    FfiCdrDeserializer deserializer = cdr_deserializer_new(ptr, len);
[INFO] [stdout]        1002 │+    XcdrFfiError err = Ok;
[INFO] [stdout]        1003 │+    {
[INFO] [stdout]        1004 │+        size_t before = cdr_deserializer_position(&deserializer);
[INFO] [stdout]        1005 │+        XcdrBufferResult child = dds_rpc_UnusedMember_deserialize(
[INFO] [stdout]        1006 │+        &self->dummy, (XcdrConstBuffer){
[INFO] [stdout]        1007 │+            .ptr = ptr + before, .len = len - before, .pos = 0
[INFO] [stdout]        1008 │+        });
[INFO] [stdout]        1009 │+        if(child.err != Ok){
[INFO] [stdout]        1010 │+            return(XcdrBufferResult){
[INFO] [stdout]        1011 │+                child.err, before + child.used
[INFO] [stdout]        1012 │+            };
[INFO] [stdout]        1013 │+        }
[INFO] [stdout]        1014 │+        deserializer.pos = before + child.used;
[INFO] [stdout]        1015 │+    }
[INFO] [stdout]        1016 │+
[INFO] [stdout]        1017 │+    return(XcdrBufferResult){
[INFO] [stdout]        1018 │+        Ok, cdr_deserializer_position(&deserializer)
[INFO] [stdout]        1019 │+    };
[INFO] [stdout]        1020 │+}
[INFO] [stdout]        1021 │+
[INFO] [stdout]        1022 │+XcdrBufferResult I_set_attribute_value_Result_serialize(I_set_attribute_value_Result const * self, XcdrBuffer buf){
[INFO] [stdout]        1023 │+    uint8_t * ptr = buf.ptr;
[INFO] [stdout]        1024 │+    size_t len = buf.len;
[INFO] [stdout]        1025 │+    FfiCdrSerializer serializer = cdr_serializer_new(ptr, len);
[INFO] [stdout]        1026 │+    XcdrFfiError err = Ok;
[INFO] [stdout]        1027 │+    err = cdr_serializer_write_i32(&serializer, "self->_d");
[INFO] [stdout]        1028 │+    if(err != Ok){
[INFO] [stdout]        1029 │+        return(XcdrBufferResult){
[INFO] [stdout]        1030 │+            err, cdr_serializer_position(&serializer)
[INFO] [stdout]        1031 │+        };
[INFO] [stdout]        1032 │+    }
[INFO] [stdout]        1033 │+
[INFO] [stdout]        1034 │+    switch(self->_d){
[INFO] [stdout]        1035 │+        case dds_RETCODE_OK:
[INFO] [stdout]        1036 │+
[INFO] [stdout]        1037 │+            {
[INFO] [stdout]        1038 │+                size_t before = cdr_serializer_position(&serializer);
[INFO] [stdout]        1039 │+                XcdrBufferResult child = I_set_attribute_value_Out_serialize(
[INFO] [stdout]        1040 │+                &self->_u.result, (XcdrBuffer){
[INFO] [stdout]        1041 │+                    .ptr = ptr + before, .len = len - before, .pos = 0
[INFO] [stdout]        1042 │+                });
[INFO] [stdout]        1043 │+                if(child.err != Ok){
[INFO] [stdout]        1044 │+                    return(XcdrBufferResult){
[INFO] [stdout]        1045 │+                        child.err, before + child.used
[INFO] [stdout]        1046 │+                    };
[INFO] [stdout]        1047 │+                }
[INFO] [stdout]        1048 │+                serializer.pos = before + child.used;
[INFO] [stdout]        1049 │+            }
[INFO] [stdout]        1050 │+
[INFO] [stdout]        1051 │+            break;
[INFO] [stdout]        1052 │+    }
[INFO] [stdout]        1053 │+    return(XcdrBufferResult){
[INFO] [stdout]        1054 │+        Ok, cdr_serializer_position(&serializer)
[INFO] [stdout]        1055 │+    };
[INFO] [stdout]        1056 │+}
[INFO] [stdout]        1057 │+
[INFO] [stdout]        1058 │+XcdrBufferResult I_set_attribute_value_Result_deserialize(I_set_attribute_value_Result * self, XcdrConstBuffer buf){
[INFO] [stdout]        1059 │+    const uint8_t * ptr = buf.ptr;
[INFO] [stdout]        1060 │+    size_t len = buf.len;
[INFO] [stdout]        1061 │+    FfiCdrDeserializer deserializer = cdr_deserializer_new(ptr, len);
[INFO] [stdout]        1062 │+    XcdrFfiError err = Ok;
[INFO] [stdout]        1063 │+    err = cdr_deserializer_read_i32_le(&deserializer, "self->_d");
[INFO] [stdout]        1064 │+    if(err != Ok){
[INFO] [stdout]        1065 │+        return(XcdrBufferResult){
[INFO] [stdout]        1066 │+            err, cdr_deserializer_position(&deserializer)
[INFO] [stdout]        1067 │+        };
[INFO] [stdout]        1068 │+    }
[INFO] [stdout]        1069 │+
[INFO] [stdout]        1070 │+    switch(self->_d){
[INFO] [stdout]        1071 │+        case dds_RETCODE_OK:
[INFO] [stdout]        1072 │+
[INFO] [stdout]        1073 │+            {
[INFO] [stdout]        1074 │+                size_t before = cdr_deserializer_position(&deserializer);
[INFO] [stdout]        1075 │+                XcdrBufferResult child = I_set_attribute_value_Out_deserialize(
[INFO] [stdout]        1076 │+                &self->_u.result, (XcdrConstBuffer){
[INFO] [stdout]        1077 │+                    .ptr = ptr + before, .len = len - before, .pos = 0
[INFO] [stdout]        1078 │+                });
[INFO] [stdout]        1079 │+                if(child.err != Ok){
[INFO] [stdout]        1080 │+                    return(XcdrBufferResult){
[INFO] [stdout]        1081 │+                        child.err, before + child.used
[INFO] [stdout]        1082 │+                    };
[INFO] [stdout]        1083 │+                }
[INFO] [stdout]        1084 │+                deserializer.pos = before + child.used;
[INFO] [stdout]        1085 │+            }
[INFO] [stdout]        1086 │+
[INFO] [stdout]        1087 │+            break;
[INFO] [stdout]        1088 │+    }
[INFO] [stdout]        1089 │+    return(XcdrBufferResult){
[INFO] [stdout]        1090 │+        Ok, cdr_deserializer_position(&deserializer)
[INFO] [stdout]        1091 │+    };
[INFO] [stdout]        1092 │+}
[INFO] [stdout]        1093 │+
[INFO] [stdout]        1094 │+XcdrBufferResult I_Call_serialize(I_Call const * self, XcdrBuffer buf){
[INFO] [stdout]        1095 │+    uint8_t * ptr = buf.ptr;
[INFO] [stdout]        1096 │+    size_t len = buf.len;
[INFO] [stdout]        1097 │+    FfiCdrSerializer serializer = cdr_serializer_new(ptr, len);
[INFO] [stdout]        1098 │+    XcdrFfiError err = Ok;
[INFO] [stdout]        1099 │+    err = cdr_serializer_write_i32(&serializer, "self->_d");
[INFO] [stdout]        1100 │+    if(err != Ok){
[INFO] [stdout]        1101 │+        return(XcdrBufferResult){
[INFO] [stdout]        1102 │+            err, cdr_serializer_position(&serializer)
[INFO] [stdout]        1103 │+        };
[INFO] [stdout]        1104 │+    }
[INFO] [stdout]        1105 │+
[INFO] [stdout]        1106 │+    switch(self->_d){
[INFO] [stdout]        1107 │+        default:
[INFO] [stdout]        1108 │+
[INFO] [stdout]        1109 │+            {
[INFO] [stdout]        1110 │+                size_t before = cdr_serializer_position(&serializer);
[INFO] [stdout]        1111 │+                XcdrBufferResult child = dds_rpc_UnknownOperation_serialize(
[INFO] [stdout]        1112 │+                &self->_u.unknownOp, (XcdrBuffer){
[INFO] [stdout]        1113 │+                    .ptr = ptr + before, .len = len - before, .pos = 0
[INFO] [stdout]        1114 │+                });
[INFO] [stdout]        1115 │+                if(child.err != Ok){
[INFO] [stdout]        1116 │+                    return(XcdrBufferResult){
[INFO] [stdout]        1117 │+                        child.err, before + child.used
[INFO] [stdout]        1118 │+                    };
[INFO] [stdout]        1119 │+                }
[INFO] [stdout]        1120 │+                serializer.pos = before + child.used;
[INFO] [stdout]        1121 │+            }
[INFO] [stdout]        1122 │+
[INFO] [stdout]        1123 │+            break;
[INFO] [stdout]        1124 │+        case I_ping_Hash:
[INFO] [stdout]        1125 │+
[INFO] [stdout]        1126 │+            {
[INFO] [stdout]        1127 │+                size_t before = cdr_serializer_position(&serializer);
[INFO] [stdout]        1128 │+                XcdrBufferResult child = I_ping_In_serialize(
[INFO] [stdout]        1129 │+                &self->_u.ping, (XcdrBuffer){
[INFO] [stdout]        1130 │+                    .ptr = ptr + before, .len = len - before, .pos = 0
[INFO] [stdout]        1131 │+                });
[INFO] [stdout]        1132 │+                if(child.err != Ok){
[INFO] [stdout]        1133 │+                    return(XcdrBufferResult){
[INFO] [stdout]        1134 │+                        child.err, before + child.used
[INFO] [stdout]        1135 │+                    };
[INFO] [stdout]        1136 │+                }
[INFO] [stdout]        1137 │+                serializer.pos = before + child.used;
[INFO] [stdout]        1138 │+            }
[INFO] [stdout]        1139 │+
[INFO] [stdout]        1140 │+            break;
[INFO] [stdout]        1141 │+        case I_get_attribute_value_Hash:
[INFO] [stdout]        1142 │+
[INFO] [stdout]        1143 │+            {
[INFO] [stdout]        1144 │+                size_t before = cdr_serializer_position(&serializer);
[INFO] [stdout]        1145 │+                XcdrBufferResult child = I_get_attribute_value_In_serialize(
[INFO] [stdout]        1146 │+                &self->_u.get_attribute_value, (XcdrBuffer){
[INFO] [stdout]        1147 │+                    .ptr = ptr + before, .len = len - before, .pos = 0
[INFO] [stdout]        1148 │+                });
[INFO] [stdout]        1149 │+                if(child.err != Ok){
[INFO] [stdout]        1150 │+                    return(XcdrBufferResult){
[INFO] [stdout]        1151 │+                        child.err, before + child.used
[INFO] [stdout]        1152 │+                    };
[INFO] [stdout]        1153 │+                }
[INFO] [stdout]        1154 │+                serializer.pos = before + child.used;
[INFO] [stdout]        1155 │+            }
[INFO] [stdout]        1156 │+
[INFO] [stdout]        1157 │+            break;
[INFO] [stdout]        1158 │+        case I_set_attribute_value_Hash:
[INFO] [stdout]        1159 │+
[INFO] [stdout]        1160 │+            {
[INFO] [stdout]        1161 │+                size_t before = cdr_serializer_position(&serializer);
[INFO] [stdout]        1162 │+                XcdrBufferResult child = I_set_attribute_value_In_serialize(
[INFO] [stdout]        1163 │+                &self->_u.set_attribute_value, (XcdrBuffer){
[INFO] [stdout]        1164 │+                    .ptr = ptr + before, .len = len - before, .pos = 0
[INFO] [stdout]        1165 │+                });
[INFO] [stdout]        1166 │+                if(child.err != Ok){
[INFO] [stdout]        1167 │+                    return(XcdrBufferResult){
[INFO] [stdout]        1168 │+                        child.err, before + child.used
[INFO] [stdout]        1169 │+                    };
[INFO] [stdout]        1170 │+                }
[INFO] [stdout]        1171 │+                serializer.pos = before + child.used;
[INFO] [stdout]        1172 │+            }
[INFO] [stdout]        1173 │+
[INFO] [stdout]        1174 │+            break;
[INFO] [stdout]        1175 │+    }
[INFO] [stdout]        1176 │+    return(XcdrBufferResult){
[INFO] [stdout]        1177 │+        Ok, cdr_serializer_position(&serializer)
[INFO] [stdout]        1178 │+    };
[INFO] [stdout]        1179 │+}
[INFO] [stdout]        1180 │+
[INFO] [stdout]        1181 │+XcdrBufferResult I_Call_deserialize(I_Call * self, XcdrConstBuffer buf){
[INFO] [stdout]        1182 │+    const uint8_t * ptr = buf.ptr;
[INFO] [stdout]        1183 │+    size_t len = buf.len;
[INFO] [stdout]        1184 │+    FfiCdrDeserializer deserializer = cdr_deserializer_new(ptr, len);
[INFO] [stdout]        1185 │+    XcdrFfiError err = Ok;
[INFO] [stdout]        1186 │+    err = cdr_deserializer_read_i32_le(&deserializer, "self->_d");
[INFO] [stdout]        1187 │+    if(err != Ok){
[INFO] [stdout]        1188 │+        return(XcdrBufferResult){
[INFO] [stdout]        1189 │+            err, cdr_deserializer_position(&deserializer)
[INFO] [stdout]        1190 │+        };
[INFO] [stdout]        1191 │+    }
[INFO] [stdout]        1192 │+
[INFO] [stdout]        1193 │+    switch(self->_d){
[INFO] [stdout]        1194 │+        default:
[INFO] [stdout]        1195 │+
[INFO] [stdout]        1196 │+            {
[INFO] [stdout]        1197 │+                size_t before = cdr_deserializer_position(&deserializer);
[INFO] [stdout]        1198 │+                XcdrBufferResult child = dds_rpc_UnknownOperation_deserialize(
[INFO] [stdout]        1199 │+                &self->_u.unknownOp, (XcdrConstBuffer){
[INFO] [stdout]        1200 │+                    .ptr = ptr + before, .len = len - before, .pos = 0
[INFO] [stdout]        1201 │+                });
[INFO] [stdout]        1202 │+                if(child.err != Ok){
[INFO] [stdout]        1203 │+                    return(XcdrBufferResult){
[INFO] [stdout]        1204 │+                        child.err, before + child.used
[INFO] [stdout]        1205 │+                    };
[INFO] [stdout]        1206 │+                }
[INFO] [stdout]        1207 │+                deserializer.pos = before + child.used;
[INFO] [stdout]        1208 │+            }
[INFO] [stdout]        1209 │+
[INFO] [stdout]        1210 │+            break;
[INFO] [stdout]        1211 │+        case I_ping_Hash:
[INFO] [stdout]        1212 │+
[INFO] [stdout]        1213 │+            {
[INFO] [stdout]        1214 │+                size_t before = cdr_deserializer_position(&deserializer);
[INFO] [stdout]        1215 │+                XcdrBufferResult child = I_ping_In_deserialize(
[INFO] [stdout]        1216 │+                &self->_u.ping, (XcdrConstBuffer){
[INFO] [stdout]        1217 │+                    .ptr = ptr + before, .len = len - before, .pos = 0
[INFO] [stdout]        1218 │+                });
[INFO] [stdout]        1219 │+                if(child.err != Ok){
[INFO] [stdout]        1220 │+                    return(XcdrBufferResult){
[INFO] [stdout]        1221 │+                        child.err, before + child.used
[INFO] [stdout]        1222 │+                    };
[INFO] [stdout]        1223 │+                }
[INFO] [stdout]        1224 │+                deserializer.pos = before + child.used;
[INFO] [stdout]        1225 │+            }
[INFO] [stdout]        1226 │+
[INFO] [stdout]        1227 │+            break;
[INFO] [stdout]        1228 │+        case I_get_attribute_value_Hash:
[INFO] [stdout]        1229 │+
[INFO] [stdout]        1230 │+            {
[INFO] [stdout]        1231 │+                size_t before = cdr_deserializer_position(&deserializer);
[INFO] [stdout]        1232 │+                XcdrBufferResult child = I_get_attribute_value_In_deserialize(
[INFO] [stdout]        1233 │+                &self->_u.get_attribute_value, (XcdrConstBuffer){
[INFO] [stdout]        1234 │+                    .ptr = ptr + before, .len = len - before, .pos = 0
[INFO] [stdout]        1235 │+                });
[INFO] [stdout]        1236 │+                if(child.err != Ok){
[INFO] [stdout]        1237 │+                    return(XcdrBufferResult){
[INFO] [stdout]        1238 │+                        child.err, before + child.used
[INFO] [stdout]        1239 │+                    };
[INFO] [stdout]        1240 │+                }
[INFO] [stdout]        1241 │+                deserializer.pos = before + child.used;
[INFO] [stdout]        1242 │+            }
[INFO] [stdout]        1243 │+
[INFO] [stdout]        1244 │+            break;
[INFO] [stdout]        1245 │+        case I_set_attribute_value_Hash:
[INFO] [stdout]        1246 │+
[INFO] [stdout]        1247 │+            {
[INFO] [stdout]        1248 │+                size_t before = cdr_deserializer_position(&deserializer);
[INFO] [stdout]        1249 │+                XcdrBufferResult child = I_set_attribute_value_In_deserialize(
[INFO] [stdout]        1250 │+                &self->_u.set_attribute_value, (XcdrConstBuffer){
[INFO] [stdout]        1251 │+                    .ptr = ptr + before, .len = len - before, .pos = 0
[INFO] [stdout]        1252 │+                });
[INFO] [stdout]        1253 │+                if(child.err != Ok){
[INFO] [stdout]        1254 │+                    return(XcdrBufferResult){
[INFO] [stdout]        1255 │+                        child.err, before + child.used
[INFO] [stdout]        1256 │+                    };
[INFO] [stdout]        1257 │+                }
[INFO] [stdout]        1258 │+                deserializer.pos = before + child.used;
[INFO] [stdout]        1259 │+            }
[INFO] [stdout]        1260 │+
[INFO] [stdout]        1261 │+            break;
[INFO] [stdout]        1262 │+    }
[INFO] [stdout]        1263 │+    return(XcdrBufferResult){
[INFO] [stdout]        1264 │+        Ok, cdr_deserializer_position(&deserializer)
[INFO] [stdout]        1265 │+    };
[INFO] [stdout]        1266 │+}
[INFO] [stdout]        1267 │+
[INFO] [stdout]        1268 │+XcdrBufferResult I_Request_serialize(I_Request const * self, XcdrBuffer buf){
[INFO] [stdout]        1269 │+    uint8_t * ptr = buf.ptr;
[INFO] [stdout]        1270 │+    size_t len = buf.len;
[INFO] [stdout]        1271 │+    FfiCdrSerializer serializer = cdr_serializer_new(ptr, len);
[INFO] [stdout]        1272 │+    XcdrFfiError err = Ok;
[INFO] [stdout]        1273 │+    {
[INFO] [stdout]        1274 │+        size_t before = cdr_serializer_position(&serializer);
[INFO] [stdout]        1275 │+        XcdrBufferResult child = dds_rpc_RequestHeader_serialize(
[INFO] [stdout]        1276 │+        &self->header, (XcdrBuffer){
[INFO] [stdout]        1277 │+            .ptr = ptr + before, .len = len - before, .pos = 0
[INFO] [stdout]        1278 │+        });
[INFO] [stdout]        1279 │+        if(child.err != Ok){
[INFO] [stdout]        1280 │+            return(XcdrBufferResult){
[INFO] [stdout]        1281 │+                child.err, before + child.used
[INFO] [stdout]        1282 │+            };
[INFO] [stdout]        1283 │+        }
[INFO] [stdout]        1284 │+        serializer.pos = before + child.used;
[INFO] [stdout]        1285 │+    }
[INFO] [stdout]        1286 │+
[INFO] [stdout]        1287 │+    {
[INFO] [stdout]        1288 │+        size_t before = cdr_serializer_position(&serializer);
[INFO] [stdout]        1289 │+        XcdrBufferResult child = I_Call_serialize(
[INFO] [stdout]        1290 │+        &self->data, (XcdrBuffer){
[INFO] [stdout]        1291 │+            .ptr = ptr + before, .len = len - before, .pos = 0
[INFO] [stdout]        1292 │+        });
[INFO] [stdout]        1293 │+        if(child.err != Ok){
[INFO] [stdout]        1294 │+            return(XcdrBufferResult){
[INFO] [stdout]        1295 │+                child.err, before + child.used
[INFO] [stdout]        1296 │+            };
[INFO] [stdout]        1297 │+        }
[INFO] [stdout]        1298 │+        serializer.pos = before + child.used;
[INFO] [stdout]        1299 │+    }
[INFO] [stdout]        1300 │+
[INFO] [stdout]        1301 │+    return(XcdrBufferResult){
[INFO] [stdout]        1302 │+        Ok, cdr_serializer_position(&serializer)
[INFO] [stdout]        1303 │+    };
[INFO] [stdout]        1304 │+}
[INFO] [stdout]        1305 │+
[INFO] [stdout]        1306 │+XcdrBufferResult I_Request_deserialize(I_Request * self, XcdrConstBuffer buf){
[INFO] [stdout]        1307 │+    const uint8_t * ptr = buf.ptr;
[INFO] [stdout]        1308 │+    size_t len = buf.len;
[INFO] [stdout]        1309 │+    FfiCdrDeserializer deserializer = cdr_deserializer_new(ptr, len);
[INFO] [stdout]        1310 │+    XcdrFfiError err = Ok;
[INFO] [stdout]        1311 │+    {
[INFO] [stdout]        1312 │+        size_t before = cdr_deserializer_position(&deserializer);
[INFO] [stdout]        1313 │+        XcdrBufferResult child = dds_rpc_RequestHeader_deserialize(
[INFO] [stdout]        1314 │+        &self->header, (XcdrConstBuffer){
[INFO] [stdout]        1315 │+            .ptr = ptr + before, .len = len - before, .pos = 0
[INFO] [stdout]        1316 │+        });
[INFO] [stdout]        1317 │+        if(child.err != Ok){
[INFO] [stdout]        1318 │+            return(XcdrBufferResult){
[INFO] [stdout]        1319 │+                child.err, before + child.used
[INFO] [stdout]        1320 │+            };
[INFO] [stdout]        1321 │+        }
[INFO] [stdout]        1322 │+        deserializer.pos = before + child.used;
[INFO] [stdout]        1323 │+    }
[INFO] [stdout]        1324 │+
[INFO] [stdout]        1325 │+    {
[INFO] [stdout]        1326 │+        size_t before = cdr_deserializer_position(&deserializer);
[INFO] [stdout]        1327 │+        XcdrBufferResult child = I_Call_deserialize(
[INFO] [stdout]        1328 │+        &self->data, (XcdrConstBuffer){
[INFO] [stdout]        1329 │+            .ptr = ptr + before, .len = len - before, .pos = 0
[INFO] [stdout]        1330 │+        });
[INFO] [stdout]        1331 │+        if(child.err != Ok){
[INFO] [stdout]        1332 │+            return(XcdrBufferResult){
[INFO] [stdout]        1333 │+                child.err, before + child.used
[INFO] [stdout]        1334 │+            };
[INFO] [stdout]        1335 │+        }
[INFO] [stdout]        1336 │+        deserializer.pos = before + child.used;
[INFO] [stdout]        1337 │+    }
[INFO] [stdout]        1338 │+
[INFO] [stdout]        1339 │+    return(XcdrBufferResult){
[INFO] [stdout]        1340 │+        Ok, cdr_deserializer_position(&deserializer)
[INFO] [stdout]        1341 │+    };
[INFO] [stdout]        1342 │+}
[INFO] [stdout]        1343 │+
[INFO] [stdout]        1344 │+XcdrBufferResult I_Return_serialize(I_Return const * self, XcdrBuffer buf){
[INFO] [stdout]        1345 │+    uint8_t * ptr = buf.ptr;
[INFO] [stdout]        1346 │+    size_t len = buf.len;
[INFO] [stdout]        1347 │+    FfiCdrSerializer serializer = cdr_serializer_new(ptr, len);
[INFO] [stdout]        1348 │+    XcdrFfiError err = Ok;
[INFO] [stdout]        1349 │+    err = cdr_serializer_write_i32(&serializer, "self->_d");
[INFO] [stdout]        1350 │+    if(err != Ok){
[INFO] [stdout]        1351 │+        return(XcdrBufferResult){
[INFO] [stdout]        1352 │+            err, cdr_serializer_position(&serializer)
[INFO] [stdout]        1353 │+        };
[INFO] [stdout]        1354 │+    }
[INFO] [stdout]        1355 │+
[INFO] [stdout]        1356 │+    switch(self->_d){
[INFO] [stdout]        1357 │+        default:
[INFO] [stdout]        1358 │+
[INFO] [stdout]        1359 │+            {
[INFO] [stdout]        1360 │+                size_t before = cdr_serializer_position(&serializer);
[INFO] [stdout]        1361 │+                XcdrBufferResult child = dds_rpc_UnknownOperation_serialize(
[INFO] [stdout]        1362 │+                &self->_u.unknownOp, (XcdrBuffer){
[INFO] [stdout]        1363 │+                    .ptr = ptr + before, .len = len - before, .pos = 0
[INFO] [stdout]        1364 │+                });
[INFO] [stdout]        1365 │+                if(child.err != Ok){
[INFO] [stdout]        1366 │+                    return(XcdrBufferResult){
[INFO] [stdout]        1367 │+                        child.err, before + child.used
[INFO] [stdout]        1368 │+                    };
[INFO] [stdout]        1369 │+                }
[INFO] [stdout]        1370 │+                serializer.pos = before + child.used;
[INFO] [stdout]        1371 │+            }
[INFO] [stdout]        1372 │+
[INFO] [stdout]        1373 │+            break;
[INFO] [stdout]        1374 │+        case I_ping_Hash:
[INFO] [stdout]        1375 │+
[INFO] [stdout]        1376 │+            {
[INFO] [stdout]        1377 │+                size_t before = cdr_serializer_position(&serializer);
[INFO] [stdout]        1378 │+                XcdrBufferResult child = I_ping_Result_serialize(
[INFO] [stdout]        1379 │+                &self->_u.ping, (XcdrBuffer){
[INFO] [stdout]        1380 │+                    .ptr = ptr + before, .len = len - before, .pos = 0
[INFO] [stdout]        1381 │+                });
[INFO] [stdout]        1382 │+                if(child.err != Ok){
[INFO] [stdout]        1383 │+                    return(XcdrBufferResult){
[INFO] [stdout]        1384 │+                        child.err, before + child.used
[INFO] [stdout]        1385 │+                    };
[INFO] [stdout]        1386 │+                }
[INFO] [stdout]        1387 │+                serializer.pos = before + child.used;
[INFO] [stdout]        1388 │+            }
[INFO] [stdout]        1389 │+
[INFO] [stdout]        1390 │+            break;
[INFO] [stdout]        1391 │+        case I_get_attribute_value_Hash:
[INFO] [stdout]        1392 │+
[INFO] [stdout]        1393 │+            {
[INFO] [stdout]        1394 │+                size_t before = cdr_serializer_position(&serializer);
[INFO] [stdout]        1395 │+                XcdrBufferResult child = I_get_attribute_value_Result_serialize(
[INFO] [stdout]        1396 │+                &self->_u.get_attribute_value, (XcdrBuffer){
[INFO] [stdout]        1397 │+                    .ptr = ptr + before, .len = len - before, .pos = 0
[INFO] [stdout]        1398 │+                });
[INFO] [stdout]        1399 │+                if(child.err != Ok){
[INFO] [stdout]        1400 │+                    return(XcdrBufferResult){
[INFO] [stdout]        1401 │+                        child.err, before + child.used
[INFO] [stdout]        1402 │+                    };
[INFO] [stdout]        1403 │+                }
[INFO] [stdout]        1404 │+                serializer.pos = before + child.used;
[INFO] [stdout]        1405 │+            }
[INFO] [stdout]        1406 │+
[INFO] [stdout]        1407 │+            break;
[INFO] [stdout]        1408 │+        case I_set_attribute_value_Hash:
[INFO] [stdout]        1409 │+
[INFO] [stdout]        1410 │+            {
[INFO] [stdout]        1411 │+                size_t before = cdr_serializer_position(&serializer);
[INFO] [stdout]        1412 │+                XcdrBufferResult child = I_set_attribute_value_Result_serialize(
[INFO] [stdout]        1413 │+                &self->_u.set_attribute_value, (XcdrBuffer){
[INFO] [stdout]        1414 │+                    .ptr = ptr + before, .len = len - before, .pos = 0
[INFO] [stdout]        1415 │+                });
[INFO] [stdout]        1416 │+                if(child.err != Ok){
[INFO] [stdout]        1417 │+                    return(XcdrBufferResult){
[INFO] [stdout]        1418 │+                        child.err, before + child.used
[INFO] [stdout]        1419 │+                    };
[INFO] [stdout]        1420 │+                }
[INFO] [stdout]        1421 │+                serializer.pos = before + child.used;
[INFO] [stdout]        1422 │+            }
[INFO] [stdout]        1423 │+
[INFO] [stdout]        1424 │+            break;
[INFO] [stdout]        1425 │+    }
[INFO] [stdout]        1426 │+    return(XcdrBufferResult){
[INFO] [stdout]        1427 │+        Ok, cdr_serializer_position(&serializer)
[INFO] [stdout]        1428 │+    };
[INFO] [stdout]        1429 │+}
[INFO] [stdout]        1430 │+
[INFO] [stdout]        1431 │+XcdrBufferResult I_Return_deserialize(I_Return * self, XcdrConstBuffer buf){
[INFO] [stdout]        1432 │+    const uint8_t * ptr = buf.ptr;
[INFO] [stdout]        1433 │+    size_t len = buf.len;
[INFO] [stdout]        1434 │+    FfiCdrDeserializer deserializer = cdr_deserializer_new(ptr, len);
[INFO] [stdout]        1435 │+    XcdrFfiError err = Ok;
[INFO] [stdout]        1436 │+    err = cdr_deserializer_read_i32_le(&deserializer, "self->_d");
[INFO] [stdout]        1437 │+    if(err != Ok){
[INFO] [stdout]        1438 │+        return(XcdrBufferResult){
[INFO] [stdout]        1439 │+            err, cdr_deserializer_position(&deserializer)
[INFO] [stdout]        1440 │+        };
[INFO] [stdout]        1441 │+    }
[INFO] [stdout]        1442 │+
[INFO] [stdout]        1443 │+    switch(self->_d){
[INFO] [stdout]        1444 │+        default:
[INFO] [stdout]        1445 │+
[INFO] [stdout]        1446 │+            {
[INFO] [stdout]        1447 │+                size_t before = cdr_deserializer_position(&deserializer);
[INFO] [stdout]        1448 │+                XcdrBufferResult child = dds_rpc_UnknownOperation_deserialize(
[INFO] [stdout]        1449 │+                &self->_u.unknownOp, (XcdrConstBuffer){
[INFO] [stdout]        1450 │+                    .ptr = ptr + before, .len = len - before, .pos = 0
[INFO] [stdout]        1451 │+                });
[INFO] [stdout]        1452 │+                if(child.err != Ok){
[INFO] [stdout]        1453 │+                    return(XcdrBufferResult){
[INFO] [stdout]        1454 │+                        child.err, before + child.used
[INFO] [stdout]        1455 │+                    };
[INFO] [stdout]        1456 │+                }
[INFO] [stdout]        1457 │+                deserializer.pos = before + child.used;
[INFO] [stdout]        1458 │+            }
[INFO] [stdout]        1459 │+
[INFO] [stdout]        1460 │+            break;
[INFO] [stdout]        1461 │+        case I_ping_Hash:
[INFO] [stdout]        1462 │+
[INFO] [stdout]        1463 │+            {
[INFO] [stdout]        1464 │+                size_t before = cdr_deserializer_position(&deserializer);
[INFO] [stdout]        1465 │+                XcdrBufferResult child = I_ping_Result_deserialize(
[INFO] [stdout]        1466 │+                &self->_u.ping, (XcdrConstBuffer){
[INFO] [stdout]        1467 │+                    .ptr = ptr + before, .len = len - before, .pos = 0
[INFO] [stdout]        1468 │+                });
[INFO] [stdout]        1469 │+                if(child.err != Ok){
[INFO] [stdout]        1470 │+                    return(XcdrBufferResult){
[INFO] [stdout]        1471 │+                        child.err, before + child.used
[INFO] [stdout]        1472 │+                    };
[INFO] [stdout]        1473 │+                }
[INFO] [stdout]        1474 │+                deserializer.pos = before + child.used;
[INFO] [stdout]        1475 │+            }
[INFO] [stdout]        1476 │+
[INFO] [stdout]        1477 │+            break;
[INFO] [stdout]        1478 │+        case I_get_attribute_value_Hash:
[INFO] [stdout]        1479 │+
[INFO] [stdout]        1480 │+            {
[INFO] [stdout]        1481 │+                size_t before = cdr_deserializer_position(&deserializer);
[INFO] [stdout]        1482 │+                XcdrBufferResult child = I_get_attribute_value_Result_deserialize(
[INFO] [stdout]        1483 │+                &self->_u.get_attribute_value, (XcdrConstBuffer){
[INFO] [stdout]        1484 │+                    .ptr = ptr + before, .len = len - before, .pos = 0
[INFO] [stdout]        1485 │+                });
[INFO] [stdout]        1486 │+                if(child.err != Ok){
[INFO] [stdout]        1487 │+                    return(XcdrBufferResult){
[INFO] [stdout]        1488 │+                        child.err, before + child.used
[INFO] [stdout]        1489 │+                    };
[INFO] [stdout]        1490 │+                }
[INFO] [stdout]        1491 │+                deserializer.pos = before + child.used;
[INFO] [stdout]        1492 │+            }
[INFO] [stdout]        1493 │+
[INFO] [stdout]        1494 │+            break;
[INFO] [stdout]        1495 │+        case I_set_attribute_value_Hash:
[INFO] [stdout]        1496 │+
[INFO] [stdout]        1497 │+            {
[INFO] [stdout]        1498 │+                size_t before = cdr_deserializer_position(&deserializer);
[INFO] [stdout]        1499 │+                XcdrBufferResult child = I_set_attribute_value_Result_deserialize(
[INFO] [stdout]        1500 │+                &self->_u.set_attribute_value, (XcdrConstBuffer){
[INFO] [stdout]        1501 │+                    .ptr = ptr + before, .len = len - before, .pos = 0
[INFO] [stdout]        1502 │+                });
[INFO] [stdout]        1503 │+                if(child.err != Ok){
[INFO] [stdout]        1504 │+                    return(XcdrBufferResult){
[INFO] [stdout]        1505 │+                        child.err, before + child.used
[INFO] [stdout]        1506 │+                    };
[INFO] [stdout]        1507 │+                }
[INFO] [stdout]        1508 │+                deserializer.pos = before + child.used;
[INFO] [stdout]        1509 │+            }
[INFO] [stdout]        1510 │+
[INFO] [stdout]        1511 │+            break;
[INFO] [stdout]        1512 │+    }
[INFO] [stdout]        1513 │+    return(XcdrBufferResult){
[INFO] [stdout]        1514 │+        Ok, cdr_deserializer_position(&deserializer)
[INFO] [stdout]        1515 │+    };
[INFO] [stdout]        1516 │+}
[INFO] [stdout]        1517 │+
[INFO] [stdout]        1518 │+XcdrBufferResult I_Reply_serialize(I_Reply const * self, XcdrBuffer buf){
[INFO] [stdout]        1519 │+    uint8_t * ptr = buf.ptr;
[INFO] [stdout]        1520 │+    size_t len = buf.len;
[INFO] [stdout]        1521 │+    FfiCdrSerializer serializer = cdr_serializer_new(ptr, len);
[INFO] [stdout]        1522 │+    XcdrFfiError err = Ok;
[INFO] [stdout]        1523 │+    {
[INFO] [stdout]        1524 │+        size_t before = cdr_serializer_position(&serializer);
[INFO] [stdout]        1525 │+        XcdrBufferResult child = dds_rpc_ReplyHeader_serialize(
[INFO] [stdout]        1526 │+        &self->header, (XcdrBuffer){
[INFO] [stdout]        1527 │+            .ptr = ptr + before, .len = len - before, .pos = 0
[INFO] [stdout]        1528 │+        });
[INFO] [stdout]        1529 │+        if(child.err != Ok){
[INFO] [stdout]        1530 │+            return(XcdrBufferResult){
[INFO] [stdout]        1531 │+                child.err, before + child.used
[INFO] [stdout]        1532 │+            };
[INFO] [stdout]        1533 │+        }
[INFO] [stdout]        1534 │+        serializer.pos = before + child.used;
[INFO] [stdout]        1535 │+    }
[INFO] [stdout]        1536 │+
[INFO] [stdout]        1537 │+    {
[INFO] [stdout]        1538 │+        size_t before = cdr_serializer_position(&serializer);
[INFO] [stdout]        1539 │+        XcdrBufferResult child = I_Return_serialize(
[INFO] [stdout]        1540 │+        &self->data, (XcdrBuffer){
[INFO] [stdout]        1541 │+            .ptr = ptr + before, .len = len - before, .pos = 0
[INFO] [stdout]        1542 │+        });
[INFO] [stdout]        1543 │+        if(child.err != Ok){
[INFO] [stdout]        1544 │+            return(XcdrBufferResult){
[INFO] [stdout]        1545 │+                child.err, before + child.used
[INFO] [stdout]        1546 │+            };
[INFO] [stdout]        1547 │+        }
[INFO] [stdout]        1548 │+        serializer.pos = before + child.used;
[INFO] [stdout]        1549 │+    }
[INFO] [stdout]        1550 │+
[INFO] [stdout]        1551 │+    return(XcdrBufferResult){
[INFO] [stdout]        1552 │+        Ok, cdr_serializer_position(&serializer)
[INFO] [stdout]        1553 │+    };
[INFO] [stdout]        1554 │+}
[INFO] [stdout]        1555 │+
[INFO] [stdout]        1556 │+XcdrBufferResult I_Reply_deserialize(I_Reply * self, XcdrConstBuffer buf){
[INFO] [stdout]        1557 │+    const uint8_t * ptr = buf.ptr;
[INFO] [stdout]        1558 │+    size_t len = buf.len;
[INFO] [stdout]        1559 │+    FfiCdrDeserializer deserializer = cdr_deserializer_new(ptr, len);
[INFO] [stdout]        1560 │+    XcdrFfiError err = Ok;
[INFO] [stdout]        1561 │+    {
[INFO] [stdout]        1562 │+        size_t before = cdr_deserializer_position(&deserializer);
[INFO] [stdout]        1563 │+        XcdrBufferResult child = dds_rpc_ReplyHeader_deserialize(
[INFO] [stdout]        1564 │+        &self->header, (XcdrConstBuffer){
[INFO] [stdout]        1565 │+            .ptr = ptr + before, .len = len - before, .pos = 0
[INFO] [stdout]        1566 │+        });
[INFO] [stdout]        1567 │+        if(child.err != Ok){
[INFO] [stdout]        1568 │+            return(XcdrBufferResult){
[INFO] [stdout]        1569 │+                child.err, before + child.used
[INFO] [stdout]        1570 │+            };
[INFO] [stdout]        1571 │+        }
[INFO] [stdout]        1572 │+        deserializer.pos = before + child.used;
[INFO] [stdout]        1573 │+    }
[INFO] [stdout]        1574 │+
[INFO] [stdout]        1575 │+    {
[INFO] [stdout]        1576 │+        size_t before = cdr_deserializer_position(&deserializer);
[INFO] [stdout]        1577 │+        XcdrBufferResult child = I_Return_deserialize(
[INFO] [stdout]        1578 │+        &self->data, (XcdrConstBuffer){
[INFO] [stdout]        1579 │+            .ptr = ptr + before, .len = len - before, .pos = 0
[INFO] [stdout]        1580 │+        });
[INFO] [stdout]        1581 │+        if(child.err != Ok){
[INFO] [stdout]        1582 │+            return(XcdrBufferResult){
[INFO] [stdout]        1583 │+                child.err, before + child.used
[INFO] [stdout]        1584 │+            };
[INFO] [stdout]        1585 │+        }
[INFO] [stdout]        1586 │+        deserializer.pos = before + child.used;
[INFO] [stdout]        1587 │+    }
[INFO] [stdout]        1588 │+
[INFO] [stdout]        1589 │+    return(XcdrBufferResult){
[INFO] [stdout]        1590 │+        Ok, cdr_deserializer_position(&deserializer)
[INFO] [stdout]        1591 │+    };
[INFO] [stdout]        1592 │+}
[INFO] [stdout]        1593 │+===============
[INFO] [stdout]        1594 │+annotation_basic_xcdr.h
[INFO] [stdout]        1595 │+===============
[INFO] [stdout]        1596 │+#ifndef ANNOTATION_BASIC_XCDR_H
[INFO] [stdout]        1597 │+#define ANNOTATION_BASIC_XCDR_H
[INFO] [stdout]        1598 │+#include<stdbool.h>
[INFO] [stdout]        1599 │+#include<stdint.h>
[INFO] [stdout]        1600 │+#include<wchar.h>
[INFO] [stdout]        1601 │+
[INFO] [stdout]        1602 │+XcdrBufferResult S_serialize(S const * self, XcdrBuffer buf);
[INFO] [stdout]        1603 │+XcdrBufferResult S_deserialize(S * self, XcdrConstBuffer buf);
[INFO] [stdout]        1604 │+XcdrBufferResult E_serialize(E const * self, XcdrBuffer buf);
[INFO] [stdout]        1605 │+XcdrBufferResult E_deserialize(E * self, XcdrConstBuffer buf);
[INFO] [stdout]        1606 │+XcdrBufferResult BM_serialize(BM const * self, XcdrBuffer buf);
[INFO] [stdout]        1607 │+XcdrBufferResult BM_deserialize(BM * self, XcdrConstBuffer buf);
[INFO] [stdout]        1608 │+XcdrBufferResult U_serialize(U const * self, XcdrBuffer buf);
[INFO] [stdout]        1609 │+XcdrBufferResult U_deserialize(U * self, XcdrConstBuffer buf);
[INFO] [stdout]        1610 │+XcdrBufferResult I_ping_In_serialize(I_ping_In const * self, XcdrBuffer buf);
[INFO] [stdout]        1611 │+XcdrBufferResult I_ping_In_deserialize(I_ping_In * self, XcdrConstBuffer buf);
[INFO] [stdout]        1612 │+XcdrBufferResult I_ping_Out_serialize(I_ping_Out const * self, XcdrBuffer buf);
[INFO] [stdout]        1613 │+XcdrBufferResult I_ping_Out_deserialize(I_ping_Out * self, XcdrConstBuffer buf);
[INFO] [stdout]        1614 │+XcdrBufferResult I_ping_Result_serialize(I_ping_Result const * self, XcdrBuffer buf);
[INFO] [stdout]        1615 │+XcdrBufferResult I_ping_Result_deserialize(I_ping_Result * self, XcdrConstBuffer buf);
[INFO] [stdout]        1616 │+XcdrBufferResult I_get_attribute_value_In_serialize(I_get_attribute_value_In const * self, XcdrBuffer buf);
[INFO] [stdout]        1617 │+XcdrBufferResult I_get_attribute_value_In_deserialize(I_get_attribute_value_In * self, XcdrConstBuffer buf);
[INFO] [stdout]        1618 │+XcdrBufferResult I_get_attribute_value_Out_serialize(I_get_attribute_value_Out const * self, XcdrBuffer buf);
[INFO] [stdout]        1619 │+XcdrBufferResult I_get_attribute_value_Out_deserialize(I_get_attribute_value_Out * self, XcdrConstBuffer buf);
[INFO] [stdout]        1620 │+XcdrBufferResult I_get_attribute_value_Result_serialize(I_get_attribute_value_Result const * self, XcdrBuffer buf);
[INFO] [stdout]        1621 │+XcdrBufferResult I_get_attribute_value_Result_deserialize(I_get_attribute_value_Result * self, XcdrConstBuffer buf);
[INFO] [stdout]        1622 │+XcdrBufferResult I_set_attribute_value_In_serialize(I_set_attribute_value_In const * self, XcdrBuffer buf);
[INFO] [stdout]        1623 │+XcdrBufferResult I_set_attribute_value_In_deserialize(I_set_attribute_value_In * self, XcdrConstBuffer buf);
[INFO] [stdout]        1624 │+XcdrBufferResult I_set_attribute_value_Out_serialize(I_set_attribute_value_Out const * self, XcdrBuffer buf);
[INFO] [stdout]        1625 │+XcdrBufferResult I_set_attribute_value_Out_deserialize(I_set_attribute_value_Out * self, XcdrConstBuffer buf);
[INFO] [stdout]        1626 │+XcdrBufferResult I_set_attribute_value_Result_serialize(I_set_attribute_value_Result const * self, XcdrBuffer buf);
[INFO] [stdout]        1627 │+XcdrBufferResult I_set_attribute_value_Result_deserialize(I_set_attribute_value_Result * self, XcdrConstBuffer buf);
[INFO] [stdout]        1628 │+XcdrBufferResult I_Call_serialize(I_Call const * self, XcdrBuffer buf);
[INFO] [stdout]        1629 │+XcdrBufferResult I_Call_deserialize(I_Call * self, XcdrConstBuffer buf);
[INFO] [stdout]        1630 │+XcdrBufferResult I_Request_serialize(I_Request const * self, XcdrBuffer buf);
[INFO] [stdout]        1631 │+XcdrBufferResult I_Request_deserialize(I_Request * self, XcdrConstBuffer buf);
[INFO] [stdout]        1632 │+XcdrBufferResult I_Return_serialize(I_Return const * self, XcdrBuffer buf);
[INFO] [stdout]        1633 │+XcdrBufferResult I_Return_deserialize(I_Return * self, XcdrConstBuffer buf);
[INFO] [stdout]        1634 │+XcdrBufferResult I_Reply_serialize(I_Reply const * self, XcdrBuffer buf);
[INFO] [stdout]        1635 │+XcdrBufferResult I_Reply_deserialize(I_Reply * self, XcdrConstBuffer buf);
[INFO] [stdout]        1636 │+#endif
[INFO] [stdout] ────────────┴───────────────────────────────────────────────────────────────────
[INFO] [stdout] 
[INFO] [stdout] thread 'driver::tests::test_code_gen' (18) panicked at src/driver/tests/mod.rs:60:9:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: Os { code: 30, kind: ReadOnlyFilesystem, message: "Read-only file system" }
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x6442bf3a160a - std[b80a194dd3c418bb]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x6442bf3a160a - std[b80a194dd3c418bb]::backtrace_rs::backtrace::trace_unsynchronized::<std[b80a194dd3c418bb]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x6442bf3a160a - std[b80a194dd3c418bb]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x6442bf3a160a - <<std[b80a194dd3c418bb]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[10b6fa85044e1869]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x6442bf3ba68a - <core[10b6fa85044e1869]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x6442bf3ba68a - core[10b6fa85044e1869]::fmt::write
[INFO] [stdout]    6:     0x6442bf3a64d2 - std[b80a194dd3c418bb]::io::default_write_fmt::<alloc[dd269455e567d8e9]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x6442bf3a64d2 - <alloc[dd269455e567d8e9]::vec::Vec<u8> as std[b80a194dd3c418bb]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/io/mod.rs:1994:13
[INFO] [stdout]    8:     0x6442bf37d00f - <std[b80a194dd3c418bb]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x6442bf37d00f - std[b80a194dd3c418bb]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x6442bf398589 - std[b80a194dd3c418bb]::panicking::default_hook
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x6442be8b05ac - <alloc[dd269455e567d8e9]::boxed::Box<dyn for<'a, 'b> core[10b6fa85044e1869]::ops::function::Fn<(&'a std[b80a194dd3c418bb]::panic::PanicHookInfo<'b>,), Output = ()> + core[10b6fa85044e1869]::marker::Sync + core[10b6fa85044e1869]::marker::Send> as core[10b6fa85044e1869]::ops::function::Fn<(&std[b80a194dd3c418bb]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/alloc/src/boxed.rs:2254:9
[INFO] [stdout]   12:     0x6442be8b05ac - test[826cbc6ef54ab466]::test_main_with_exit_callback::<test[826cbc6ef54ab466]::test_main::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x6442bf398802 - <alloc[dd269455e567d8e9]::boxed::Box<dyn for<'a, 'b> core[10b6fa85044e1869]::ops::function::Fn<(&'a std[b80a194dd3c418bb]::panic::PanicHookInfo<'b>,), Output = ()> + core[10b6fa85044e1869]::marker::Sync + core[10b6fa85044e1869]::marker::Send> as core[10b6fa85044e1869]::ops::function::Fn<(&std[b80a194dd3c418bb]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/alloc/src/boxed.rs:2254:9
[INFO] [stdout]   14:     0x6442bf398802 - std[b80a194dd3c418bb]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x6442bf37d0c8 - std[b80a194dd3c418bb]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x6442bf374679 - std[b80a194dd3c418bb]::sys::backtrace::__rust_end_short_backtrace::<std[b80a194dd3c418bb]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x6442bf37de7d - __rustc[9698a3e60dd14283]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x6442bf3bafec - core[10b6fa85044e1869]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x6442bf3bad62 - core[10b6fa85044e1869]::result::unwrap_failed
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/result.rs:1867:5
[INFO] [stdout]   20:     0x6442be6de8d6 - core::result::Result<T,E>::unwrap::h8f12a7b6ee6576f7
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/result.rs:1233:23
[INFO] [stdout]   21:     0x6442be6de8d6 - xidlc::driver::tests::assert_cases::{{closure}}::h49eb19f7fa72a66d
[INFO] [stdout]                                at /opt/rustwide/workdir/src/driver/tests/mod.rs:60:9
[INFO] [stdout]   22:     0x6442be6df22c - xidlc::driver::tests::test_code_gen::{{closure}}::h099169e3d7b0a8d2
[INFO] [stdout]                                at /opt/rustwide/workdir/src/driver/tests/mod.rs:87:62
[INFO] [stdout]   23:     0x6442be86be82 - <core::pin::Pin<P> as core::future::future::Future>::poll::h7269b232cf02af35
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/future/future.rs:133:9
[INFO] [stdout]   24:     0x6442be86c01d - <core::pin::Pin<P> as core::future::future::Future>::poll::ha7eca16e29d50446
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/future/future.rs:133:9
[INFO] [stdout]   25:     0x6442be591cdd - tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}::{{closure}}::h8dddc8d4138fdb03
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/scheduler/current_thread/mod.rs:769:70
[INFO] [stdout]   26:     0x6442be591a7b - tokio::task::coop::with_budget::h0833f0cd1a5082c9
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/task/coop/mod.rs:167:5
[INFO] [stdout]   27:     0x6442be591a7b - tokio::task::coop::budget::ha8266006ee14def9
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/task/coop/mod.rs:133:5
[INFO] [stdout]   28:     0x6442be591a7b - tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}::h25f439007d3f4b3d
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/scheduler/current_thread/mod.rs:769:25
[INFO] [stdout]   29:     0x6442be58ecc0 - tokio::runtime::scheduler::current_thread::Context::enter::h0186d5f1551ea574
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/scheduler/current_thread/mod.rs:446:19
[INFO] [stdout]   30:     0x6442be59061d - tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::h15cf200ff0097766
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/scheduler/current_thread/mod.rs:768:44
[INFO] [stdout]   31:     0x6442be590284 - tokio::runtime::scheduler::current_thread::CoreGuard::enter::{{closure}}::h440b96f4b3dd3da4
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/scheduler/current_thread/mod.rs:856:68
[INFO] [stdout]   32:     0x6442be86b0eb - tokio::runtime::context::scoped::Scoped<T>::set::h343eb9fd21e99d92
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/context/scoped.rs:40:9
[INFO] [stdout]   33:     0x6442be63f499 - tokio::runtime::context::set_scheduler::{{closure}}::hca58545c06db7536
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/context.rs:176:38
[INFO] [stdout]   34:     0x6442be735212 - std::thread::local::LocalKey<T>::try_with::hf689ec30273e1865
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/thread/local.rs:513:12
[INFO] [stdout]   35:     0x6442be73285e - std::thread::local::LocalKey<T>::with::h56ee0fbb5b4f9079
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/thread/local.rs:477:20
[INFO] [stdout]   36:     0x6442be63f40d - tokio::runtime::context::set_scheduler::h5c2633451a3e310e
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/context.rs:176:17
[INFO] [stdout]   37:     0x6442be590030 - tokio::runtime::scheduler::current_thread::CoreGuard::enter::hceaab51e60d89797
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/scheduler/current_thread/mod.rs:856:27
[INFO] [stdout]   38:     0x6442be590366 - tokio::runtime::scheduler::current_thread::CoreGuard::block_on::h3e6d29924c82f91e
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/scheduler/current_thread/mod.rs:756:24
[INFO] [stdout]   39:     0x6442be58b4d0 - tokio::runtime::scheduler::current_thread::CurrentThread::block_on::{{closure}}::h2052e2f880cce265
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/scheduler/current_thread/mod.rs:200:33
[INFO] [stdout]   40:     0x6442be6dd063 - tokio::runtime::context::runtime::enter_runtime::hbe9728016edb4e5a
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/context/runtime.rs:65:16
[INFO] [stdout]   41:     0x6442be58b291 - tokio::runtime::scheduler::current_thread::CurrentThread::block_on::h84b487f0c6a2e993
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/scheduler/current_thread/mod.rs:188:9
[INFO] [stdout]   42:     0x6442be6ddb84 - tokio::runtime::runtime::Runtime::block_on_inner::h26db8e162dbf12a9
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/runtime.rs:371:52
[INFO] [stdout]   43:     0x6442be6dde5f - tokio::runtime::runtime::Runtime::block_on::he1b4da13d1d16cf2
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/runtime.rs:345:18
[INFO] [stdout]   44:     0x6442be6dee5f - xidlc::driver::tests::test_code_gen::h1d4a41f4cde4eed9
[INFO] [stdout]                                at /opt/rustwide/workdir/src/driver/tests/mod.rs:85:27
[INFO] [stdout]   45:     0x6442be6df627 - xidlc::driver::tests::test_code_gen::{{closure}}::h0b66e2056eb8c9a9
[INFO] [stdout]                                at /opt/rustwide/workdir/src/driver/tests/mod.rs:65:25
[INFO] [stdout]   46:     0x6442be6b50e6 - core::ops::function::FnOnce::call_once::h6d4c8bb4d518eb9d
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   47:     0x6442be8a468b - <fn() -> core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String> as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   48:     0x6442be8a468b - test[826cbc6ef54ab466]::__rust_begin_short_backtrace::<core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>, fn() -> core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:663:18
[INFO] [stdout]   49:     0x6442be8b107b - test[826cbc6ef54ab466]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:686:74
[INFO] [stdout]   50:     0x6442be8b107b - <core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<test[826cbc6ef54ab466]::run_test_in_process::{closure#0}> as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   51:     0x6442be8b107b - std[b80a194dd3c418bb]::panicking::catch_unwind::do_call::<core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<test[826cbc6ef54ab466]::run_test_in_process::{closure#0}>, core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:581:40
[INFO] [stdout]   52:     0x6442be8b107b - std[b80a194dd3c418bb]::panicking::catch_unwind::<core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>, core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<test[826cbc6ef54ab466]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:544:19
[INFO] [stdout]   53:     0x6442be8b107b - std[b80a194dd3c418bb]::panic::catch_unwind::<core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<test[826cbc6ef54ab466]::run_test_in_process::{closure#0}>, core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panic.rs:359:14
[INFO] [stdout]   54:     0x6442be8b107b - test[826cbc6ef54ab466]::run_test_in_process
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:686:27
[INFO] [stdout]   55:     0x6442be8b107b - test[826cbc6ef54ab466]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:607:43
[INFO] [stdout]   56:     0x6442be8ac794 - test[826cbc6ef54ab466]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:637:41
[INFO] [stdout]   57:     0x6442be8ac794 - std[b80a194dd3c418bb]::sys::backtrace::__rust_begin_short_backtrace::<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   58:     0x6442be8b3c82 - std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked::<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/thread/lifecycle.rs:91:13
[INFO] [stdout]   59:     0x6442be8b3c82 - <core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   60:     0x6442be8b3c82 - std[b80a194dd3c418bb]::panicking::catch_unwind::do_call::<core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:581:40
[INFO] [stdout]   61:     0x6442be8b3c82 - std[b80a194dd3c418bb]::panicking::catch_unwind::<(), core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:544:19
[INFO] [stdout]   62:     0x6442be8b3c82 - std[b80a194dd3c418bb]::panic::catch_unwind::<core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panic.rs:359:14
[INFO] [stdout]   63:     0x6442be8b3c82 - std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked::<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/thread/lifecycle.rs:89:26
[INFO] [stdout]   64:     0x6442be8b3c82 - <std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1} as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   65:     0x6442bf3a06bf - <alloc[dd269455e567d8e9]::boxed::Box<dyn core[10b6fa85044e1869]::ops::function::FnOnce<(), Output = ()> + core[10b6fa85044e1869]::marker::Send> as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/alloc/src/boxed.rs:2240:9
[INFO] [stdout]   66:     0x6442bf3a06bf - <std[b80a194dd3c418bb]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   67:     0x7a42cb40aaa4 - <unknown>
[INFO] [stdout]   68:     0x7a42cb497a64 - clone
[INFO] [stdout]   69:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] ---- driver::tests::test_rust_axum::test_code_gen stdout ----
[INFO] [stdout] ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Snapshot Summary ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[INFO] [stdout] Snapshot file: src/driver/tests/test_rust_axum/snapshots/xidlc__driver__tests__test_rust_axum__rust_axum_rust_gen__ipc.snap
[INFO] [stdout] Snapshot: rust_axum_rust_gen__ipc
[INFO] [stdout] Source: src/driver/tests/test_rust_axum/mod.rs:45
[INFO] [stdout] ────────────────────────────────────────────────────────────────────────────────
[INFO] [stdout] Expression: output
[INFO] [stdout] ────────────────────────────────────────────────────────────────────────────────
[INFO] [stdout] +new results
[INFO] [stdout] ────────────┬───────────────────────────────────────────────────────────────────
[INFO] [stdout]           1 │+===============
[INFO] [stdout]           2 │+ipc.client.ts
[INFO] [stdout]           3 │+===============
[INFO] [stdout]           4 │+
[INFO] [stdout]           5 │+    // Generated by xidlc. DO NOT EDIT.
[INFO] [stdout]           6 │+import type*as types from"./ipc";
[INFO] [stdout]           7 │+import*as zodSchemas from"./ipc.iface.zod";
[INFO] [stdout]           8 │+export type FetchLike = (
[INFO] [stdout]           9 │+input : RequestInfo | URL, init ? : RequestInit
[INFO] [stdout]          10 │+) => Promise<
[INFO] [stdout]          11 │+Response
[INFO] [stdout]          12 │+>;
[INFO] [stdout]          13 │+export interface ClientOptions{
[INFO] [stdout]          14 │+    fetch ? : FetchLike;
[INFO] [stdout]          15 │+    headers ? : Record<
[INFO] [stdout]          16 │+    string, string
[INFO] [stdout]          17 │+    >;
[INFO] [stdout]          18 │+}
[INFO] [stdout]          19 │+
[INFO] [stdout]          20 │+export class XidlClientError extends Error{
[INFO] [stdout]          21 │+    readonly code : number;
[INFO] [stdout]          22 │+    readonly status : number;
[INFO] [stdout]          23 │+    constructor(
[INFO] [stdout]          24 │+    message : string, code : number, status : number
[INFO] [stdout]          25 │+    ){
[INFO] [stdout]          26 │+        super(
[INFO] [stdout]          27 │+        message
[INFO] [stdout]          28 │+        );
[INFO] [stdout]          29 │+        this.code = code;
[INFO] [stdout]          30 │+        this.status = status;
[INFO] [stdout]          31 │+    }
[INFO] [stdout]          32 │+}
[INFO] [stdout]          33 │+
[INFO] [stdout]          34 │+function resolveFetch(
[INFO] [stdout]          35 │+fetchImpl ? : FetchLike
[INFO] [stdout]          36 │+) : FetchLike{
[INFO] [stdout]          37 │+    if(fetchImpl){
[INFO] [stdout]          38 │+        return fetchImpl;
[INFO] [stdout]          39 │+    }
[INFO] [stdout]          40 │+
[INFO] [stdout]          41 │+    return window.fetch.bind(
[INFO] [stdout]          42 │+    undefined
[INFO] [stdout]          43 │+    );
[INFO] [stdout]          44 │+}
[INFO] [stdout]          45 │+
[INFO] [stdout]          46 │+function joinUrl(
[INFO] [stdout]          47 │+baseUrl : string, path : string
[INFO] [stdout]          48 │+) : string{
[INFO] [stdout]          49 │+    if(baseUrl.endsWith(
[INFO] [stdout]          50 │+    "/"
[INFO] [stdout]          51 │+    )&&path.startsWith(
[INFO] [stdout]          52 │+    "/"
[INFO] [stdout]          53 │+    )){
[INFO] [stdout]          54 │+        return`${baseUrl}${path.slice(
[INFO] [stdout]          55 │+            1
[INFO] [stdout]          56 │+            )}`;
[INFO] [stdout]          57 │+    }
[INFO] [stdout]          58 │+    if(!baseUrl.endsWith(
[INFO] [stdout]          59 │+    "/"
[INFO] [stdout]          60 │+    )&&!path.startsWith(
[INFO] [stdout]          61 │+    "/"
[INFO] [stdout]          62 │+    )){
[INFO] [stdout]          63 │+        return`${baseUrl}/${path}`;
[INFO] [stdout]          64 │+    }
[INFO] [stdout]          65 │+    return`${baseUrl}${path}`;
[INFO] [stdout]          66 │+}
[INFO] [stdout]          67 │+
[INFO] [stdout]          68 │+function encodePathSegment(
[INFO] [stdout]          69 │+value : unknown
[INFO] [stdout]          70 │+) : string{
[INFO] [stdout]          71 │+    return encodeURIComponent(
[INFO] [stdout]          72 │+    String(
[INFO] [stdout]          73 │+    value
[INFO] [stdout]          74 │+    )
[INFO] [stdout]          75 │+    );
[INFO] [stdout]          76 │+}
[INFO] [stdout]          77 │+
[INFO] [stdout]          78 │+function encodeQueryValue(
[INFO] [stdout]          79 │+value : unknown
[INFO] [stdout]          80 │+) : string{
[INFO] [stdout]          81 │+    if(value===null||value===undefined){
[INFO] [stdout]          82 │+        return"";
[INFO] [stdout]          83 │+    }
[INFO] [stdout]          84 │+    if(typeof value==="string"||typeof value==="number"||typeof value==="boolean"){
[INFO] [stdout]          85 │+        return String(
[INFO] [stdout]          86 │+        value
[INFO] [stdout]          87 │+        );
[INFO] [stdout]          88 │+    }
[INFO] [stdout]          89 │+    return JSON.stringify(
[INFO] [stdout]          90 │+    value
[INFO] [stdout]          91 │+    );
[INFO] [stdout]          92 │+}
[INFO] [stdout]          93 │+
[INFO] [stdout]          94 │+async function parseXidlError(
[INFO] [stdout]          95 │+resp : Response
[INFO] [stdout]          96 │+) : Promise<
[INFO] [stdout]          97 │+XidlClientError
[INFO] [stdout]          98 │+>{
[INFO] [stdout]          99 │+    const status = resp.status;
[INFO] [stdout]         100 │+    try{
[INFO] [stdout]         101 │+        const body = await resp.json(
[INFO] [stdout]         102 │+
[INFO] [stdout]         103 │+        );
[INFO] [stdout]         104 │+        if(body&&typeof body.code==="number"&&typeof body.msg==="string"){
[INFO] [stdout]         105 │+            return new XidlClientError(
[INFO] [stdout]         106 │+            body.msg, body.code, status
[INFO] [stdout]         107 │+            );
[INFO] [stdout]         108 │+        }
[INFO] [stdout]         109 │+    }catch{
[INFO] [stdout]         110 │+        // ignored
[INFO] [stdout]         111 │+    }
[INFO] [stdout]         112 │+    return new XidlClientError(
[INFO] [stdout]         113 │+    `http error: ${status}`, status, status
[INFO] [stdout]         114 │+    );
[INFO] [stdout]         115 │+}
[INFO] [stdout]         116 │+
[INFO] [stdout]         117 │+export class HttpServiceClient{
[INFO] [stdout]         118 │+    private readonly baseUrl : string;
[INFO] [stdout]         119 │+    private readonly fetchImpl : FetchLike;
[INFO] [stdout]         120 │+    private readonly defaultHeaders : Record<
[INFO] [stdout]         121 │+    string, string
[INFO] [stdout]         122 │+    >;
[INFO] [stdout]         123 │+    constructor(
[INFO] [stdout]         124 │+    baseUrl : string, options : ClientOptions = {
[INFO] [stdout]         125 │+    }
[INFO] [stdout]         126 │+    ){
[INFO] [stdout]         127 │+        this.baseUrl = baseUrl;
[INFO] [stdout]         128 │+        this.fetchImpl = resolveFetch(
[INFO] [stdout]         129 │+        options.fetch
[INFO] [stdout]         130 │+        );
[INFO] [stdout]         131 │+        this.defaultHeaders = options.headers??{
[INFO] [stdout]         132 │+        };
[INFO] [stdout]         133 │+    }
[INFO] [stdout]         134 │+
[INFO] [stdout]         135 │+    async get_health(
[INFO] [stdout]         136 │+
[INFO] [stdout]         137 │+    ) : Promise<
[INFO] [stdout]         138 │+    types.HealthResponse
[INFO] [stdout]         139 │+    >{
[INFO] [stdout]         140 │+        let path = "/api/v1/health";
[INFO] [stdout]         141 │+        const headers = {
[INFO] [stdout]         142 │+            ...this.defaultHeaders
[INFO] [stdout]         143 │+        };
[INFO] [stdout]         144 │+        const options = {
[INFO] [stdout]         145 │+            method : "GET", headers
[INFO] [stdout]         146 │+        };
[INFO] [stdout]         147 │+        const url = joinUrl(
[INFO] [stdout]         148 │+        this.baseUrl, path
[INFO] [stdout]         149 │+        );
[INFO] [stdout]         150 │+        const resp = await this.fetchImpl(
[INFO] [stdout]         151 │+        url, options
[INFO] [stdout]         152 │+        );
[INFO] [stdout]         153 │+        if(!resp.ok){
[INFO] [stdout]         154 │+            throw await parseXidlError(
[INFO] [stdout]         155 │+            resp
[INFO] [stdout]         156 │+            );
[INFO] [stdout]         157 │+        }
[INFO] [stdout]         158 │+        const data = await resp.json(
[INFO] [stdout]         159 │+
[INFO] [stdout]         160 │+        );
[INFO] [stdout]         161 │+        return data as types.HealthResponse;
[INFO] [stdout]         162 │+    }
[INFO] [stdout]         163 │+
[INFO] [stdout]         164 │+    async get_version(
[INFO] [stdout]         165 │+
[INFO] [stdout]         166 │+    ) : Promise<
[INFO] [stdout]         167 │+    types.VersionResponse
[INFO] [stdout]         168 │+    >{
[INFO] [stdout]         169 │+        let path = "/api/v1/app/version";
[INFO] [stdout]         170 │+        const headers = {
[INFO] [stdout]         171 │+            ...this.defaultHeaders
[INFO] [stdout]         172 │+        };
[INFO] [stdout]         173 │+        const options = {
[INFO] [stdout]         174 │+            method : "GET", headers
[INFO] [stdout]         175 │+        };
[INFO] [stdout]         176 │+        const url = joinUrl(
[INFO] [stdout]         177 │+        this.baseUrl, path
[INFO] [stdout]         178 │+        );
[INFO] [stdout]         179 │+        const resp = await this.fetchImpl(
[INFO] [stdout]         180 │+        url, options
[INFO] [stdout]         181 │+        );
[INFO] [stdout]         182 │+        if(!resp.ok){
[INFO] [stdout]         183 │+            throw await parseXidlError(
[INFO] [stdout]         184 │+            resp
[INFO] [stdout]         185 │+            );
[INFO] [stdout]         186 │+        }
[INFO] [stdout]         187 │+        const data = await resp.json(
[INFO] [stdout]         188 │+
[INFO] [stdout]         189 │+        );
[INFO] [stdout]         190 │+        return data as types.VersionResponse;
[INFO] [stdout]         191 │+    }
[INFO] [stdout]         192 │+
[INFO] [stdout]         193 │+    async get_memory_info(
[INFO] [stdout]         194 │+
[INFO] [stdout]         195 │+    ) : Promise<
[INFO] [stdout]         196 │+    types.MemoryResponse
[INFO] [stdout]         197 │+    >{
[INFO] [stdout]         198 │+        let path = "/api/v1/app/memory";
[INFO] [stdout]         199 │+        const headers = {
[INFO] [stdout]         200 │+            ...this.defaultHeaders
[INFO] [stdout]         201 │+        };
[INFO] [stdout]         202 │+        const options = {
[INFO] [stdout]         203 │+            method : "GET", headers
[INFO] [stdout]         204 │+        };
[INFO] [stdout]         205 │+        const url = joinUrl(
[INFO] [stdout]         206 │+        this.baseUrl, path
[INFO] [stdout]         207 │+        );
[INFO] [stdout]         208 │+        const resp = await this.fetchImpl(
[INFO] [stdout]         209 │+        url, options
[INFO] [stdout]         210 │+        );
[INFO] [stdout]         211 │+        if(!resp.ok){
[INFO] [stdout]         212 │+            throw await parseXidlError(
[INFO] [stdout]         213 │+            resp
[INFO] [stdout]         214 │+            );
[INFO] [stdout]         215 │+        }
[INFO] [stdout]         216 │+        const data = await resp.json(
[INFO] [stdout]         217 │+
[INFO] [stdout]         218 │+        );
[INFO] [stdout]         219 │+        return data as types.MemoryResponse;
[INFO] [stdout]         220 │+    }
[INFO] [stdout]         221 │+
[INFO] [stdout]         222 │+    async restart(
[INFO] [stdout]         223 │+
[INFO] [stdout]         224 │+    ) : Promise<
[INFO] [stdout]         225 │+    void
[INFO] [stdout]         226 │+    >{
[INFO] [stdout]         227 │+        let path = "/api/v1/app/restart";
[INFO] [stdout]         228 │+        const headers = {
[INFO] [stdout]         229 │+            ...this.defaultHeaders
[INFO] [stdout]         230 │+        };
[INFO] [stdout]         231 │+        const options = {
[INFO] [stdout]         232 │+            method : "GET", headers
[INFO] [stdout]         233 │+        };
[INFO] [stdout]         234 │+        const url = joinUrl(
[INFO] [stdout]         235 │+        this.baseUrl, path
[INFO] [stdout]         236 │+        );
[INFO] [stdout]         237 │+        const resp = await this.fetchImpl(
[INFO] [stdout]         238 │+        url, options
[INFO] [stdout]         239 │+        );
[INFO] [stdout]         240 │+        if(!resp.ok){
[INFO] [stdout]         241 │+            throw await parseXidlError(
[INFO] [stdout]         242 │+            resp
[INFO] [stdout]         243 │+            );
[INFO] [stdout]         244 │+        }
[INFO] [stdout]         245 │+        return;
[INFO] [stdout]         246 │+    }
[INFO] [stdout]         247 │+
[INFO] [stdout]         248 │+    async get_state(
[INFO] [stdout]         249 │+
[INFO] [stdout]         250 │+    ) : Promise<
[INFO] [stdout]         251 │+    types.crate.api.state.StateResponse
[INFO] [stdout]         252 │+    >{
[INFO] [stdout]         253 │+        let path = "/api/v1/proxy/state";
[INFO] [stdout]         254 │+        const headers = {
[INFO] [stdout]         255 │+            ...this.defaultHeaders
[INFO] [stdout]         256 │+        };
[INFO] [stdout]         257 │+        const options = {
[INFO] [stdout]         258 │+            method : "GET", headers
[INFO] [stdout]         259 │+        };
[INFO] [stdout]         260 │+        const url = joinUrl(
[INFO] [stdout]         261 │+        this.baseUrl, path
[INFO] [stdout]         262 │+        );
[INFO] [stdout]         263 │+        const resp = await this.fetchImpl(
[INFO] [stdout]         264 │+        url, options
[INFO] [stdout]         265 │+        );
[INFO] [stdout]         266 │+        if(!resp.ok){
[INFO] [stdout]         267 │+            throw await parseXidlError(
[INFO] [stdout]         268 │+            resp
[INFO] [stdout]         269 │+            );
[INFO] [stdout]         270 │+        }
[INFO] [stdout]         271 │+        const data = await resp.json(
[INFO] [stdout]         272 │+
[INFO] [stdout]         273 │+        );
[INFO] [stdout]         274 │+        return data as types.crate.api.state.StateResponse;
[INFO] [stdout]         275 │+    }
[INFO] [stdout]         276 │+
[INFO] [stdout]         277 │+    async get_udp_stats(
[INFO] [stdout]         278 │+
[INFO] [stdout]         279 │+    ) : Promise<
[INFO] [stdout]         280 │+    types.UdpStatsResponse
[INFO] [stdout]         281 │+    >{
[INFO] [stdout]         282 │+        let path = "/api/v1/stats/udp";
[INFO] [stdout]         283 │+        const headers = {
[INFO] [stdout]         284 │+            ...this.defaultHeaders
[INFO] [stdout]         285 │+        };
[INFO] [stdout]         286 │+        const options = {
[INFO] [stdout]         287 │+            method : "GET", headers
[INFO] [stdout]         288 │+        };
[INFO] [stdout]         289 │+        const url = joinUrl(
[INFO] [stdout]         290 │+        this.baseUrl, path
[INFO] [stdout]         291 │+        );
[INFO] [stdout]         292 │+        const resp = await this.fetchImpl(
[INFO] [stdout]         293 │+        url, options
[INFO] [stdout]         294 │+        );
[INFO] [stdout]         295 │+        if(!resp.ok){
[INFO] [stdout]         296 │+            throw await parseXidlError(
[INFO] [stderr] error: test failed, to rerun pass `--lib`
[INFO] [stdout]         297 │+            resp
[INFO] [stdout]         298 │+            );
[INFO] [stdout]         299 │+        }
[INFO] [stdout]         300 │+        const data = await resp.json(
[INFO] [stdout]         301 │+
[INFO] [stdout]         302 │+        );
[INFO] [stdout]         303 │+        return data as types.UdpStatsResponse;
[INFO] [stdout]         304 │+    }
[INFO] [stdout]         305 │+
[INFO] [stdout]         306 │+    async create_simple(
[INFO] [stdout]         307 │+    local_addr : string, remote_port : number
[INFO] [stdout]         308 │+    ) : Promise<
[INFO] [stdout]         309 │+    types.CreateSimpleResponse
[INFO] [stdout]         310 │+    >{
[INFO] [stdout]         311 │+        const parsed = zodSchemas.HttpServiceCreateSimpleRequestSchema.parse(
[INFO] [stdout]         312 │+        {
[INFO] [stdout]         313 │+            "local_addr" : local_addr, "remote_port" : remote_port
[INFO] [stdout]         314 │+        }
[INFO] [stdout]         315 │+        );
[INFO] [stdout]         316 │+        let path = "/api/v1/simple";
[INFO] [stdout]         317 │+        const body = {
[INFO] [stdout]         318 │+            "local_addr" : parsed["local_addr"], "remote_port" : parsed["remote_port"],
[INFO] [stdout]         319 │+        };
[INFO] [stdout]         320 │+        const headers = {
[INFO] [stdout]         321 │+            ...this.defaultHeaders, "Content-Type" : "application/json"
[INFO] [stdout]         322 │+        };
[INFO] [stdout]         323 │+        const options = {
[INFO] [stdout]         324 │+            method : "POST", headers, body : JSON.stringify(
[INFO] [stdout]         325 │+            body
[INFO] [stdout]         326 │+            )
[INFO] [stdout]         327 │+        };
[INFO] [stdout]         328 │+        const url = joinUrl(
[INFO] [stdout]         329 │+        this.baseUrl, path
[INFO] [stdout]         330 │+        );
[INFO] [stdout]         331 │+        const resp = await this.fetchImpl(
[INFO] [stdout]         332 │+        url, options
[INFO] [stdout]         333 │+        );
[INFO] [stdout]         334 │+        if(!resp.ok){
[INFO] [stdout]         335 │+            throw await parseXidlError(
[INFO] [stdout]         336 │+            resp
[INFO] [stdout]         337 │+            );
[INFO] [stdout]         338 │+        }
[INFO] [stdout]         339 │+        const data = await resp.json(
[INFO] [stdout]         340 │+
[INFO] [stdout]         341 │+        );
[INFO] [stdout]         342 │+        return data as types.CreateSimpleResponse;
[INFO] [stdout]         343 │+    }
[INFO] [stdout]         344 │+
[INFO] [stdout]         345 │+    async stop_simple(
[INFO] [stdout]         346 │+    id : number
[INFO] [stdout]         347 │+    ) : Promise<
[INFO] [stdout]         348 │+    void
[INFO] [stdout]         349 │+    >{
[INFO] [stdout]         350 │+        const parsed = zodSchemas.HttpServiceStopSimpleRequestSchema.parse(
[INFO] [stdout]         351 │+        {
[INFO] [stdout]         352 │+            "id" : id
[INFO] [stdout]         353 │+        }
[INFO] [stdout]         354 │+        );
[INFO] [stdout]         355 │+        let path = "/api/v1/simple/{id}";
[INFO] [stdout]         356 │+        path = path.replace(
[INFO] [stdout]         357 │+        "{"+"id"+"}", encodePathSegment(
[INFO] [stdout]         358 │+        parsed["id"]
[INFO] [stdout]         359 │+        )
[INFO] [stdout]         360 │+        );
[INFO] [stdout]         361 │+        const headers = {
[INFO] [stdout]         362 │+            ...this.defaultHeaders
[INFO] [stdout]         363 │+        };
[INFO] [stdout]         364 │+        const options = {
[INFO] [stdout]         365 │+            method : "DELETE", headers
[INFO] [stdout]         366 │+        };
[INFO] [stdout]         367 │+        const url = joinUrl(
[INFO] [stdout]         368 │+        this.baseUrl, path
[INFO] [stdout]         369 │+        );
[INFO] [stdout]         370 │+        const resp = await this.fetchImpl(
[INFO] [stdout]         371 │+        url, options
[INFO] [stdout]         372 │+        );
[INFO] [stdout]         373 │+        if(!resp.ok){
[INFO] [stdout]         374 │+            throw await parseXidlError(
[INFO] [stdout]         375 │+            resp
[INFO] [stdout]         376 │+            );
[INFO] [stdout]         377 │+        }
[INFO] [stdout]         378 │+        return;
[INFO] [stdout]         379 │+    }
[INFO] [stdout]         380 │+}
[INFO] [stdout]         381 │+===============
[INFO] [stdout]         382 │+ipc.d.ts
[INFO] [stdout]         383 │+===============
[INFO] [stdout]         384 │+
[INFO] [stdout]         385 │+    // Generated by xidlc. DO NOT EDIT.
[INFO] [stdout]         386 │+export interface HealthResponse{
[INFO] [stdout]         387 │+    healthy : boolean;
[INFO] [stdout]         388 │+    rtt_ms : number;
[INFO] [stdout]         389 │+    message : string;
[INFO] [stdout]         390 │+}
[INFO] [stdout]         391 │+
[INFO] [stdout]         392 │+export interface VersionResponse{
[INFO] [stdout]         393 │+    short : string;
[INFO] [stdout]         394 │+    long : string;
[INFO] [stdout]         395 │+}
[INFO] [stdout]         396 │+
[INFO] [stdout]         397 │+export interface MemoryResponse{
[INFO] [stdout]         398 │+    allocated : number;
[INFO] [stdout]         399 │+    active : number;
[INFO] [stdout]         400 │+}
[INFO] [stdout]         401 │+
[INFO] [stdout]         402 │+export interface UdpStatsResponse{
[INFO] [stdout]         403 │+    tx : number;
[INFO] [stdout]         404 │+    rx : number;
[INFO] [stdout]         405 │+}
[INFO] [stdout]         406 │+
[INFO] [stdout]         407 │+export interface CreateTcpReverseRequest{
[INFO] [stdout]         408 │+    local_addr : string;
[INFO] [stdout]         409 │+    remote_port : number;
[INFO] [stdout]         410 │+}
[INFO] [stdout]         411 │+
[INFO] [stdout]         412 │+export interface CreateSimpleResponse{
[INFO] [stdout]         413 │+    id : number;
[INFO] [stdout]         414 │+}
[INFO] [stdout]         415 │+===============
[INFO] [stdout]         416 │+ipc.iface.d.ts
[INFO] [stdout]         417 │+===============
[INFO] [stdout]         418 │+
[INFO] [stdout]         419 │+    // Generated by xidlc. DO NOT EDIT.
[INFO] [stdout]         420 │+export interface HttpServiceCreateSimpleRequest{
[INFO] [stdout]         421 │+    local_addr : string;
[INFO] [stdout]         422 │+    remote_port : number;
[INFO] [stdout]         423 │+}
[INFO] [stdout]         424 │+
[INFO] [stdout]         425 │+export interface HttpServiceStopSimpleRequest{
[INFO] [stdout]         426 │+    id : number;
[INFO] [stdout]         427 │+}
[INFO] [stdout]         428 │+===============
[INFO] [stdout]         429 │+ipc.iface.zod.ts
[INFO] [stdout]         430 │+===============
[INFO] [stdout]         431 │+
[INFO] [stdout]         432 │+    // Generated by xidlc. DO NOT EDIT.
[INFO] [stdout]         433 │+import{z}from"zod";
[INFO] [stdout]         434 │+export const HttpServiceCreateSimpleRequestSchema = z.object(
[INFO] [stdout]         435 │+{
[INFO] [stdout]         436 │+    local_addr : z.string(
[INFO] [stdout]         437 │+
[INFO] [stdout]         438 │+    ), remote_port : z.number(
[INFO] [stdout]         439 │+
[INFO] [stdout]         440 │+    ).int(
[INFO] [stdout]         441 │+
[INFO] [stdout]         442 │+    ).nonnegative(
[INFO] [stdout]         443 │+
[INFO] [stdout]         444 │+    ),
[INFO] [stdout]         445 │+}
[INFO] [stdout]         446 │+);
[INFO] [stdout]         447 │+export type HttpServiceCreateSimpleRequest = z.infer<
[INFO] [stdout]         448 │+typeof HttpServiceCreateSimpleRequestSchema
[INFO] [stdout]         449 │+>;
[INFO] [stdout]         450 │+export const HttpServiceStopSimpleRequestSchema = z.object(
[INFO] [stdout]         451 │+{
[INFO] [stdout]         452 │+    id : z.number(
[INFO] [stdout]         453 │+
[INFO] [stdout]         454 │+    ).int(
[INFO] [stdout]         455 │+
[INFO] [stdout]         456 │+    ).nonnegative(
[INFO] [stdout]         457 │+
[INFO] [stdout]         458 │+    ),
[INFO] [stdout]         459 │+}
[INFO] [stdout]         460 │+);
[INFO] [stdout]         461 │+export type HttpServiceStopSimpleRequest = z.infer<
[INFO] [stdout]         462 │+typeof HttpServiceStopSimpleRequestSchema
[INFO] [stdout]         463 │+>;
[INFO] [stdout]         464 │+===============
[INFO] [stdout]         465 │+ipc.rs
[INFO] [stdout]         466 │+===============
[INFO] [stdout]         467 │+#[async_trait::async_trait]
[INFO] [stdout]         468 │+pub trait HttpService{
[INFO] [stdout]         469 │+    async fn get_health(
[INFO] [stdout]         470 │+    &self,
[INFO] [stdout]         471 │+    req:xidl_rust_axum::Request<()>
[INFO] [stdout]         472 │+    )->Result<HealthResponse,xidl_rust_axum::Error>;
[INFO] [stdout]         473 │+    async fn get_version(
[INFO] [stdout]         474 │+    &self,
[INFO] [stdout]         475 │+    req:xidl_rust_axum::Request<()>
[INFO] [stdout]         476 │+    )->Result<VersionResponse,xidl_rust_axum::Error>;
[INFO] [stdout]         477 │+    async fn get_memory_info(
[INFO] [stdout]         478 │+    &self,
[INFO] [stdout]         479 │+    req:xidl_rust_axum::Request<()>
[INFO] [stdout]         480 │+    )->Result<MemoryResponse,xidl_rust_axum::Error>;
[INFO] [stdout]         481 │+    async fn restart(
[INFO] [stdout]         482 │+    &self,
[INFO] [stdout]         483 │+    req:xidl_rust_axum::Request<()>
[INFO] [stdout]         484 │+    )->Result<(),xidl_rust_axum::Error>;
[INFO] [stdout]         485 │+    async fn get_state(
[INFO] [stdout]         486 │+    &self,
[INFO] [stdout]         487 │+    req:xidl_rust_axum::Request<()>
[INFO] [stdout]         488 │+    )->Result<crate::api::state::StateResponse,xidl_rust_axum::Error>;
[INFO] [stdout]         489 │+    async fn get_udp_stats(
[INFO] [stdout]         490 │+    &self,
[INFO] [stdout]         491 │+    req:xidl_rust_axum::Request<()>
[INFO] [stdout]         492 │+    )->Result<UdpStatsResponse,xidl_rust_axum::Error>;
[INFO] [stdout]         493 │+    async fn create_simple(
[INFO] [stdout]         494 │+    &self,
[INFO] [stdout]         495 │+    req:xidl_rust_axum::Request<HttpServiceCreateSimpleRequest>
[INFO] [stdout]         496 │+    )->Result<CreateSimpleResponse,xidl_rust_axum::Error>;
[INFO] [stdout]         497 │+    async fn stop_simple(
[INFO] [stdout]         498 │+    &self,
[INFO] [stdout]         499 │+    req:xidl_rust_axum::Request<HttpServiceStopSimpleRequest>
[INFO] [stdout]         500 │+    )->Result<(),xidl_rust_axum::Error>;
[INFO] [stdout]         501 │+}
[INFO] [stdout]         502 │+
[INFO] [stdout]         503 │+#[derive(::serde::Serialize,::serde::Deserialize)]
[INFO] [stdout]         504 │+struct HttpServiceCreateSimpleBody{
[INFO] [stdout]         505 │+    local_addr:String,
[INFO] [stdout]         506 │+    remote_port:u16,
[INFO] [stdout]         507 │+}
[INFO] [stdout]         508 │+
[INFO] [stdout]         509 │+#[derive(::serde::Serialize,::serde::Deserialize)]
[INFO] [stdout]         510 │+pub struct HttpServiceCreateSimpleRequest{
[INFO] [stdout]         511 │+    pub local_addr:String,
[INFO] [stdout]         512 │+    pub remote_port:u16,
[INFO] [stdout]         513 │+}
[INFO] [stdout]         514 │+
[INFO] [stdout]         515 │+#[derive(::serde::Serialize,::serde::Deserialize)]
[INFO] [stdout]         516 │+struct HttpServiceStopSimplePath{
[INFO] [stdout]         517 │+    id:u32,
[INFO] [stdout]         518 │+}
[INFO] [stdout]         519 │+
[INFO] [stdout]         520 │+#[derive(::serde::Serialize,::serde::Deserialize)]
[INFO] [stdout]         521 │+pub struct HttpServiceStopSimpleRequest{
[INFO] [stdout]         522 │+    pub id:u32,
[INFO] [stdout]         523 │+}
[INFO] [stdout]         524 │+
[INFO] [stdout]         525 │+pub struct HttpServiceServer<T>{
[INFO] [stdout]         526 │+    inner: ::std::sync::Arc<T>,
[INFO] [stdout]         527 │+}
[INFO] [stdout]         528 │+
[INFO] [stdout]         529 │+impl<T>HttpServiceServer<T>
[INFO] [stdout]         530 │+where
[INFO] [stdout]         531 │+T:HttpService+Send+Sync+'static,
[INFO] [stdout]         532 │+{
[INFO] [stdout]         533 │+    pub fn new(inner:T)->Self{
[INFO] [stdout]         534 │+        Self{
[INFO] [stdout]         535 │+            inner: ::std::sync::Arc::new(inner),
[INFO] [stdout]         536 │+        }
[INFO] [stdout]         537 │+    }
[INFO] [stdout]         538 │+
[INFO] [stdout]         539 │+    pub fn from_arc(inner: ::std::sync::Arc<T>)->Self{
[INFO] [stdout]         540 │+        Self{
[INFO] [stdout]         541 │+            inner}
[INFO] [stdout]         542 │+    }
[INFO] [stdout]         543 │+
[INFO] [stdout]         544 │+    pub fn router(self)->xidl_rust_axum::axum::Router{
[INFO] [stdout]         545 │+        let svc = self.inner;
[INFO] [stdout]         546 │+        xidl_rust_axum::axum::Router::new()
[INFO] [stdout]         547 │+
[INFO] [stdout]         548 │+        .route("/api/v1/health",xidl_rust_axum::axum::routing::get(Self::get_health))
[INFO] [stdout]         549 │+
[INFO] [stdout]         550 │+        .route("/api/v1/app/version",xidl_rust_axum::axum::routing::get(Self::get_version))
[INFO] [stdout]         551 │+
[INFO] [stdout]         552 │+        .route("/api/v1/app/memory",xidl_rust_axum::axum::routing::get(Self::get_memory_info))
[INFO] [stdout]         553 │+
[INFO] [stdout]         554 │+        .route("/api/v1/app/restart",xidl_rust_axum::axum::routing::get(Self::restart))
[INFO] [stdout]         555 │+
[INFO] [stdout]         556 │+        .route("/api/v1/proxy/state",xidl_rust_axum::axum::routing::get(Self::get_state))
[INFO] [stdout]         557 │+
[INFO] [stdout]         558 │+        .route("/api/v1/stats/udp",xidl_rust_axum::axum::routing::get(Self::get_udp_stats))
[INFO] [stdout]         559 │+
[INFO] [stdout]         560 │+        .route("/api/v1/simple",xidl_rust_axum::axum::routing::post(Self::create_simple))
[INFO] [stdout]         561 │+
[INFO] [stdout]         562 │+        .route("/api/v1/simple/{id}",xidl_rust_axum::axum::routing::delete(Self::stop_simple))
[INFO] [stdout]         563 │+
[INFO] [stdout]         564 │+        .with_state(svc)
[INFO] [stdout]         565 │+    }
[INFO] [stdout]         566 │+
[INFO] [stdout]         567 │+    async fn get_health(
[INFO] [stdout]         568 │+    ::xidl_rust_axum::axum::extract::State(svc): ::xidl_rust_axum::axum::extract::State<::std::sync::Arc<T>>,
[INFO] [stdout]         569 │+    headers: ::xidl_rust_axum::axum::http::HeaderMap
[INFO] [stdout]         570 │+    )->::xidl_rust_axum::Result<xidl_rust_axum::axum::Json<HealthResponse>>{
[INFO] [stdout]         571 │+        let data = ();
[INFO] [stdout]         572 │+        let req = ::xidl_rust_axum::Request::new(headers,data);
[INFO] [stdout]         573 │+        Ok(xidl_rust_axum::axum::Json(svc.get_health(req).await?))
[INFO] [stdout]         574 │+    }
[INFO] [stdout]         575 │+
[INFO] [stdout]         576 │+    async fn get_version(
[INFO] [stdout]         577 │+    ::xidl_rust_axum::axum::extract::State(svc): ::xidl_rust_axum::axum::extract::State<::std::sync::Arc<T>>,
[INFO] [stdout]         578 │+    headers: ::xidl_rust_axum::axum::http::HeaderMap
[INFO] [stdout]         579 │+    )->::xidl_rust_axum::Result<xidl_rust_axum::axum::Json<VersionResponse>>{
[INFO] [stdout]         580 │+        let data = ();
[INFO] [stdout]         581 │+        let req = ::xidl_rust_axum::Request::new(headers,data);
[INFO] [stdout]         582 │+        Ok(xidl_rust_axum::axum::Json(svc.get_version(req).await?))
[INFO] [stdout]         583 │+    }
[INFO] [stdout]         584 │+
[INFO] [stdout]         585 │+    async fn get_memory_info(
[INFO] [stdout]         586 │+    ::xidl_rust_axum::axum::extract::State(svc): ::xidl_rust_axum::axum::extract::State<::std::sync::Arc<T>>,
[INFO] [stdout]         587 │+    headers: ::xidl_rust_axum::axum::http::HeaderMap
[INFO] [stdout]         588 │+    )->::xidl_rust_axum::Result<xidl_rust_axum::axum::Json<MemoryResponse>>{
[INFO] [stdout]         589 │+        let data = ();
[INFO] [stdout]         590 │+        let req = ::xidl_rust_axum::Request::new(headers,data);
[INFO] [stdout]         591 │+        Ok(xidl_rust_axum::axum::Json(svc.get_memory_info(req).await?))
[INFO] [stdout]         592 │+    }
[INFO] [stdout]         593 │+
[INFO] [stdout]         594 │+    async fn restart(
[INFO] [stdout]         595 │+    ::xidl_rust_axum::axum::extract::State(svc): ::xidl_rust_axum::axum::extract::State<::std::sync::Arc<T>>,
[INFO] [stdout]         596 │+    headers: ::xidl_rust_axum::axum::http::HeaderMap
[INFO] [stdout]         597 │+    )->::xidl_rust_axum::Result<xidl_rust_axum::axum::Json<()>>{
[INFO] [stdout]         598 │+        let data = ();
[INFO] [stdout]         599 │+        let req = ::xidl_rust_axum::Request::new(headers,data);
[INFO] [stdout]         600 │+        Ok(xidl_rust_axum::axum::Json(svc.restart(req).await?))
[INFO] [stdout]         601 │+    }
[INFO] [stdout]         602 │+
[INFO] [stdout]         603 │+    async fn get_state(
[INFO] [stdout]         604 │+    ::xidl_rust_axum::axum::extract::State(svc): ::xidl_rust_axum::axum::extract::State<::std::sync::Arc<T>>,
[INFO] [stdout]         605 │+    headers: ::xidl_rust_axum::axum::http::HeaderMap
[INFO] [stdout]         606 │+    )->::xidl_rust_axum::Result<xidl_rust_axum::axum::Json<crate::api::state::StateResponse>>{
[INFO] [stdout]         607 │+        let data = ();
[INFO] [stdout]         608 │+        let req = ::xidl_rust_axum::Request::new(headers,data);
[INFO] [stdout]         609 │+        Ok(xidl_rust_axum::axum::Json(svc.get_state(req).await?))
[INFO] [stdout]         610 │+    }
[INFO] [stdout]         611 │+
[INFO] [stdout]         612 │+    async fn get_udp_stats(
[INFO] [stdout]         613 │+    ::xidl_rust_axum::axum::extract::State(svc): ::xidl_rust_axum::axum::extract::State<::std::sync::Arc<T>>,
[INFO] [stdout]         614 │+    headers: ::xidl_rust_axum::axum::http::HeaderMap
[INFO] [stdout]         615 │+    )->::xidl_rust_axum::Result<xidl_rust_axum::axum::Json<UdpStatsResponse>>{
[INFO] [stdout]         616 │+        let data = ();
[INFO] [stdout]         617 │+        let req = ::xidl_rust_axum::Request::new(headers,data);
[INFO] [stdout]         618 │+        Ok(xidl_rust_axum::axum::Json(svc.get_udp_stats(req).await?))
[INFO] [stdout]         619 │+    }
[INFO] [stdout]         620 │+
[INFO] [stdout]         621 │+    async fn create_simple(
[INFO] [stdout]         622 │+    ::xidl_rust_axum::axum::extract::State(svc): ::xidl_rust_axum::axum::extract::State<::std::sync::Arc<T>>,
[INFO] [stdout]         623 │+    headers: ::xidl_rust_axum::axum::http::HeaderMap,
[INFO] [stdout]         624 │+    xidl_rust_axum::axum::Json(body):xidl_rust_axum::axum::Json<HttpServiceCreateSimpleBody>
[INFO] [stdout]         625 │+    )->::xidl_rust_axum::Result<xidl_rust_axum::axum::Json<CreateSimpleResponse>>{
[INFO] [stdout]         626 │+        let HttpServiceCreateSimpleBody{
[INFO] [stdout]         627 │+
[INFO] [stdout]         628 │+        local_addr,
[INFO] [stdout]         629 │+
[INFO] [stdout]         630 │+        remote_port,
[INFO] [stdout]         631 │+
[INFO] [stdout]         632 │+        } = body;
[INFO] [stdout]         633 │+        let data = HttpServiceCreateSimpleRequest{
[INFO] [stdout]         634 │+            local_addr,
[INFO] [stdout]         635 │+            remote_port,
[INFO] [stdout]         636 │+        };
[INFO] [stdout]         637 │+        let req = ::xidl_rust_axum::Request::new(headers,data);
[INFO] [stdout]         638 │+        Ok(xidl_rust_axum::axum::Json(svc.create_simple(req).await?))
[INFO] [stdout]         639 │+    }
[INFO] [stdout]         640 │+
[INFO] [stdout]         641 │+    async fn stop_simple(
[INFO] [stdout]         642 │+    ::xidl_rust_axum::axum::extract::State(svc): ::xidl_rust_axum::axum::extract::State<::std::sync::Arc<T>>,
[INFO] [stdout]         643 │+    headers: ::xidl_rust_axum::axum::http::HeaderMap,
[INFO] [stdout]         644 │+    ::xidl_rust_axum::axum::extract::Path(path): ::xidl_rust_axum::axum::extract::Path<HttpServiceStopSimplePath>
[INFO] [stdout]         645 │+    )->::xidl_rust_axum::Result<xidl_rust_axum::axum::Json<()>>{
[INFO] [stdout]         646 │+        let HttpServiceStopSimplePath{
[INFO] [stdout]         647 │+
[INFO] [stdout]         648 │+        id,
[INFO] [stdout]         649 │+
[INFO] [stdout]         650 │+        } = path;
[INFO] [stdout]         651 │+        let data = HttpServiceStopSimpleRequest{
[INFO] [stdout]         652 │+            id,
[INFO] [stdout]         653 │+        };
[INFO] [stdout]         654 │+        let req = ::xidl_rust_axum::Request::new(headers,data);
[INFO] [stdout]         655 │+        Ok(xidl_rust_axum::axum::Json(svc.stop_simple(req).await?))
[INFO] [stdout]         656 │+    }
[INFO] [stdout]         657 │+}
[INFO] [stdout]         658 │+
[INFO] [stdout]         659 │+impl<T>xidl_rust_axum::Service for HttpServiceServer<T>
[INFO] [stdout]         660 │+where
[INFO] [stdout]         661 │+T:HttpService+Send+Sync+'static,
[INFO] [stdout]         662 │+{
[INFO] [stdout]         663 │+    fn into_router(self)->xidl_rust_axum::axum::Router{
[INFO] [stdout]         664 │+        self.router()
[INFO] [stdout]         665 │+    }
[INFO] [stdout]         666 │+}
[INFO] [stdout]         667 │+
[INFO] [stdout]         668 │+pub struct HttpServiceClient{
[INFO] [stdout]         669 │+    client:xidl_rust_axum::Client,
[INFO] [stdout]         670 │+}
[INFO] [stdout]         671 │+
[INFO] [stdout]         672 │+impl HttpServiceClient{
[INFO] [stdout]         673 │+    pub fn new(base_url:impl Into<String>)->Self{
[INFO] [stdout]         674 │+        Self{
[INFO] [stdout]         675 │+            client:xidl_rust_axum::Client::new(base_url),
[INFO] [stdout]         676 │+        }
[INFO] [stdout]         677 │+    }
[INFO] [stdout]         678 │+}
[INFO] [stdout]         679 │+
[INFO] [stdout]         680 │+impl HttpServiceClient{
[INFO] [stdout]         681 │+    pub async fn get_health(&self)->Result<HealthResponse,xidl_rust_axum::Error>{
[INFO] [stdout]         682 │+        let path = "/api/v1/health".to_string();
[INFO] [stdout]         683 │+        let url = self.client.url(&path);
[INFO] [stdout]         684 │+        let req = self
[INFO] [stdout]         685 │+        .client
[INFO] [stdout]         686 │+        .http()
[INFO] [stdout]         687 │+        .request(xidl_rust_axum::reqwest::Method::GET,url);
[INFO] [stdout]         688 │+        let resp = req
[INFO] [stdout]         689 │+        .send()
[INFO] [stdout]         690 │+        .await
[INFO] [stdout]         691 │+        .map_err(|err|xidl_rust_axum::Error::new(500,err.to_string()))?;
[INFO] [stdout]         692 │+        if resp.status().is_success(){
[INFO] [stdout]         693 │+            resp.json::<HealthResponse>()
[INFO] [stdout]         694 │+            .await
[INFO] [stdout]         695 │+            .map_err(|err|xidl_rust_axum::Error::new(500,err.to_string()))
[INFO] [stdout]         696 │+        }else{
[INFO] [stdout]         697 │+            let status = resp.status();
[INFO] [stdout]         698 │+            let body = resp.json::<xidl_rust_axum::ErrorBody>().await.ok();
[INFO] [stdout]         699 │+            let err = match body{
[INFO] [stdout]         700 │+                Some(body) => xidl_rust_axum::Error::new(body.code,body.msg),
[INFO] [stdout]         701 │+                None => xidl_rust_axum::Error::new(500,format!("http error: {}",status.as_u16())),
[INFO] [stdout]         702 │+
[INFO] [stdout]         703 │+            };
[INFO] [stdout]         704 │+            Err(err)
[INFO] [stdout]         705 │+        }
[INFO] [stdout]         706 │+    }
[INFO] [stdout]         707 │+
[INFO] [stdout]         708 │+    pub async fn get_version(&self)->Result<VersionResponse,xidl_rust_axum::Error>{
[INFO] [stdout]         709 │+        let path = "/api/v1/app/version".to_string();
[INFO] [stdout]         710 │+        let url = self.client.url(&path);
[INFO] [stdout]         711 │+        let req = self
[INFO] [stdout]         712 │+        .client
[INFO] [stdout]         713 │+        .http()
[INFO] [stdout]         714 │+        .request(xidl_rust_axum::reqwest::Method::GET,url);
[INFO] [stdout]         715 │+        let resp = req
[INFO] [stdout]         716 │+        .send()
[INFO] [stdout]         717 │+        .await
[INFO] [stdout]         718 │+        .map_err(|err|xidl_rust_axum::Error::new(500,err.to_string()))?;
[INFO] [stdout]         719 │+        if resp.status().is_success(){
[INFO] [stdout]         720 │+            resp.json::<VersionResponse>()
[INFO] [stdout]         721 │+            .await
[INFO] [stdout]         722 │+            .map_err(|err|xidl_rust_axum::Error::new(500,err.to_string()))
[INFO] [stdout]         723 │+        }else{
[INFO] [stdout]         724 │+            let status = resp.status();
[INFO] [stdout]         725 │+            let body = resp.json::<xidl_rust_axum::ErrorBody>().await.ok();
[INFO] [stdout]         726 │+            let err = match body{
[INFO] [stdout]         727 │+                Some(body) => xidl_rust_axum::Error::new(body.code,body.msg),
[INFO] [stdout]         728 │+                None => xidl_rust_axum::Error::new(500,format!("http error: {}",status.as_u16())),
[INFO] [stdout]         729 │+
[INFO] [stdout]         730 │+            };
[INFO] [stdout]         731 │+            Err(err)
[INFO] [stdout]         732 │+        }
[INFO] [stdout]         733 │+    }
[INFO] [stdout]         734 │+
[INFO] [stdout]         735 │+    pub async fn get_memory_info(&self)->Result<MemoryResponse,xidl_rust_axum::Error>{
[INFO] [stdout]         736 │+        let path = "/api/v1/app/memory".to_string();
[INFO] [stdout]         737 │+        let url = self.client.url(&path);
[INFO] [stdout]         738 │+        let req = self
[INFO] [stdout]         739 │+        .client
[INFO] [stdout]         740 │+        .http()
[INFO] [stdout]         741 │+        .request(xidl_rust_axum::reqwest::Method::GET,url);
[INFO] [stdout]         742 │+        let resp = req
[INFO] [stdout]         743 │+        .send()
[INFO] [stdout]         744 │+        .await
[INFO] [stdout]         745 │+        .map_err(|err|xidl_rust_axum::Error::new(500,err.to_string()))?;
[INFO] [stdout]         746 │+        if resp.status().is_success(){
[INFO] [stdout]         747 │+            resp.json::<MemoryResponse>()
[INFO] [stdout]         748 │+            .await
[INFO] [stdout]         749 │+            .map_err(|err|xidl_rust_axum::Error::new(500,err.to_string()))
[INFO] [stdout]         750 │+        }else{
[INFO] [stdout]         751 │+            let status = resp.status();
[INFO] [stdout]         752 │+            let body = resp.json::<xidl_rust_axum::ErrorBody>().await.ok();
[INFO] [stdout]         753 │+            let err = match body{
[INFO] [stdout]         754 │+                Some(body) => xidl_rust_axum::Error::new(body.code,body.msg),
[INFO] [stdout]         755 │+                None => xidl_rust_axum::Error::new(500,format!("http error: {}",status.as_u16())),
[INFO] [stdout]         756 │+
[INFO] [stdout]         757 │+            };
[INFO] [stdout]         758 │+            Err(err)
[INFO] [stdout]         759 │+        }
[INFO] [stdout]         760 │+    }
[INFO] [stdout]         761 │+
[INFO] [stdout]         762 │+    pub async fn restart(&self)->Result<(),xidl_rust_axum::Error>{
[INFO] [stdout]         763 │+        let path = "/api/v1/app/restart".to_string();
[INFO] [stdout]         764 │+        let url = self.client.url(&path);
[INFO] [stdout]         765 │+        let req = self
[INFO] [stdout]         766 │+        .client
[INFO] [stdout]         767 │+        .http()
[INFO] [stdout]         768 │+        .request(xidl_rust_axum::reqwest::Method::GET,url);
[INFO] [stdout]         769 │+        let resp = req
[INFO] [stdout]         770 │+        .send()
[INFO] [stdout]         771 │+        .await
[INFO] [stdout]         772 │+        .map_err(|err|xidl_rust_axum::Error::new(500,err.to_string()))?;
[INFO] [stdout]         773 │+        if resp.status().is_success(){
[INFO] [stdout]         774 │+            resp.json::<()>()
[INFO] [stdout]         775 │+            .await
[INFO] [stdout]         776 │+            .map_err(|err|xidl_rust_axum::Error::new(500,err.to_string()))
[INFO] [stdout]         777 │+        }else{
[INFO] [stdout]         778 │+            let status = resp.status();
[INFO] [stdout]         779 │+            let body = resp.json::<xidl_rust_axum::ErrorBody>().await.ok();
[INFO] [stdout]         780 │+            let err = match body{
[INFO] [stdout]         781 │+                Some(body) => xidl_rust_axum::Error::new(body.code,body.msg),
[INFO] [stdout]         782 │+                None => xidl_rust_axum::Error::new(500,format!("http error: {}",status.as_u16())),
[INFO] [stdout]         783 │+
[INFO] [stdout]         784 │+            };
[INFO] [stdout]         785 │+            Err(err)
[INFO] [stdout]         786 │+        }
[INFO] [stdout]         787 │+    }
[INFO] [stdout]         788 │+
[INFO] [stdout]         789 │+    pub async fn get_state(&self)->Result<crate::api::state::StateResponse,xidl_rust_axum::Error>{
[INFO] [stdout]         790 │+        let path = "/api/v1/proxy/state".to_string();
[INFO] [stdout]         791 │+        let url = self.client.url(&path);
[INFO] [stdout]         792 │+        let req = self
[INFO] [stdout]         793 │+        .client
[INFO] [stdout]         794 │+        .http()
[INFO] [stdout]         795 │+        .request(xidl_rust_axum::reqwest::Method::GET,url);
[INFO] [stdout]         796 │+        let resp = req
[INFO] [stdout]         797 │+        .send()
[INFO] [stdout]         798 │+        .await
[INFO] [stdout]         799 │+        .map_err(|err|xidl_rust_axum::Error::new(500,err.to_string()))?;
[INFO] [stdout]         800 │+        if resp.status().is_success(){
[INFO] [stdout]         801 │+            resp.json::<crate::api::state::StateResponse>()
[INFO] [stdout]         802 │+            .await
[INFO] [stdout]         803 │+            .map_err(|err|xidl_rust_axum::Error::new(500,err.to_string()))
[INFO] [stdout]         804 │+        }else{
[INFO] [stdout]         805 │+            let status = resp.status();
[INFO] [stdout]         806 │+            let body = resp.json::<xidl_rust_axum::ErrorBody>().await.ok();
[INFO] [stdout]         807 │+            let err = match body{
[INFO] [stdout]         808 │+                Some(body) => xidl_rust_axum::Error::new(body.code,body.msg),
[INFO] [stdout]         809 │+                None => xidl_rust_axum::Error::new(500,format!("http error: {}",status.as_u16())),
[INFO] [stdout]         810 │+
[INFO] [stdout]         811 │+            };
[INFO] [stdout]         812 │+            Err(err)
[INFO] [stdout]         813 │+        }
[INFO] [stdout]         814 │+    }
[INFO] [stdout]         815 │+
[INFO] [stdout]         816 │+    pub async fn get_udp_stats(&self)->Result<UdpStatsResponse,xidl_rust_axum::Error>{
[INFO] [stdout]         817 │+        let path = "/api/v1/stats/udp".to_string();
[INFO] [stdout]         818 │+        let url = self.client.url(&path);
[INFO] [stdout]         819 │+        let req = self
[INFO] [stdout]         820 │+        .client
[INFO] [stdout]         821 │+        .http()
[INFO] [stdout]         822 │+        .request(xidl_rust_axum::reqwest::Method::GET,url);
[INFO] [stdout]         823 │+        let resp = req
[INFO] [stdout]         824 │+        .send()
[INFO] [stdout]         825 │+        .await
[INFO] [stdout]         826 │+        .map_err(|err|xidl_rust_axum::Error::new(500,err.to_string()))?;
[INFO] [stdout]         827 │+        if resp.status().is_success(){
[INFO] [stdout]         828 │+            resp.json::<UdpStatsResponse>()
[INFO] [stdout]         829 │+            .await
[INFO] [stdout]         830 │+            .map_err(|err|xidl_rust_axum::Error::new(500,err.to_string()))
[INFO] [stdout]         831 │+        }else{
[INFO] [stdout]         832 │+            let status = resp.status();
[INFO] [stdout]         833 │+            let body = resp.json::<xidl_rust_axum::ErrorBody>().await.ok();
[INFO] [stdout]         834 │+            let err = match body{
[INFO] [stdout]         835 │+                Some(body) => xidl_rust_axum::Error::new(body.code,body.msg),
[INFO] [stdout]         836 │+                None => xidl_rust_axum::Error::new(500,format!("http error: {}",status.as_u16())),
[INFO] [stdout]         837 │+
[INFO] [stdout]         838 │+            };
[INFO] [stdout]         839 │+            Err(err)
[INFO] [stdout]         840 │+        }
[INFO] [stdout]         841 │+    }
[INFO] [stdout]         842 │+
[INFO] [stdout]         843 │+    pub async fn create_simple(&self,local_addr:String,remote_port:u16)->Result<CreateSimpleResponse,xidl_rust_axum::Error>{
[INFO] [stdout]         844 │+        let path = "/api/v1/simple".to_string();
[INFO] [stdout]         845 │+        let url = self.client.url(&path);
[INFO] [stdout]         846 │+        let req = self
[INFO] [stdout]         847 │+        .client
[INFO] [stdout]         848 │+        .http()
[INFO] [stdout]         849 │+        .request(xidl_rust_axum::reqwest::Method::POST,url);
[INFO] [stdout]         850 │+        let body = HttpServiceCreateSimpleBody{
[INFO] [stdout]         851 │+            local_addr,
[INFO] [stdout]         852 │+            remote_port,
[INFO] [stdout]         853 │+        };
[INFO] [stdout]         854 │+        let req = req.json(&body);
[INFO] [stdout]         855 │+        let resp = req
[INFO] [stdout]         856 │+        .send()
[INFO] [stdout]         857 │+        .await
[INFO] [stdout]         858 │+        .map_err(|err|xidl_rust_axum::Error::new(500,err.to_string()))?;
[INFO] [stdout]         859 │+        if resp.status().is_success(){
[INFO] [stdout]         860 │+            resp.json::<CreateSimpleResponse>()
[INFO] [stdout]         861 │+            .await
[INFO] [stdout]         862 │+            .map_err(|err|xidl_rust_axum::Error::new(500,err.to_string()))
[INFO] [stdout]         863 │+        }else{
[INFO] [stdout]         864 │+            let status = resp.status();
[INFO] [stdout]         865 │+            let body = resp.json::<xidl_rust_axum::ErrorBody>().await.ok();
[INFO] [stdout]         866 │+            let err = match body{
[INFO] [stdout]         867 │+                Some(body) => xidl_rust_axum::Error::new(body.code,body.msg),
[INFO] [stdout]         868 │+                None => xidl_rust_axum::Error::new(500,format!("http error: {}",status.as_u16())),
[INFO] [stdout]         869 │+
[INFO] [stdout]         870 │+            };
[INFO] [stdout]         871 │+            Err(err)
[INFO] [stdout]         872 │+        }
[INFO] [stdout]         873 │+    }
[INFO] [stdout]         874 │+
[INFO] [stdout]         875 │+    pub async fn stop_simple(&self,id:u32)->Result<(),xidl_rust_axum::Error>{
[INFO] [stdout]         876 │+        let path = "/api/v1/simple/{id}".to_string();
[INFO] [stdout]         877 │+        let path = path.replace("{{id}}",&id.to_string());
[INFO] [stdout]         878 │+        let url = self.client.url(&path);
[INFO] [stdout]         879 │+        let req = self
[INFO] [stdout]         880 │+        .client
[INFO] [stdout]         881 │+        .http()
[INFO] [stdout]         882 │+        .request(xidl_rust_axum::reqwest::Method::DELETE,url);
[INFO] [stdout]         883 │+        let resp = req
[INFO] [stdout]         884 │+        .send()
[INFO] [stdout]         885 │+        .await
[INFO] [stdout]         886 │+        .map_err(|err|xidl_rust_axum::Error::new(500,err.to_string()))?;
[INFO] [stdout]         887 │+        if resp.status().is_success(){
[INFO] [stdout]         888 │+            resp.json::<()>()
[INFO] [stdout]         889 │+            .await
[INFO] [stdout]         890 │+            .map_err(|err|xidl_rust_axum::Error::new(500,err.to_string()))
[INFO] [stdout]         891 │+        }else{
[INFO] [stdout]         892 │+            let status = resp.status();
[INFO] [stdout]         893 │+            let body = resp.json::<xidl_rust_axum::ErrorBody>().await.ok();
[INFO] [stdout]         894 │+            let err = match body{
[INFO] [stdout]         895 │+                Some(body) => xidl_rust_axum::Error::new(body.code,body.msg),
[INFO] [stdout]         896 │+                None => xidl_rust_axum::Error::new(500,format!("http error: {}",status.as_u16())),
[INFO] [stdout]         897 │+
[INFO] [stdout]         898 │+            };
[INFO] [stdout]         899 │+            Err(err)
[INFO] [stdout]         900 │+        }
[INFO] [stdout]         901 │+    }
[INFO] [stdout]         902 │+}
[INFO] [stdout]         903 │+===============
[INFO] [stdout]         904 │+ipc.rs
[INFO] [stdout]         905 │+===============
[INFO] [stdout]         906 │+#[derive(Debug,::serde::Serialize,::serde::Deserialize)]
[INFO] [stdout]         907 │+pub struct HealthResponse{
[INFO] [stdout]         908 │+    pub healthy:bool,
[INFO] [stdout]         909 │+    pub rtt_ms:u64,
[INFO] [stdout]         910 │+    pub message:String,
[INFO] [stdout]         911 │+}
[INFO] [stdout]         912 │+
[INFO] [stdout]         913 │+impl HealthResponse{
[INFO] [stdout]         914 │+}
[INFO] [stdout]         915 │+
[INFO] [stdout]         916 │+#[derive(Debug,::serde::Serialize,::serde::Deserialize)]
[INFO] [stdout]         917 │+pub struct VersionResponse{
[INFO] [stdout]         918 │+    pub short:String,
[INFO] [stdout]         919 │+    pub long:String,
[INFO] [stdout]         920 │+}
[INFO] [stdout]         921 │+
[INFO] [stdout]         922 │+impl VersionResponse{
[INFO] [stdout]         923 │+}
[INFO] [stdout]         924 │+
[INFO] [stdout]         925 │+#[derive(Debug,::serde::Serialize,::serde::Deserialize)]
[INFO] [stdout]         926 │+pub struct MemoryResponse{
[INFO] [stdout]         927 │+    pub allocated:u64,
[INFO] [stdout]         928 │+    pub active:u64,
[INFO] [stdout]         929 │+}
[INFO] [stdout]         930 │+
[INFO] [stdout]         931 │+impl MemoryResponse{
[INFO] [stdout]         932 │+}
[INFO] [stdout]         933 │+
[INFO] [stdout]         934 │+#[derive(Debug,::serde::Serialize,::serde::Deserialize)]
[INFO] [stdout]         935 │+pub struct UdpStatsResponse{
[INFO] [stdout]         936 │+    pub tx:u64,
[INFO] [stdout]         937 │+    pub rx:u64,
[INFO] [stdout]         938 │+}
[INFO] [stdout]         939 │+
[INFO] [stdout]         940 │+impl UdpStatsResponse{
[INFO] [stdout]         941 │+}
[INFO] [stdout]         942 │+
[INFO] [stdout]         943 │+#[derive(Debug,::serde::Serialize,::serde::Deserialize)]
[INFO] [stdout]         944 │+pub struct CreateTcpReverseRequest{
[INFO] [stdout]         945 │+    pub local_addr:String,
[INFO] [stdout]         946 │+    pub remote_port:u16,
[INFO] [stdout]         947 │+}
[INFO] [stdout]         948 │+
[INFO] [stdout]         949 │+impl CreateTcpReverseRequest{
[INFO] [stdout]         950 │+}
[INFO] [stdout]         951 │+
[INFO] [stdout]         952 │+#[derive(Debug,::serde::Serialize,::serde::Deserialize)]
[INFO] [stdout]         953 │+pub struct CreateSimpleResponse{
[INFO] [stdout]         954 │+    pub id:u32,
[INFO] [stdout]         955 │+}
[INFO] [stdout]         956 │+
[INFO] [stdout]         957 │+impl CreateSimpleResponse{
[INFO] [stdout]         958 │+}
[INFO] [stdout]         959 │+===============
[INFO] [stdout]         960 │+ipc.zod.ts
[INFO] [stdout]         961 │+===============
[INFO] [stdout]         962 │+
[INFO] [stdout]         963 │+    // Generated by xidlc. DO NOT EDIT.
[INFO] [stdout]         964 │+import{z}from"zod";
[INFO] [stdout]         965 │+export const HealthResponseSchema = z.object(
[INFO] [stdout]         966 │+{
[INFO] [stdout]         967 │+    healthy : z.boolean(
[INFO] [stdout]         968 │+
[INFO] [stdout]         969 │+    ), rtt_ms : z.number(
[INFO] [stdout]         970 │+
[INFO] [stdout]         971 │+    ).int(
[INFO] [stdout]         972 │+
[INFO] [stdout]         973 │+    ).nonnegative(
[INFO] [stdout]         974 │+
[INFO] [stdout]         975 │+    ), message : z.string(
[INFO] [stdout]         976 │+
[INFO] [stdout]         977 │+    ),
[INFO] [stdout]         978 │+}
[INFO] [stdout]         979 │+);
[INFO] [stdout]         980 │+export type HealthResponse = z.infer<
[INFO] [stdout]         981 │+typeof HealthResponseSchema
[INFO] [stdout]         982 │+>;
[INFO] [stdout]         983 │+export const VersionResponseSchema = z.object(
[INFO] [stdout]         984 │+{
[INFO] [stdout]         985 │+    short : z.string(
[INFO] [stdout]         986 │+
[INFO] [stdout]         987 │+    ), long : z.string(
[INFO] [stdout]         988 │+
[INFO] [stdout]         989 │+    ),
[INFO] [stdout]         990 │+}
[INFO] [stdout]         991 │+);
[INFO] [stdout]         992 │+export type VersionResponse = z.infer<
[INFO] [stdout]         993 │+typeof VersionResponseSchema
[INFO] [stdout]         994 │+>;
[INFO] [stdout]         995 │+export const MemoryResponseSchema = z.object(
[INFO] [stdout]         996 │+{
[INFO] [stdout]         997 │+    allocated : z.number(
[INFO] [stdout]         998 │+
[INFO] [stdout]         999 │+    ).int(
[INFO] [stdout]        1000 │+
[INFO] [stdout]        1001 │+    ).nonnegative(
[INFO] [stdout]        1002 │+
[INFO] [stdout]        1003 │+    ), active : z.number(
[INFO] [stdout]        1004 │+
[INFO] [stdout]        1005 │+    ).int(
[INFO] [stdout]        1006 │+
[INFO] [stdout]        1007 │+    ).nonnegative(
[INFO] [stdout]        1008 │+
[INFO] [stdout]        1009 │+    ),
[INFO] [stdout]        1010 │+}
[INFO] [stdout]        1011 │+);
[INFO] [stdout]        1012 │+export type MemoryResponse = z.infer<
[INFO] [stdout]        1013 │+typeof MemoryResponseSchema
[INFO] [stdout]        1014 │+>;
[INFO] [stdout]        1015 │+export const UdpStatsResponseSchema = z.object(
[INFO] [stdout]        1016 │+{
[INFO] [stdout]        1017 │+    tx : z.number(
[INFO] [stdout]        1018 │+
[INFO] [stdout]        1019 │+    ).int(
[INFO] [stdout]        1020 │+
[INFO] [stdout]        1021 │+    ).nonnegative(
[INFO] [stdout]        1022 │+
[INFO] [stdout]        1023 │+    ), rx : z.number(
[INFO] [stdout]        1024 │+
[INFO] [stdout]        1025 │+    ).int(
[INFO] [stdout]        1026 │+
[INFO] [stdout]        1027 │+    ).nonnegative(
[INFO] [stdout]        1028 │+
[INFO] [stdout]        1029 │+    ),
[INFO] [stdout]        1030 │+}
[INFO] [stdout]        1031 │+);
[INFO] [stdout]        1032 │+export type UdpStatsResponse = z.infer<
[INFO] [stdout]        1033 │+typeof UdpStatsResponseSchema
[INFO] [stdout]        1034 │+>;
[INFO] [stdout]        1035 │+export const CreateTcpReverseRequestSchema = z.object(
[INFO] [stdout]        1036 │+{
[INFO] [stdout]        1037 │+    local_addr : z.string(
[INFO] [stdout]        1038 │+
[INFO] [stdout]        1039 │+    ), remote_port : z.number(
[INFO] [stdout]        1040 │+
[INFO] [stdout]        1041 │+    ).int(
[INFO] [stdout]        1042 │+
[INFO] [stdout]        1043 │+    ).nonnegative(
[INFO] [stdout]        1044 │+
[INFO] [stdout]        1045 │+    ),
[INFO] [stdout]        1046 │+}
[INFO] [stdout]        1047 │+);
[INFO] [stdout]        1048 │+export type CreateTcpReverseRequest = z.infer<
[INFO] [stdout]        1049 │+typeof CreateTcpReverseRequestSchema
[INFO] [stdout]        1050 │+>;
[INFO] [stdout]        1051 │+export const CreateSimpleResponseSchema = z.object(
[INFO] [stdout]        1052 │+{
[INFO] [stdout]        1053 │+    id : z.number(
[INFO] [stdout]        1054 │+
[INFO] [stdout]        1055 │+    ).int(
[INFO] [stdout]        1056 │+
[INFO] [stdout]        1057 │+    ).nonnegative(
[INFO] [stdout]        1058 │+
[INFO] [stdout]        1059 │+    ),
[INFO] [stdout]        1060 │+}
[INFO] [stdout]        1061 │+);
[INFO] [stdout]        1062 │+export type CreateSimpleResponse = z.infer<
[INFO] [stdout]        1063 │+typeof CreateSimpleResponseSchema
[INFO] [stdout]        1064 │+>;
[INFO] [stdout]        1065 │+===============
[INFO] [stdout]        1066 │+openapi.json
[INFO] [stdout]        1067 │+===============
[INFO] [stdout]        1068 │+{
[INFO] [stdout]        1069 │+  "openapi": "3.1.0",
[INFO] [stdout]        1070 │+  "info": {
[INFO] [stdout]        1071 │+    "title": "xidlc",
[INFO] [stdout]        1072 │+    "version": "v1.0.0"
[INFO] [stdout]        1073 │+  },
[INFO] [stdout]        1074 │+  "paths": {
[INFO] [stdout]        1075 │+    "/api/v1/app/memory": {
[INFO] [stdout]        1076 │+      "get": {
[INFO] [stdout]        1077 │+        "operationId": "HttpService.get_memory_info",
[INFO] [stdout]        1078 │+        "responses": {
[INFO] [stdout]        1079 │+          "200": {
[INFO] [stdout]        1080 │+            "description": "OK",
[INFO] [stdout]        1081 │+            "content": {
[INFO] [stdout]        1082 │+              "application/json": {
[INFO] [stdout]        1083 │+                "schema": {
[INFO] [stdout]        1084 │+                  "$ref": "#/components/schemas/MemoryResponse"
[INFO] [stdout]        1085 │+                }
[INFO] [stdout]        1086 │+              }
[INFO] [stdout]        1087 │+            }
[INFO] [stdout]        1088 │+          },
[INFO] [stdout]        1089 │+          "500": {
[INFO] [stdout]        1090 │+            "description": "Error",
[INFO] [stdout]        1091 │+            "content": {
[INFO] [stdout]        1092 │+              "application/json": {
[INFO] [stdout]        1093 │+                "schema": {
[INFO] [stdout]        1094 │+                  "$ref": "#/components/schemas/Error"
[INFO] [stdout]        1095 │+                }
[INFO] [stdout]        1096 │+              }
[INFO] [stdout]        1097 │+            }
[INFO] [stdout]        1098 │+          }
[INFO] [stdout]        1099 │+        }
[INFO] [stdout]        1100 │+      }
[INFO] [stdout]        1101 │+    },
[INFO] [stdout]        1102 │+    "/api/v1/app/restart": {
[INFO] [stdout]        1103 │+      "get": {
[INFO] [stdout]        1104 │+        "operationId": "HttpService.restart",
[INFO] [stdout]        1105 │+        "responses": {
[INFO] [stdout]        1106 │+          "200": {
[INFO] [stdout]        1107 │+            "description": "OK",
[INFO] [stdout]        1108 │+            "content": {
[INFO] [stdout]        1109 │+              "application/json": {
[INFO] [stdout]        1110 │+                "schema": {
[INFO] [stdout]        1111 │+                  "type": "null"
[INFO] [stdout]        1112 │+                }
[INFO] [stdout]        1113 │+              }
[INFO] [stdout]        1114 │+            }
[INFO] [stdout]        1115 │+          },
[INFO] [stdout]        1116 │+          "500": {
[INFO] [stdout]        1117 │+            "description": "Error",
[INFO] [stdout]        1118 │+            "content": {
[INFO] [stdout]        1119 │+              "application/json": {
[INFO] [stdout]        1120 │+                "schema": {
[INFO] [stdout]        1121 │+                  "$ref": "#/components/schemas/Error"
[INFO] [stdout]        1122 │+                }
[INFO] [stdout]        1123 │+              }
[INFO] [stdout]        1124 │+            }
[INFO] [stdout]        1125 │+          }
[INFO] [stdout]        1126 │+        }
[INFO] [stdout]        1127 │+      }
[INFO] [stdout]        1128 │+    },
[INFO] [stdout]        1129 │+    "/api/v1/app/version": {
[INFO] [stdout]        1130 │+      "get": {
[INFO] [stdout]        1131 │+        "operationId": "HttpService.get_version",
[INFO] [stdout]        1132 │+        "responses": {
[INFO] [stdout]        1133 │+          "200": {
[INFO] [stdout]        1134 │+            "description": "OK",
[INFO] [stdout]        1135 │+            "content": {
[INFO] [stdout]        1136 │+              "application/json": {
[INFO] [stdout]        1137 │+                "schema": {
[INFO] [stdout]        1138 │+                  "$ref": "#/components/schemas/VersionResponse"
[INFO] [stdout]        1139 │+                }
[INFO] [stdout]        1140 │+              }
[INFO] [stdout]        1141 │+            }
[INFO] [stdout]        1142 │+          },
[INFO] [stdout]        1143 │+          "500": {
[INFO] [stdout]        1144 │+            "description": "Error",
[INFO] [stdout]        1145 │+            "content": {
[INFO] [stdout]        1146 │+              "application/json": {
[INFO] [stdout]        1147 │+                "schema": {
[INFO] [stdout]        1148 │+                  "$ref": "#/components/schemas/Error"
[INFO] [stdout]        1149 │+                }
[INFO] [stdout]        1150 │+              }
[INFO] [stdout]        1151 │+            }
[INFO] [stdout]        1152 │+          }
[INFO] [stdout]        1153 │+        }
[INFO] [stdout]        1154 │+      }
[INFO] [stdout]        1155 │+    },
[INFO] [stdout]        1156 │+    "/api/v1/health": {
[INFO] [stdout]        1157 │+      "get": {
[INFO] [stdout]        1158 │+        "operationId": "HttpService.get_health",
[INFO] [stdout]        1159 │+        "responses": {
[INFO] [stdout]        1160 │+          "200": {
[INFO] [stdout]        1161 │+            "description": "OK",
[INFO] [stdout]        1162 │+            "content": {
[INFO] [stdout]        1163 │+              "application/json": {
[INFO] [stdout]        1164 │+                "schema": {
[INFO] [stdout]        1165 │+                  "$ref": "#/components/schemas/HealthResponse"
[INFO] [stdout]        1166 │+                }
[INFO] [stdout]        1167 │+              }
[INFO] [stdout]        1168 │+            }
[INFO] [stdout]        1169 │+          },
[INFO] [stdout]        1170 │+          "500": {
[INFO] [stdout]        1171 │+            "description": "Error",
[INFO] [stdout]        1172 │+            "content": {
[INFO] [stdout]        1173 │+              "application/json": {
[INFO] [stdout]        1174 │+                "schema": {
[INFO] [stdout]        1175 │+                  "$ref": "#/components/schemas/Error"
[INFO] [stdout]        1176 │+                }
[INFO] [stdout]        1177 │+              }
[INFO] [stdout]        1178 │+            }
[INFO] [stdout]        1179 │+          }
[INFO] [stdout]        1180 │+        }
[INFO] [stdout]        1181 │+      }
[INFO] [stdout]        1182 │+    },
[INFO] [stdout]        1183 │+    "/api/v1/proxy/state": {
[INFO] [stdout]        1184 │+      "get": {
[INFO] [stdout]        1185 │+        "operationId": "HttpService.get_state",
[INFO] [stdout]        1186 │+        "responses": {
[INFO] [stdout]        1187 │+          "200": {
[INFO] [stdout]        1188 │+            "description": "OK",
[INFO] [stdout]        1189 │+            "content": {
[INFO] [stdout]        1190 │+              "application/json": {
[INFO] [stdout]        1191 │+                "schema": {
[INFO] [stdout]        1192 │+                  "$ref": "#/components/schemas/crate.api.state.StateResponse"
[INFO] [stdout]        1193 │+                }
[INFO] [stdout]        1194 │+              }
[INFO] [stdout]        1195 │+            }
[INFO] [stdout]        1196 │+          },
[INFO] [stdout]        1197 │+          "500": {
[INFO] [stdout]        1198 │+            "description": "Error",
[INFO] [stdout]        1199 │+            "content": {
[INFO] [stdout]        1200 │+              "application/json": {
[INFO] [stdout]        1201 │+                "schema": {
[INFO] [stdout]        1202 │+                  "$ref": "#/components/schemas/Error"
[INFO] [stdout]        1203 │+                }
[INFO] [stdout]        1204 │+              }
[INFO] [stdout]        1205 │+            }
[INFO] [stdout]        1206 │+          }
[INFO] [stdout]        1207 │+        }
[INFO] [stdout]        1208 │+      }
[INFO] [stdout]        1209 │+    },
[INFO] [stdout]        1210 │+    "/api/v1/simple": {
[INFO] [stdout]        1211 │+      "post": {
[INFO] [stdout]        1212 │+        "operationId": "HttpService.create_simple",
[INFO] [stdout]        1213 │+        "requestBody": {
[INFO] [stdout]        1214 │+          "content": {
[INFO] [stdout]        1215 │+            "application/json": {
[INFO] [stdout]        1216 │+              "schema": {
[INFO] [stdout]        1217 │+                "type": "object",
[INFO] [stdout]        1218 │+                "required": [
[INFO] [stdout]        1219 │+                  "local_addr",
[INFO] [stdout]        1220 │+                  "remote_port"
[INFO] [stdout]        1221 │+                ],
[INFO] [stdout]        1222 │+                "properties": {
[INFO] [stdout]        1223 │+                  "local_addr": {
[INFO] [stdout]        1224 │+                    "type": "string"
[INFO] [stdout]        1225 │+                  },
[INFO] [stdout]        1226 │+                  "remote_port": {
[INFO] [stdout]        1227 │+                    "type": "integer",
[INFO] [stdout]        1228 │+                    "format": "int32",
[INFO] [stdout]        1229 │+                    "minimum": 0
[INFO] [stdout]        1230 │+                  }
[INFO] [stdout]        1231 │+                }
[INFO] [stdout]        1232 │+              }
[INFO] [stdout]        1233 │+            }
[INFO] [stdout]        1234 │+          }
[INFO] [stdout]        1235 │+        },
[INFO] [stdout]        1236 │+        "responses": {
[INFO] [stdout]        1237 │+          "200": {
[INFO] [stdout]        1238 │+            "description": "OK",
[INFO] [stdout]        1239 │+            "content": {
[INFO] [stdout]        1240 │+              "application/json": {
[INFO] [stdout]        1241 │+                "schema": {
[INFO] [stdout]        1242 │+                  "$ref": "#/components/schemas/CreateSimpleResponse"
[INFO] [stdout]        1243 │+                }
[INFO] [stdout]        1244 │+              }
[INFO] [stdout]        1245 │+            }
[INFO] [stdout]        1246 │+          },
[INFO] [stdout]        1247 │+          "500": {
[INFO] [stdout]        1248 │+            "description": "Error",
[INFO] [stdout]        1249 │+            "content": {
[INFO] [stdout]        1250 │+              "application/json": {
[INFO] [stdout]        1251 │+                "schema": {
[INFO] [stdout]        1252 │+                  "$ref": "#/components/schemas/Error"
[INFO] [stdout]        1253 │+                }
[INFO] [stdout]        1254 │+              }
[INFO] [stdout]        1255 │+            }
[INFO] [stdout]        1256 │+          }
[INFO] [stdout]        1257 │+        }
[INFO] [stdout]        1258 │+      }
[INFO] [stdout]        1259 │+    },
[INFO] [stdout]        1260 │+    "/api/v1/simple/{id}": {
[INFO] [stdout]        1261 │+      "delete": {
[INFO] [stdout]        1262 │+        "operationId": "HttpService.stop_simple",
[INFO] [stdout]        1263 │+        "parameters": [
[INFO] [stdout]        1264 │+          {
[INFO] [stdout]        1265 │+            "name": "id",
[INFO] [stdout]        1266 │+            "in": "path",
[INFO] [stdout]        1267 │+            "required": true,
[INFO] [stdout]        1268 │+            "schema": {
[INFO] [stdout]        1269 │+              "type": "integer",
[INFO] [stdout]        1270 │+              "format": "int32",
[INFO] [stdout]        1271 │+              "minimum": 0
[INFO] [stdout]        1272 │+            }
[INFO] [stdout]        1273 │+          }
[INFO] [stdout]        1274 │+        ],
[INFO] [stdout]        1275 │+        "responses": {
[INFO] [stdout]        1276 │+          "200": {
[INFO] [stdout]        1277 │+            "description": "OK",
[INFO] [stdout]        1278 │+            "content": {
[INFO] [stdout]        1279 │+              "application/json": {
[INFO] [stdout]        1280 │+                "schema": {
[INFO] [stdout]        1281 │+                  "type": "null"
[INFO] [stdout]        1282 │+                }
[INFO] [stdout]        1283 │+              }
[INFO] [stdout]        1284 │+            }
[INFO] [stdout]        1285 │+          },
[INFO] [stdout]        1286 │+          "500": {
[INFO] [stdout]        1287 │+            "description": "Error",
[INFO] [stdout]        1288 │+            "content": {
[INFO] [stdout]        1289 │+              "application/json": {
[INFO] [stdout]        1290 │+                "schema": {
[INFO] [stdout]        1291 │+                  "$ref": "#/components/schemas/Error"
[INFO] [stdout]        1292 │+                }
[INFO] [stdout]        1293 │+              }
[INFO] [stdout]        1294 │+            }
[INFO] [stdout]        1295 │+          }
[INFO] [stdout]        1296 │+        }
[INFO] [stdout]        1297 │+      }
[INFO] [stdout]        1298 │+    },
[INFO] [stdout]        1299 │+    "/api/v1/stats/udp": {
[INFO] [stdout]        1300 │+      "get": {
[INFO] [stdout]        1301 │+        "operationId": "HttpService.get_udp_stats",
[INFO] [stdout]        1302 │+        "responses": {
[INFO] [stdout]        1303 │+          "200": {
[INFO] [stdout]        1304 │+            "description": "OK",
[INFO] [stdout]        1305 │+            "content": {
[INFO] [stdout]        1306 │+              "application/json": {
[INFO] [stdout]        1307 │+                "schema": {
[INFO] [stdout]        1308 │+                  "$ref": "#/components/schemas/UdpStatsResponse"
[INFO] [stdout]        1309 │+                }
[INFO] [stdout]        1310 │+              }
[INFO] [stdout]        1311 │+            }
[INFO] [stdout]        1312 │+          },
[INFO] [stdout]        1313 │+          "500": {
[INFO] [stdout]        1314 │+            "description": "Error",
[INFO] [stdout]        1315 │+            "content": {
[INFO] [stdout]        1316 │+              "application/json": {
[INFO] [stdout]        1317 │+                "schema": {
[INFO] [stdout]        1318 │+                  "$ref": "#/components/schemas/Error"
[INFO] [stdout]        1319 │+                }
[INFO] [stdout]        1320 │+              }
[INFO] [stdout]        1321 │+            }
[INFO] [stdout]        1322 │+          }
[INFO] [stdout]        1323 │+        }
[INFO] [stdout]        1324 │+      }
[INFO] [stdout]        1325 │+    }
[INFO] [stdout]        1326 │+  },
[INFO] [stdout]        1327 │+  "components": {
[INFO] [stdout]        1328 │+    "schemas": {
[INFO] [stdout]        1329 │+      "CreateSimpleResponse": {
[INFO] [stdout]        1330 │+        "type": "object",
[INFO] [stdout]        1331 │+        "required": [
[INFO] [stdout]        1332 │+          "id"
[INFO] [stdout]        1333 │+        ],
[INFO] [stdout]        1334 │+        "properties": {
[INFO] [stdout]        1335 │+          "id": {
[INFO] [stdout]        1336 │+            "type": "integer",
[INFO] [stdout]        1337 │+            "format": "int32",
[INFO] [stdout]        1338 │+            "minimum": 0
[INFO] [stdout]        1339 │+          }
[INFO] [stdout]        1340 │+        }
[INFO] [stdout]        1341 │+      },
[INFO] [stdout]        1342 │+      "CreateTcpReverseRequest": {
[INFO] [stdout]        1343 │+        "type": "object",
[INFO] [stdout]        1344 │+        "required": [
[INFO] [stdout]        1345 │+          "local_addr",
[INFO] [stdout]        1346 │+          "remote_port"
[INFO] [stdout]        1347 │+        ],
[INFO] [stdout]        1348 │+        "properties": {
[INFO] [stdout]        1349 │+          "local_addr": {
[INFO] [stdout]        1350 │+            "type": "string"
[INFO] [stdout]        1351 │+          },
[INFO] [stdout]        1352 │+          "remote_port": {
[INFO] [stdout]        1353 │+            "type": "integer",
[INFO] [stdout]        1354 │+            "format": "int32",
[INFO] [stdout]        1355 │+            "minimum": 0
[INFO] [stdout]        1356 │+          }
[INFO] [stdout]        1357 │+        }
[INFO] [stdout]        1358 │+      },
[INFO] [stdout]        1359 │+      "Error": {
[INFO] [stdout]        1360 │+        "type": "object",
[INFO] [stdout]        1361 │+        "required": [
[INFO] [stdout]        1362 │+          "code",
[INFO] [stdout]        1363 │+          "msg"
[INFO] [stdout]        1364 │+        ],
[INFO] [stdout]        1365 │+        "properties": {
[INFO] [stdout]        1366 │+          "code": {
[INFO] [stdout]        1367 │+            "type": "integer"
[INFO] [stdout]        1368 │+          },
[INFO] [stdout]        1369 │+          "msg": {
[INFO] [stdout]        1370 │+            "type": "string"
[INFO] [stdout]        1371 │+          }
[INFO] [stdout]        1372 │+        }
[INFO] [stdout]        1373 │+      },
[INFO] [stdout]        1374 │+      "HealthResponse": {
[INFO] [stdout]        1375 │+        "type": "object",
[INFO] [stdout]        1376 │+        "required": [
[INFO] [stdout]        1377 │+          "healthy",
[INFO] [stdout]        1378 │+          "rtt_ms",
[INFO] [stdout]        1379 │+          "message"
[INFO] [stdout]        1380 │+        ],
[INFO] [stdout]        1381 │+        "properties": {
[INFO] [stdout]        1382 │+          "healthy": {
[INFO] [stdout]        1383 │+            "type": "boolean"
[INFO] [stdout]        1384 │+          },
[INFO] [stdout]        1385 │+          "message": {
[INFO] [stdout]        1386 │+            "type": "string"
[INFO] [stdout]        1387 │+          },
[INFO] [stdout]        1388 │+          "rtt_ms": {
[INFO] [stdout]        1389 │+            "type": "integer",
[INFO] [stdout]        1390 │+            "format": "int64",
[INFO] [stdout]        1391 │+            "minimum": 0
[INFO] [stdout]        1392 │+          }
[INFO] [stdout]        1393 │+        }
[INFO] [stdout]        1394 │+      },
[INFO] [stdout]        1395 │+      "MemoryResponse": {
[INFO] [stdout]        1396 │+        "type": "object",
[INFO] [stdout]        1397 │+        "required": [
[INFO] [stdout]        1398 │+          "allocated",
[INFO] [stdout]        1399 │+          "active"
[INFO] [stdout]        1400 │+        ],
[INFO] [stdout]        1401 │+        "properties": {
[INFO] [stdout]        1402 │+          "active": {
[INFO] [stdout]        1403 │+            "type": "integer",
[INFO] [stdout]        1404 │+            "format": "int64",
[INFO] [stdout]        1405 │+            "minimum": 0
[INFO] [stdout]        1406 │+          },
[INFO] [stdout]        1407 │+          "allocated": {
[INFO] [stdout]        1408 │+            "type": "integer",
[INFO] [stdout]        1409 │+            "format": "int64",
[INFO] [stdout]        1410 │+            "minimum": 0
[INFO] [stdout]        1411 │+          }
[INFO] [stdout]        1412 │+        }
[INFO] [stdout]        1413 │+      },
[INFO] [stdout]        1414 │+      "UdpStatsResponse": {
[INFO] [stdout]        1415 │+        "type": "object",
[INFO] [stdout]        1416 │+        "required": [
[INFO] [stdout]        1417 │+          "tx",
[INFO] [stdout]        1418 │+          "rx"
[INFO] [stdout]        1419 │+        ],
[INFO] [stdout]        1420 │+        "properties": {
[INFO] [stdout]        1421 │+          "rx": {
[INFO] [stdout]        1422 │+            "type": "integer",
[INFO] [stdout]        1423 │+            "format": "int64",
[INFO] [stdout]        1424 │+            "minimum": 0
[INFO] [stdout]        1425 │+          },
[INFO] [stdout]        1426 │+          "tx": {
[INFO] [stdout]        1427 │+            "type": "integer",
[INFO] [stdout]        1428 │+            "format": "int64",
[INFO] [stdout]        1429 │+            "minimum": 0
[INFO] [stdout]        1430 │+          }
[INFO] [stdout]        1431 │+        }
[INFO] [stdout]        1432 │+      },
[INFO] [stdout]        1433 │+      "VersionResponse": {
[INFO] [stdout]        1434 │+        "type": "object",
[INFO] [stdout]        1435 │+        "required": [
[INFO] [stdout]        1436 │+          "short",
[INFO] [stdout]        1437 │+          "long"
[INFO] [stdout]        1438 │+        ],
[INFO] [stdout]        1439 │+        "properties": {
[INFO] [stdout]        1440 │+          "long": {
[INFO] [stdout]        1441 │+            "type": "string"
[INFO] [stdout]        1442 │+          },
[INFO] [stdout]        1443 │+          "short": {
[INFO] [stdout]        1444 │+            "type": "string"
[INFO] [stdout]        1445 │+          }
[INFO] [stdout]        1446 │+        }
[INFO] [stdout]        1447 │+      }
[INFO] [stdout]        1448 │+    }
[INFO] [stdout]        1449 │+  }
[INFO] [stdout]        1450 │+}
[INFO] [stdout] ────────────┴───────────────────────────────────────────────────────────────────
[INFO] [stdout] 
[INFO] [stdout] thread 'driver::tests::test_rust_axum::test_code_gen' (20) panicked at src/driver/tests/test_rust_axum/mod.rs:45:5:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: Os { code: 30, kind: ReadOnlyFilesystem, message: "Read-only file system" }
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x6442bf3a160a - std[b80a194dd3c418bb]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x6442bf3a160a - std[b80a194dd3c418bb]::backtrace_rs::backtrace::trace_unsynchronized::<std[b80a194dd3c418bb]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x6442bf3a160a - std[b80a194dd3c418bb]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x6442bf3a160a - <<std[b80a194dd3c418bb]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[10b6fa85044e1869]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x6442bf3ba68a - <core[10b6fa85044e1869]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x6442bf3ba68a - core[10b6fa85044e1869]::fmt::write
[INFO] [stdout]    6:     0x6442bf3a64d2 - std[b80a194dd3c418bb]::io::default_write_fmt::<alloc[dd269455e567d8e9]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/io/mod.rs:639:11
[INFO] [stdout]    7:     0x6442bf3a64d2 - <alloc[dd269455e567d8e9]::vec::Vec<u8> as std[b80a194dd3c418bb]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/io/mod.rs:1994:13
[INFO] [stdout]    8:     0x6442bf37d00f - <std[b80a194dd3c418bb]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x6442bf37d00f - std[b80a194dd3c418bb]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x6442bf398589 - std[b80a194dd3c418bb]::panicking::default_hook
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x6442be8b05ac - <alloc[dd269455e567d8e9]::boxed::Box<dyn for<'a, 'b> core[10b6fa85044e1869]::ops::function::Fn<(&'a std[b80a194dd3c418bb]::panic::PanicHookInfo<'b>,), Output = ()> + core[10b6fa85044e1869]::marker::Sync + core[10b6fa85044e1869]::marker::Send> as core[10b6fa85044e1869]::ops::function::Fn<(&std[b80a194dd3c418bb]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/alloc/src/boxed.rs:2254:9
[INFO] [stdout]   12:     0x6442be8b05ac - test[826cbc6ef54ab466]::test_main_with_exit_callback::<test[826cbc6ef54ab466]::test_main::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:145:21
[INFO] [stdout]   13:     0x6442bf398802 - <alloc[dd269455e567d8e9]::boxed::Box<dyn for<'a, 'b> core[10b6fa85044e1869]::ops::function::Fn<(&'a std[b80a194dd3c418bb]::panic::PanicHookInfo<'b>,), Output = ()> + core[10b6fa85044e1869]::marker::Sync + core[10b6fa85044e1869]::marker::Send> as core[10b6fa85044e1869]::ops::function::Fn<(&std[b80a194dd3c418bb]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/alloc/src/boxed.rs:2254:9
[INFO] [stdout]   14:     0x6442bf398802 - std[b80a194dd3c418bb]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x6442bf37d0c8 - std[b80a194dd3c418bb]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x6442bf374679 - std[b80a194dd3c418bb]::sys::backtrace::__rust_end_short_backtrace::<std[b80a194dd3c418bb]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x6442bf37de7d - __rustc[9698a3e60dd14283]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x6442bf3bafec - core[10b6fa85044e1869]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x6442bf3bad62 - core[10b6fa85044e1869]::result::unwrap_failed
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/result.rs:1867:5
[INFO] [stdout]   20:     0x6442be7df95d - core::result::Result<T,E>::unwrap::h8f12a7b6ee6576f7
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/result.rs:1233:23
[INFO] [stdout]   21:     0x6442be7df95d - xidlc::driver::tests::test_rust_axum::assert_cases::{{closure}}::h749ea91feb95bc68
[INFO] [stdout]                                at /opt/rustwide/workdir/src/driver/tests/test_rust_axum/mod.rs:45:5
[INFO] [stdout]   22:     0x6442be7dfe7e - xidlc::driver::tests::test_rust_axum::test_code_gen::{{closure}}::h7b85b71ea5150cb3
[INFO] [stdout]                                at /opt/rustwide/workdir/src/driver/tests/test_rust_axum/mod.rs:56:64
[INFO] [stdout]   23:     0x6442be86be82 - <core::pin::Pin<P> as core::future::future::Future>::poll::h7269b232cf02af35
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/future/future.rs:133:9
[INFO] [stdout]   24:     0x6442be86c01d - <core::pin::Pin<P> as core::future::future::Future>::poll::ha7eca16e29d50446
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/future/future.rs:133:9
[INFO] [stdout]   25:     0x6442be591cdd - tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}::{{closure}}::h8dddc8d4138fdb03
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/scheduler/current_thread/mod.rs:769:70
[INFO] [stdout]   26:     0x6442be591a7b - tokio::task::coop::with_budget::h0833f0cd1a5082c9
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/task/coop/mod.rs:167:5
[INFO] [stdout]   27:     0x6442be591a7b - tokio::task::coop::budget::ha8266006ee14def9
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/task/coop/mod.rs:133:5
[INFO] [stdout]   28:     0x6442be591a7b - tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::{{closure}}::h25f439007d3f4b3d
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/scheduler/current_thread/mod.rs:769:25
[INFO] [stdout]   29:     0x6442be58ecc0 - tokio::runtime::scheduler::current_thread::Context::enter::h0186d5f1551ea574
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/scheduler/current_thread/mod.rs:446:19
[INFO] [stdout]   30:     0x6442be59061d - tokio::runtime::scheduler::current_thread::CoreGuard::block_on::{{closure}}::h15cf200ff0097766
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/scheduler/current_thread/mod.rs:768:44
[INFO] [stdout]   31:     0x6442be590284 - tokio::runtime::scheduler::current_thread::CoreGuard::enter::{{closure}}::h440b96f4b3dd3da4
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/scheduler/current_thread/mod.rs:856:68
[INFO] [stdout]   32:     0x6442be86b0eb - tokio::runtime::context::scoped::Scoped<T>::set::h343eb9fd21e99d92
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/context/scoped.rs:40:9
[INFO] [stdout]   33:     0x6442be63f499 - tokio::runtime::context::set_scheduler::{{closure}}::hca58545c06db7536
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/context.rs:176:38
[INFO] [stdout]   34:     0x6442be735212 - std::thread::local::LocalKey<T>::try_with::hf689ec30273e1865
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/thread/local.rs:513:12
[INFO] [stdout]   35:     0x6442be73285e - std::thread::local::LocalKey<T>::with::h56ee0fbb5b4f9079
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/thread/local.rs:477:20
[INFO] [stdout]   36:     0x6442be63f40d - tokio::runtime::context::set_scheduler::h5c2633451a3e310e
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/context.rs:176:17
[INFO] [stdout]   37:     0x6442be590030 - tokio::runtime::scheduler::current_thread::CoreGuard::enter::hceaab51e60d89797
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/scheduler/current_thread/mod.rs:856:27
[INFO] [stdout]   38:     0x6442be590366 - tokio::runtime::scheduler::current_thread::CoreGuard::block_on::h3e6d29924c82f91e
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/scheduler/current_thread/mod.rs:756:24
[INFO] [stdout]   39:     0x6442be58b4d0 - tokio::runtime::scheduler::current_thread::CurrentThread::block_on::{{closure}}::h2052e2f880cce265
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/scheduler/current_thread/mod.rs:200:33
[INFO] [stdout]   40:     0x6442be6dd063 - tokio::runtime::context::runtime::enter_runtime::hbe9728016edb4e5a
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/context/runtime.rs:65:16
[INFO] [stdout]   41:     0x6442be58b291 - tokio::runtime::scheduler::current_thread::CurrentThread::block_on::h84b487f0c6a2e993
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/scheduler/current_thread/mod.rs:188:9
[INFO] [stdout]   42:     0x6442be6ddb84 - tokio::runtime::runtime::Runtime::block_on_inner::h26db8e162dbf12a9
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/runtime.rs:371:52
[INFO] [stdout]   43:     0x6442be6dde5f - tokio::runtime::runtime::Runtime::block_on::he1b4da13d1d16cf2
[INFO] [stdout]                                at /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/tokio-1.50.0/src/runtime/runtime.rs:345:18
[INFO] [stdout]   44:     0x6442be7dfc43 - xidlc::driver::tests::test_rust_axum::test_code_gen::h9b7b368782f2ff1e
[INFO] [stdout]                                at /opt/rustwide/workdir/src/driver/tests/test_rust_axum/mod.rs:52:40
[INFO] [stdout]   45:     0x6442be7e0337 - xidlc::driver::tests::test_rust_axum::test_code_gen::{{closure}}::hcf96ce799059edd6
[INFO] [stdout]                                at /opt/rustwide/workdir/src/driver/tests/test_rust_axum/mod.rs:49:25
[INFO] [stdout]   46:     0x6442be6b71f6 - core::ops::function::FnOnce::call_once::hb85664e512534486
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   47:     0x6442be8a468b - <fn() -> core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String> as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   48:     0x6442be8a468b - test[826cbc6ef54ab466]::__rust_begin_short_backtrace::<core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>, fn() -> core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:663:18
[INFO] [stdout]   49:     0x6442be8b107b - test[826cbc6ef54ab466]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:686:74
[INFO] [stdout]   50:     0x6442be8b107b - <core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<test[826cbc6ef54ab466]::run_test_in_process::{closure#0}> as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   51:     0x6442be8b107b - std[b80a194dd3c418bb]::panicking::catch_unwind::do_call::<core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<test[826cbc6ef54ab466]::run_test_in_process::{closure#0}>, core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:581:40
[INFO] [stdout]   52:     0x6442be8b107b - std[b80a194dd3c418bb]::panicking::catch_unwind::<core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>, core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<test[826cbc6ef54ab466]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:544:19
[INFO] [stdout]   53:     0x6442be8b107b - std[b80a194dd3c418bb]::panic::catch_unwind::<core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<test[826cbc6ef54ab466]::run_test_in_process::{closure#0}>, core[10b6fa85044e1869]::result::Result<(), alloc[dd269455e567d8e9]::string::String>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panic.rs:359:14
[INFO] [stdout]   54:     0x6442be8b107b - test[826cbc6ef54ab466]::run_test_in_process
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:686:27
[INFO] [stdout]   55:     0x6442be8b107b - test[826cbc6ef54ab466]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:607:43
[INFO] [stdout]   56:     0x6442be8ac794 - test[826cbc6ef54ab466]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/test/src/lib.rs:637:41
[INFO] [stdout]   57:     0x6442be8ac794 - std[b80a194dd3c418bb]::sys::backtrace::__rust_begin_short_backtrace::<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   58:     0x6442be8b3c82 - std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked::<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/thread/lifecycle.rs:91:13
[INFO] [stdout]   59:     0x6442be8b3c82 - <core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/panic/unwind_safe.rs:274:9
[INFO] [stdout]   60:     0x6442be8b3c82 - std[b80a194dd3c418bb]::panicking::catch_unwind::do_call::<core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:581:40
[INFO] [stdout]   61:     0x6442be8b3c82 - std[b80a194dd3c418bb]::panicking::catch_unwind::<(), core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panicking.rs:544:19
[INFO] [stdout]   62:     0x6442be8b3c82 - std[b80a194dd3c418bb]::panic::catch_unwind::<core[10b6fa85044e1869]::panic::unwind_safe::AssertUnwindSafe<std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/panic.rs:359:14
[INFO] [stdout]   63:     0x6442be8b3c82 - std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked::<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/thread/lifecycle.rs:89:26
[INFO] [stdout]   64:     0x6442be8b3c82 - <std[b80a194dd3c418bb]::thread::lifecycle::spawn_unchecked<test[826cbc6ef54ab466]::run_test::{closure#1}, ()>::{closure#1} as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   65:     0x6442bf3a06bf - <alloc[dd269455e567d8e9]::boxed::Box<dyn core[10b6fa85044e1869]::ops::function::FnOnce<(), Output = ()> + core[10b6fa85044e1869]::marker::Send> as core[10b6fa85044e1869]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/alloc/src/boxed.rs:2240:9
[INFO] [stdout]   66:     0x6442bf3a06bf - <std[b80a194dd3c418bb]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/ad726b5063362ec9897ef3d67452fc5606ee70fa/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   67:     0x7a42cb40aaa4 - <unknown>
[INFO] [stdout]   68:     0x7a42cb497a64 - clone
[INFO] [stdout]   69:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     driver::tests::test_code_gen
[INFO] [stdout]     driver::tests::test_rust::test_code_gen
[INFO] [stdout]     driver::tests::test_rust_axum::test_code_gen
[INFO] [stdout]     driver::tests::test_rust_jsonrpc::test_code_gen
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 5 passed; 4 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.15s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "809836ea50d8281ff5dc878567a7b03980d1ad006d31e21560e8368591888ecb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "809836ea50d8281ff5dc878567a7b03980d1ad006d31e21560e8368591888ecb", kill_on_drop: false }`
[INFO] [stdout] 809836ea50d8281ff5dc878567a7b03980d1ad006d31e21560e8368591888ecb
