[INFO] fetching crate ouch_model 5.0.1... [INFO] testing ouch_model-5.0.1 against master#350d0ef0ec0493e6d21cfb265cb8211a0e74d766 for pr-145330-1 [INFO] extracting crate ouch_model 5.0.1 into /workspace/builds/worker-2-tc1/source [INFO] started tweaking crates.io crate ouch_model 5.0.1 [INFO] finished tweaking crates.io crate ouch_model 5.0.1 [INFO] tweaked toml for crates.io crate ouch_model 5.0.1 written to /workspace/builds/worker-2-tc1/source/Cargo.toml [INFO] validating manifest of crates.io crate ouch_model 5.0.1 on toolchain 350d0ef0ec0493e6d21cfb265cb8211a0e74d766 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+350d0ef0ec0493e6d21cfb265cb8211a0e74d766" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+350d0ef0ec0493e6d21cfb265cb8211a0e74d766" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Locking 153 packages to latest compatible versions [INFO] [stderr] Adding colored v2.2.0 (available: v3.0.0) [INFO] [stderr] Adding criterion v0.5.1 (available: v0.7.0) [INFO] [stderr] Adding derive_more v0.99.20 (available: v2.0.1) [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+350d0ef0ec0493e6d21cfb265cb8211a0e74d766" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded getopts v0.2.24 [INFO] [stderr] Downloaded byteserde_derive v0.6.2 [INFO] [stderr] Downloaded byteserde_types v0.6.2 [INFO] [stderr] Downloaded byteserde v0.6.2 [INFO] [stderr] Downloaded soupbintcp_model v4.0.5 [INFO] [stderr] Downloaded links_core v0.2.12 [INFO] [stderr] Downloaded term v0.2.14 [INFO] [stderr] Downloaded links_nonblocking v0.2.12 [INFO] [stderr] Downloaded text-diff v0.4.0 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+350d0ef0ec0493e6d21cfb265cb8211a0e74d766" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] fe26d1bf8474a61b2c6231f4cd97c848165657e1dcbd32137718cb5c45ec4724 [INFO] running `Command { std: "docker" "start" "-a" "fe26d1bf8474a61b2c6231f4cd97c848165657e1dcbd32137718cb5c45ec4724", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "fe26d1bf8474a61b2c6231f4cd97c848165657e1dcbd32137718cb5c45ec4724", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "fe26d1bf8474a61b2c6231f4cd97c848165657e1dcbd32137718cb5c45ec4724", kill_on_drop: false }` [INFO] [stdout] fe26d1bf8474a61b2c6231f4cd97c848165657e1dcbd32137718cb5c45ec4724 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+350d0ef0ec0493e6d21cfb265cb8211a0e74d766" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 24110b5c1a570d51a0bd69df299f0d2312b4f11b521a0518459c9922faa57ea9 [INFO] running `Command { std: "docker" "start" "-a" "24110b5c1a570d51a0bd69df299f0d2312b4f11b521a0518459c9922faa57ea9", kill_on_drop: false }` [INFO] [stderr] Compiling bytes v1.10.1 [INFO] [stderr] Compiling log v0.4.28 [INFO] [stderr] Compiling syn v2.0.106 [INFO] [stderr] Compiling spin v0.9.8 [INFO] [stderr] Compiling convert_case v0.4.0 [INFO] [stderr] Compiling mio v0.8.11 [INFO] [stderr] Compiling byteserde v0.6.2 [INFO] [stderr] Compiling links_core v0.2.12 [INFO] [stderr] Compiling links_nonblocking v0.2.12 [INFO] [stderr] Compiling serde_derive v1.0.228 [INFO] [stderr] Compiling byteserde_derive v0.6.2 [INFO] [stderr] Compiling derive_more v0.99.20 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling byteserde_types v0.6.2 [INFO] [stderr] Compiling soupbintcp_model v4.0.5 [INFO] [stderr] Compiling ouch_model v5.0.1 (/opt/rustwide/workdir) [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 21.08s [INFO] running `Command { std: "docker" "inspect" "24110b5c1a570d51a0bd69df299f0d2312b4f11b521a0518459c9922faa57ea9", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "24110b5c1a570d51a0bd69df299f0d2312b4f11b521a0518459c9922faa57ea9", kill_on_drop: false }` [INFO] [stdout] 24110b5c1a570d51a0bd69df299f0d2312b4f11b521a0518459c9922faa57ea9 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+350d0ef0ec0493e6d21cfb265cb8211a0e74d766" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 87f5ef2147243a5f1f44f29c7c7af18126a49e871655f3919011df0b10d57b5e [INFO] running `Command { std: "docker" "start" "-a" "87f5ef2147243a5f1f44f29c7c7af18126a49e871655f3919011df0b10d57b5e", kill_on_drop: false }` [INFO] [stderr] Compiling anstyle v1.0.13 [INFO] [stderr] Compiling regex-automata v0.4.11 [INFO] [stderr] Compiling getrandom v0.2.16 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling anstyle-parse v0.2.7 [INFO] [stderr] Compiling colorchoice v1.0.4 [INFO] [stderr] Compiling winapi-build v0.1.1 [INFO] [stderr] Compiling anstyle-query v1.1.4 [INFO] [stderr] Compiling jiff v0.2.15 [INFO] [stderr] Compiling num-format v0.4.4 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Compiling kernel32-sys v0.2.2 [INFO] [stderr] Compiling chrono v0.4.42 [INFO] [stderr] Compiling colored v2.2.0 [INFO] [stderr] Compiling anstream v0.6.20 [INFO] [stderr] Compiling rand_chacha v0.3.1 [INFO] [stderr] Compiling rand v0.8.5 [INFO] [stderr] Compiling half v2.6.0 [INFO] [stderr] Compiling byteserde_types v0.6.2 [INFO] [stderr] Compiling clap_lex v0.7.5 [INFO] [stderr] Compiling winapi v0.2.8 [INFO] [stderr] Compiling ciborium-io v0.2.2 [INFO] [stderr] Compiling ciborium-ll v0.2.2 [INFO] [stderr] Compiling mio v0.8.11 [INFO] [stderr] Compiling unicode-width v0.2.1 [INFO] [stderr] Compiling clap_builder v4.5.48 [INFO] [stderr] Compiling criterion-plot v0.5.0 [INFO] [stderr] Compiling ciborium v0.2.2 [INFO] [stderr] Compiling getopts v0.2.24 [INFO] [stderr] Compiling soupbintcp_model v4.0.5 [INFO] [stderr] Compiling term v0.2.14 [INFO] [stderr] Compiling tinytemplate v1.2.1 [INFO] [stderr] Compiling is-terminal v0.4.16 [INFO] [stderr] Compiling anes v0.1.6 [INFO] [stderr] Compiling text-diff v0.4.0 [INFO] [stderr] Compiling regex v1.11.3 [INFO] [stderr] Compiling clap v4.5.48 [INFO] [stderr] Compiling env_filter v0.1.3 [INFO] [stderr] Compiling criterion v0.5.1 [INFO] [stderr] Compiling env_logger v0.11.8 [INFO] [stderr] Compiling links_core v0.2.12 [INFO] [stderr] Compiling links_nonblocking v0.2.12 [INFO] [stderr] Compiling ouch_model v5.0.1 (/opt/rustwide/workdir) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 51.50s [INFO] running `Command { std: "docker" "inspect" "87f5ef2147243a5f1f44f29c7c7af18126a49e871655f3919011df0b10d57b5e", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "87f5ef2147243a5f1f44f29c7c7af18126a49e871655f3919011df0b10d57b5e", kill_on_drop: false }` [INFO] [stdout] 87f5ef2147243a5f1f44f29c7c7af18126a49e871655f3919011df0b10d57b5e [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-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:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+350d0ef0ec0493e6d21cfb265cb8211a0e74d766" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 1df91b85063df5685a3fd42c6b068e84df8461b92c889a959bb9b0f7b096e3da [INFO] running `Command { std: "docker" "start" "-a" "1df91b85063df5685a3fd42c6b068e84df8461b92c889a959bb9b0f7b096e3da", 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/ouch_model-f5222706030d28c6) [INFO] [stdout] [INFO] [stdout] running 66 tests [INFO] [stderr] 2025-10-02T04:08:45.934711199Z INFO (main-Thread) ouch_model::*::_04_modify_order ser: ByteSerializerStack<128> { len: 10, cap: 128, bytes: [INFO] [stderr] 0000: 4d 00 00 00 01 42 00 00 00 0a | M . . . . B . . . . [INFO] [stderr] } [INFO] [stderr] 2025-10-02T04:08:45.934994369Z INFO (main-Thread) ouch_model::*::_04_modify_order msg_inp: ModifyOrder { packet_type: PacketTypeModifyOrder('M'), user_ref_number: UserRefNumber(1), side: Side('B'), quantity: Quantity(10) } [INFO] [stderr] 2025-10-02T04:08:45.935074629Z INFO (main-Thread) ouch_model::*::_04_modify_order msg_out: ModifyOrder { packet_type: PacketTypeModifyOrder('M'), user_ref_number: UserRefNumber(1), side: Side('B'), quantity: Quantity(10) } [INFO] [stderr] 2025-10-02T04:08:45.935358169Z INFO (main-Thread) ouch_model::*::_02_replace_order json_out: {"orig_user_ref_number":1,"user_ref_number":0,"quantity":100,"price":1.2345,"time_in_force":"MARKET_HOURS","display":"VISIBLE","int_mkt_sweep_eligibility":"ELIGIBLE","clt_order_id":"REPLACE_ME____","appendages":{"min_qty":0,"customer_type":"PORT_DEFAULT","max_floor":0,"price_type":"LIMIT","peg_offset":-1.1234,"discretion_price":0.0,"discretion_price_type":"LIMIT","discretion_peg_offset":-1.1234,"post_only":"NO","random_reserves":0,"expire_time":0,"trade_now":"PORT_DEFAULT","handle_inst":"NO_INSTRUCTIONS","group_id":0,"shares_located":"NO"}} [INFO] [stderr] 2025-10-02T04:08:45.935372089Z INFO (main-Thread) ouch_model::*::_03_cancel_order json_out: {"user_ref_number":1,"quantity":0} [INFO] [stderr] 2025-10-02T04:08:45.935448019Z INFO (main-Thread) ouch_model::*::_03_cancel_order ser: ByteSerializerStack<128> { len: 9, cap: 128, bytes: [INFO] [stderr] 0000: 58 00 00 00 01 00 00 00 00 | X . . . . . . . . [INFO] [stderr] } [INFO] [stdout] test model::clt::_04_modify_order::test::test_msg_byteserde ... ok [INFO] [stdout] test model::clt::_03_cancel_order::test::test_msg_serde ... ok [INFO] [stdout] test model::clt::_02_replace_order::test::test_msg_serde ... ok [INFO] [stderr] 2025-10-02T04:08:45.935399869Z INFO (main-Thread) ouch_model::*::_01_enter_order ser: ByteSerializerStack<256> { len: 131, cap: 256, bytes: [INFO] [stderr] 0000: 4f 00 00 00 01 42 00 00 00 64 44 55 4d 4d 59 20 | O . . . . B . . . d D U M M Y . [INFO] [stderr] 0001: 20 20 20 00 00 00 00 00 00 30 39 30 59 41 59 4e | . . . . . . . . . 0 9 0 Y A Y N [INFO] [stderr] 0002: 31 20 20 20 20 20 20 20 20 20 20 20 20 20 00 53 | 1 . . . . . . . . . . . . . . S [INFO] [stderr] 0003: 05 02 3f 3f 3f 3f 05 03 00 00 00 00 02 04 20 05 | . . ? ? ? ? . . . . . . . . . . [INFO] [stderr] 0004: 05 00 00 00 00 02 06 4c 05 07 bf 8f cb 92 09 09 | . . . . . . . L . . ¿ . Ë . . . [INFO] [stderr] 0005: 00 00 00 00 00 00 00 00 02 0a 4c 05 0b bf 8f cb | . . . . . . . . . . L . . ¿ . Ë [INFO] [stderr] 0006: 92 02 0c 4e 05 0d 00 00 00 00 05 0e 3f 3f 3f 3f | . . . N . . . . . . . . ? ? ? ? [INFO] [stderr] 0007: 05 0f 00 00 00 00 02 10 20 02 11 20 03 18 00 00 | . . . . . . . . . . . . . . . . [INFO] [stderr] 0008: 02 19 4e | . . N [INFO] [stderr] } [INFO] [stderr] 2025-10-02T04:08:45.935524189Z INFO (main-Thread) ouch_model::*::_02_replace_order ser: ByteSerializerStack<128> { len: 111, cap: 128, bytes: [INFO] [stderr] 0000: 55 00 00 00 01 00 00 00 00 00 00 00 64 00 00 00 | U . . . . . . . . . . . d . . . [INFO] [stderr] 0001: 00 00 00 30 39 30 59 59 52 45 50 4c 41 43 45 5f | . . . 0 9 0 Y Y R E P L A C E _ [INFO] [stderr] 0002: 4d 45 5f 5f 5f 5f 00 47 05 03 00 00 00 00 02 04 | M E _ _ _ _ . G . . . . . . . . [INFO] [stderr] 0003: 20 05 05 00 00 00 00 02 06 4c 05 07 bf 8f cb 92 | . . . . . . . . . L . . ¿ . Ë . [INFO] [stderr] 0004: 09 09 00 00 00 00 00 00 00 00 02 0a 4c 05 0b bf | . . . . . . . . . . . . L . . ¿ [INFO] [stderr] 0005: 8f cb 92 02 0c 4e 05 0d 00 00 00 00 05 0f 00 00 | . Ë . . . N . . . . . . . . . . [INFO] [stderr] 0006: 00 00 02 10 20 02 11 20 03 18 00 00 02 19 4e | . . . . . . . . . . . . . . N [INFO] [stderr] } [INFO] [stderr] 2025-10-02T04:08:45.936325159Z INFO (main-Thread) ouch_model::*::_02_replace_order msg_inp: ReplaceOrder { packet_type: PacketTypeReplaceOrder('U'), orig_user_ref_number: UserRefNumber(1), user_ref_number: UserRefNumber(0), quantity: Quantity(100), price: Price(1.2345), time_in_force: TimeInForce('0'), display: Display('Y'), int_mkt_sweep_eligibility: IntMktSweepEligibility('Y'), clt_order_id: CltOrderId("REPLACE_ME____"), appendage_length: 71, appendages: ReplaceOrderAppendage { min_qty: Some(TagValueElement(5, 3, MinQty(0))), customer_type: Some(TagValueElement(2, 4, CustomerType(' '))), max_floor: Some(TagValueElement(5, 5, MaxFloor(0))), price_type: Some(TagValueElement(2, 6, PriceType('L'))), peg_offset: Some(TagValueElement(5, 7, PegOffset(-1.1234))), discretion_price: Some(TagValueElement(9, 9, DiscretionPrice(0.0))), discretion_price_type: Some(TagValueElement(2, 10, DiscretionPriceType('L'))), discretion_peg_offset: Some(TagValueElement(5, 11, DiscretionPegOffset(-1.1234))), post_only: Some(TagValueElement(2, 12, PostOnly('N'))), random_reserves: Some(TagValueElement(5, 13, RandomReserves(0))), expire_time: Some(TagValueElement(5, 15, ExpireTime(0))), trade_now: Some(TagValueElement(2, 16, TradeNow(' '))), handle_inst: Some(TagValueElement(2, 17, HandleInst(' '))), group_id: Some(TagValueElement(3, 24, GroupId(0))), shares_located: Some(TagValueElement(2, 25, SharesLocated('N'))) } } [INFO] [stderr] 2025-10-02T04:08:45.936715979Z INFO (main-Thread) ouch_model::*::_02_replace_order msg_out: ReplaceOrder { packet_type: PacketTypeReplaceOrder('U'), orig_user_ref_number: UserRefNumber(1), user_ref_number: UserRefNumber(0), quantity: Quantity(100), price: Price(1.2345), time_in_force: TimeInForce('0'), display: Display('Y'), int_mkt_sweep_eligibility: IntMktSweepEligibility('Y'), clt_order_id: CltOrderId("REPLACE_ME____"), appendage_length: 71, appendages: ReplaceOrderAppendage { min_qty: Some(TagValueElement(5, 3, MinQty(0))), customer_type: Some(TagValueElement(2, 4, CustomerType(' '))), max_floor: Some(TagValueElement(5, 5, MaxFloor(0))), price_type: Some(TagValueElement(2, 6, PriceType('L'))), peg_offset: Some(TagValueElement(5, 7, PegOffset(-1.1234))), discretion_price: Some(TagValueElement(9, 9, DiscretionPrice(0.0))), discretion_price_type: Some(TagValueElement(2, 10, DiscretionPriceType('L'))), discretion_peg_offset: Some(TagValueElement(5, 11, DiscretionPegOffset(-1.1234))), post_only: Some(TagValueElement(2, 12, PostOnly('N'))), random_reserves: Some(TagValueElement(5, 13, RandomReserves(0))), expire_time: Some(TagValueElement(5, 15, ExpireTime(0))), trade_now: Some(TagValueElement(2, 16, TradeNow(' '))), handle_inst: Some(TagValueElement(2, 17, HandleInst(' '))), group_id: Some(TagValueElement(3, 24, GroupId(0))), shares_located: Some(TagValueElement(2, 25, SharesLocated('N'))) } } [INFO] [stderr] 2025-10-02T04:08:45.935823629Z INFO (main-Thread) ouch_model::*::_03_cancel_order msg_inp: CancelOrder { packet_type: PacketTypeCancelOrder('X'), user_ref_number: UserRefNumber(1), quantity: Quantity(0) } [INFO] [stderr] 2025-10-02T04:08:45.937198129Z INFO (main-Thread) ouch_model::*::_03_cancel_order msg_out: CancelOrder { packet_type: PacketTypeCancelOrder('X'), user_ref_number: UserRefNumber(1), quantity: Quantity(0) } [INFO] [stderr] 2025-10-02T04:08:45.936112809Z INFO (main-Thread) ouch_model::*::_05_account_query_req json_out: {} [INFO] [stdout] test model::clt::_02_replace_order::test::test_msg_byteserde ... ok [INFO] [stdout] test model::clt::_03_cancel_order::test::test_msg_byteserde ... ok [INFO] [stdout] test model::clt::_05_account_query_req::test::test_msg_serde ... ok [INFO] [stderr] 2025-10-02T04:08:45.936104079Z INFO (main-Thread) ouch_model::*::_01_enter_order msg_inp: EnterOrder { packet_type: PacketTypeEnterOrder('O'), user_ref_number: UserRefNumber(1), side: Side('B'), quantity: Quantity(100), symbol: Symbol("DUMMY "), price: Price(1.2345), time_in_force: TimeInForce('0'), display: Display('Y'), capacity: Capacity('A'), int_mkt_sweep_eligibility: IntMktSweepEligibility('Y'), cross_type: CrossType('N'), clt_order_id: CltOrderId("1 "), appendage_length: 83, appendages: EnterOrderAppendage { firm: Some(TagValueElement(5, 2, Firm("????"))), min_qty: Some(TagValueElement(5, 3, MinQty(0))), customer_type: Some(TagValueElement(2, 4, CustomerType(' '))), max_floor: Some(TagValueElement(5, 5, MaxFloor(0))), price_type: Some(TagValueElement(2, 6, PriceType('L'))), peg_offset: Some(TagValueElement(5, 7, PegOffset(-1.1234))), discretion_price: Some(TagValueElement(9, 9, DiscretionPrice(0.0))), discretion_price_type: Some(TagValueElement(2, 10, DiscretionPriceType('L'))), discretion_peg_offset: Some(TagValueElement(5, 11, DiscretionPegOffset(-1.1234))), post_only: Some(TagValueElement(2, 12, PostOnly('N'))), random_reserves: Some(TagValueElement(5, 13, RandomReserves(0))), route: Some(TagValueElement(5, 14, Route("????"))), expire_time: Some(TagValueElement(5, 15, ExpireTime(0))), trade_now: Some(TagValueElement(2, 16, TradeNow(' '))), handle_inst: Some(TagValueElement(2, 17, HandleInst(' '))), group_id: Some(TagValueElement(3, 24, GroupId(0))), shares_located: Some(TagValueElement(2, 25, SharesLocated('N'))) } } [INFO] [stderr] 2025-10-02T04:08:45.937802719Z INFO (main-Thread) ouch_model::*::_01_enter_order msg_out: EnterOrder { packet_type: PacketTypeEnterOrder('O'), user_ref_number: UserRefNumber(1), side: Side('B'), quantity: Quantity(100), symbol: Symbol("DUMMY "), price: Price(1.2345), time_in_force: TimeInForce('0'), display: Display('Y'), capacity: Capacity('A'), int_mkt_sweep_eligibility: IntMktSweepEligibility('Y'), cross_type: CrossType('N'), clt_order_id: CltOrderId("1 "), appendage_length: 83, appendages: EnterOrderAppendage { firm: Some(TagValueElement(5, 2, Firm("????"))), min_qty: Some(TagValueElement(5, 3, MinQty(0))), customer_type: Some(TagValueElement(2, 4, CustomerType(' '))), max_floor: Some(TagValueElement(5, 5, MaxFloor(0))), price_type: Some(TagValueElement(2, 6, PriceType('L'))), peg_offset: Some(TagValueElement(5, 7, PegOffset(-1.1234))), discretion_price: Some(TagValueElement(9, 9, DiscretionPrice(0.0))), discretion_price_type: Some(TagValueElement(2, 10, DiscretionPriceType('L'))), discretion_peg_offset: Some(TagValueElement(5, 11, DiscretionPegOffset(-1.1234))), post_only: Some(TagValueElement(2, 12, PostOnly('N'))), random_reserves: Some(TagValueElement(5, 13, RandomReserves(0))), route: Some(TagValueElement(5, 14, Route("????"))), expire_time: Some(TagValueElement(5, 15, ExpireTime(0))), trade_now: Some(TagValueElement(2, 16, TradeNow(' '))), handle_inst: Some(TagValueElement(2, 17, HandleInst(' '))), group_id: Some(TagValueElement(3, 24, GroupId(0))), shares_located: Some(TagValueElement(2, 25, SharesLocated('N'))) } } [INFO] [stdout] test model::clt::_01_enter_order::test::test_msg_byteserde ... ok [INFO] [stdout] test model::clt::_04_modify_order::test::test_msg_serde ... ok [INFO] [stdout] test model::field_types::price::test::test_price ... ok [INFO] [stderr] 2025-10-02T04:08:45.935878409Z INFO (main-Thread) ouch_model::*::_04_modify_order json_out: {"user_ref_number":1,"side":"BUY","quantity":10} [INFO] [stderr] 2025-10-02T04:08:45.938007869Z INFO (main-Thread) ouch_model::*::price msg_in: Price(1.1234) [INFO] [stderr] 2025-10-02T04:08:45.938391769Z INFO (main-Thread) ouch_model::*::price json_out: 1.1234 [INFO] [stderr] 2025-10-02T04:08:45.938440909Z INFO (main-Thread) ouch_model::*::price msg_out: Price(1.1234) [INFO] [stderr] 2025-10-02T04:08:45.938565119Z INFO (main-Thread) ouch_model::*::timestamp default timestamp: Timestamp(14925938449909) [INFO] [stderr] 2025-10-02T04:08:45.938632979Z INFO (main-Thread) ouch_model::*::timestamp one_th_nano_past_midnight: 2025-10-02T00:00:00.000001 [INFO] [stdout] test model::field_types::timestamp::test::test_timestamp ... ok [INFO] [stdout] test model::optional_filed_types::optional_values::bbo_weight_indicator::test::test_msg_serde ... ok [INFO] [stdout] test model::optional_filed_types::optional_values::customer_type::test::test_msg_serde ... ok [INFO] [stdout] test model::optional_filed_types::optional_values::discretion_peg_offset::test::test_msg_serde ... ok [INFO] [stderr] 2025-10-02T04:08:45.938590519Z INFO (main-Thread) ouch_model::*::bbo_weight_indicator msg_inp: TagValueElement(2, 18, BBOWeightIndicator('0')) [INFO] [stderr] 2025-10-02T04:08:45.938697899Z INFO (main-Thread) ouch_model::*::timestamp nanos_shift: 1000, timestamp: Timestamp(1000) [INFO] [stderr] 2025-10-02T04:08:45.938758129Z INFO (main-Thread) ouch_model::*::bbo_weight_indicator json_out: "ZERO_POINT_2" [INFO] [stderr] 2025-10-02T04:08:45.938901569Z INFO (main-Thread) ouch_model::*::bbo_weight_indicator msg_out: TagValueElement(2, 18, BBOWeightIndicator('0')) [INFO] [stderr] 2025-10-02T04:08:45.939141439Z INFO (main-Thread) ouch_model::*::customer_type msg_inp: TagValueElement(2, 4, CustomerType('N')) [INFO] [stderr] 2025-10-02T04:08:45.939212359Z INFO (main-Thread) ouch_model::*::customer_type json_out: "NON_RETAIL" [INFO] [stderr] 2025-10-02T04:08:45.939277459Z INFO (main-Thread) ouch_model::*::customer_type msg_out: TagValueElement(2, 4, CustomerType('N')) [INFO] [stderr] 2025-10-02T04:08:45.939393969Z INFO (main-Thread) ouch_model::*::discretion_peg_offset msg_inp: TagValueElement(5, 11, DiscretionPegOffset(-1.1234)) [INFO] [stderr] 2025-10-02T04:08:45.939459179Z INFO (main-Thread) ouch_model::*::discretion_peg_offset json_out: -1.1234 [INFO] [stderr] 2025-10-02T04:08:45.939502179Z INFO (main-Thread) ouch_model::*::discretion_peg_offset msg_out: TagValueElement(5, 11, DiscretionPegOffset(-1.1234)) [INFO] [stderr] 2025-10-02T04:08:45.939657509Z INFO (main-Thread) ouch_model::*::discretion_price msg_inp: TagValueElement(9, 9, DiscretionPrice(1.1234)) [INFO] [stderr] 2025-10-02T04:08:45.939730049Z INFO (main-Thread) ouch_model::*::discretion_price json_out: 1.1234 [INFO] [stderr] 2025-10-02T04:08:45.939769909Z INFO (main-Thread) ouch_model::*::discretion_price msg_out: TagValueElement(9, 9, DiscretionPrice(1.1234)) [INFO] [stderr] 2025-10-02T04:08:45.939942659Z INFO (main-Thread) ouch_model::*::discretion_price_type msg_inp: TagValueElement(2, 10, DiscretionPriceType('L')) [INFO] [stderr] 2025-10-02T04:08:45.940025639Z INFO (main-Thread) ouch_model::*::discretion_price_type json_out: "LIMIT" [INFO] [stdout] test model::optional_filed_types::optional_values::discretion_price::test::test_msg_serde ... ok [INFO] [stderr] 2025-10-02T04:08:45.940079319Z INFO (main-Thread) ouch_model::*::discretion_price_type msg_out: TagValueElement(2, 10, DiscretionPriceType('L')) [INFO] [stderr] 2025-10-02T04:08:45.940266729Z INFO (main-Thread) ouch_model::*::user_ref next: UserRefNumber(1) [INFO] [stdout] test model::optional_filed_types::optional_values::discretion_price_type::test::test_msg_serde ... ok [INFO] [stderr] 2025-10-02T04:08:45.940356059Z INFO (main-Thread) ouch_model::*::user_ref next: UserRefNumber(2) [INFO] [stderr] 2025-10-02T04:08:45.940279169Z INFO (main-Thread) ouch_model::*::display_price msg_inp: TagValueElement(9, 23, DisplayPrice(1.1234)) [INFO] [stderr] 2025-10-02T04:08:45.936196889Z INFO (main-Thread) ouch_model::*::clt_order_id next: CltOrderId("1 ") [INFO] [stderr] 2025-10-02T04:08:45.940506059Z INFO (main-Thread) ouch_model::*::display_qty msg_inp: TagValueElement(5, 22, DisplayQty(1)) [INFO] [stderr] 2025-10-02T04:08:45.940528159Z INFO (main-Thread) ouch_model::*::clt_order_id next: CltOrderId("2 ") [INFO] [stderr] 2025-10-02T04:08:45.940616759Z INFO (main-Thread) ouch_model::*::clt_order_id next: CltOrderId("3 ") [INFO] [stderr] 2025-10-02T04:08:45.940723259Z INFO (main-Thread) ouch_model::*::display_qty json_out: 1 [INFO] [stderr] 2025-10-02T04:08:45.940769389Z INFO (main-Thread) ouch_model::*::display_qty msg_out: TagValueElement(5, 22, DisplayQty(1)) [INFO] [stderr] 2025-10-02T04:08:45.940783059Z INFO (main-Thread) ouch_model::*::expire_time msg_inp: TagValueElement(5, 15, ExpireTime(1)) [INFO] [stderr] 2025-10-02T04:08:45.940895519Z INFO (main-Thread) ouch_model::*::expire_time json_out: 1 [INFO] [stderr] 2025-10-02T04:08:45.940943509Z INFO (main-Thread) ouch_model::*::expire_time msg_out: TagValueElement(5, 15, ExpireTime(1)) [INFO] [stderr] 2025-10-02T04:08:45.940561099Z INFO (main-Thread) ouch_model::*::display_price json_out: 1.1234 [INFO] [stderr] 2025-10-02T04:08:45.941106479Z INFO (main-Thread) ouch_model::*::firm msg_inp: TagValueElement(5, 2, Firm("ABCD")) [INFO] [stderr] 2025-10-02T04:08:45.941175849Z INFO (main-Thread) ouch_model::*::firm msg_inp: TagValueElement(5, 2, Firm(" AB")) [INFO] [stderr] 2025-10-02T04:08:45.941244379Z INFO (main-Thread) ouch_model::*::firm json_out: "AB" [INFO] [stdout] test model::field_types::user_ref::test::test_user_ref_number_iterator ... ok [INFO] [stdout] test model::field_types::clt_order_id::test::test_clt_order_id_iterator ... ok [INFO] [stdout] test model::optional_filed_types::optional_values::display_qty::test::test_msg_serde ... ok [INFO] [stderr] 2025-10-02T04:08:45.941297299Z INFO (main-Thread) ouch_model::*::firm msg_out: TagValueElement(5, 2, Firm(" AB")) [INFO] [stdout] test model::optional_filed_types::optional_values::expire_time::test::test_msg_serde ... ok [INFO] [stderr] 2025-10-02T04:08:45.941139249Z INFO (main-Thread) ouch_model::*::display_price msg_out: TagValueElement(9, 23, DisplayPrice(1.1234)) [INFO] [stdout] test model::optional_filed_types::optional_values::firm::test::test_msg_serde ... ok [INFO] [stdout] test model::optional_filed_types::optional_values::display_price::test::test_msg_serde ... ok [INFO] [stderr] 2025-10-02T04:08:45.944475339Z INFO (main-Thread) ouch_model::*::handle_inst msg_inp: TagValueElement(2, 17, HandleInst('I')) [INFO] [stderr] 2025-10-02T04:08:45.944493269Z INFO (main-Thread) ouch_model::*::max_floor msg_inp: TagValueElement(5, 5, MaxFloor(1)) [INFO] [stderr] 2025-10-02T04:08:45.944553279Z INFO (main-Thread) ouch_model::*::handle_inst json_out: "IMBALANCE_ONLY" [INFO] [stderr] 2025-10-02T04:08:45.944654629Z INFO (main-Thread) ouch_model::*::handle_inst msg_out: TagValueElement(2, 17, HandleInst('I')) [INFO] [stderr] 2025-10-02T04:08:45.944606419Z INFO (main-Thread) ouch_model::*::max_floor json_out: 1 [INFO] [stderr] 2025-10-02T04:08:45.944777789Z INFO (main-Thread) ouch_model::*::max_floor msg_out: TagValueElement(5, 5, MaxFloor(1)) [INFO] [stdout] test model::optional_filed_types::optional_values::handle_inst::test::test_msg_serde ... ok [INFO] [stdout] test model::optional_filed_types::optional_values::max_floor::test::test_msg_serde ... ok [INFO] [stderr] 2025-10-02T04:08:45.944992768Z INFO (main-Thread) ouch_model::*::peg_offset msg_inp: TagValueElement(5, 7, PegOffset(-1.1234)) [INFO] [stderr] 2025-10-02T04:08:45.945091919Z INFO (main-Thread) ouch_model::*::peg_offset json_out: -1.1234 [INFO] [stderr] 2025-10-02T04:08:45.945166019Z INFO (main-Thread) ouch_model::*::peg_offset msg_out: TagValueElement(5, 7, PegOffset(-1.1234)) [INFO] [stdout] test model::optional_filed_types::optional_values::peg_offset::test::test_msg_serde ... ok [INFO] [stdout] test model::optional_filed_types::optional_values::group_id::test::test_msg_serde ... ok [INFO] [stdout] test model::optional_filed_types::optional_values::post_only::test::test_msg_serde ... ok [INFO] [stdout] test model::optional_filed_types::optional_values::price_type::test::test_msg_serde ... ok [INFO] [stderr] 2025-10-02T04:08:45.947331519Z INFO (main-Thread) ouch_model::*::group_id msg_inp: TagValueElement(3, 24, GroupId(1)) [INFO] [stderr] 2025-10-02T04:08:45.949271679Z INFO (main-Thread) ouch_model::*::post_only msg_inp: TagValueElement(2, 12, PostOnly('P')) [INFO] [stderr] 2025-10-02T04:08:45.962330808Z INFO (main-Thread) ouch_model::*::group_id json_out: 1 [INFO] [stderr] 2025-10-02T04:08:45.962365219Z INFO (main-Thread) ouch_model::*::post_only json_out: "YES" [INFO] [stderr] 2025-10-02T04:08:45.962427168Z INFO (main-Thread) ouch_model::*::group_id msg_out: TagValueElement(3, 24, GroupId(1)) [INFO] [stderr] 2025-10-02T04:08:45.962650358Z INFO (main-Thread) ouch_model::*::post_only msg_out: TagValueElement(2, 12, PostOnly('P')) [INFO] [stderr] 2025-10-02T04:08:45.962671428Z INFO (main-Thread) ouch_model::*::price_type msg_inp: TagValueElement(2, 6, PriceType('L')) [INFO] [stderr] 2025-10-02T04:08:45.962773088Z INFO (main-Thread) ouch_model::*::price_type json_out: "LIMIT" [INFO] [stderr] 2025-10-02T04:08:45.962829788Z INFO (main-Thread) ouch_model::*::price_type msg_out: TagValueElement(2, 6, PriceType('L')) [INFO] [stderr] 2025-10-02T04:08:45.966295958Z INFO (main-Thread) ouch_model::*::_05_account_query_req ser: ByteSerializerStack<128> { len: 1, cap: 128, bytes: [INFO] [stderr] 0000: 51 | Q [INFO] [stderr] } [INFO] [stderr] 2025-10-02T04:08:45.966406718Z INFO (main-Thread) ouch_model::*::_05_account_query_req msg_inp: AccountQueryRequest { packet_type: PacketTypeAccountQueryRequest('Q') } [INFO] [stderr] 2025-10-02T04:08:45.966477568Z INFO (main-Thread) ouch_model::*::_05_account_query_req msg_out: AccountQueryRequest { packet_type: PacketTypeAccountQueryRequest('Q') } [INFO] [stdout] test model::clt::_05_account_query_req::test::test_msg_byteserde ... ok [INFO] [stderr] 2025-10-02T04:08:45.966624118Z INFO (main-Thread) ouch_model::*::order_reference_number next: OrderReferenceNumber(1) [INFO] [stdout] test model::field_types::order_reference_number::test::test_order_ref_number_iterator ... ok [INFO] [stderr] 2025-10-02T04:08:45.966682198Z INFO (main-Thread) ouch_model::*::order_reference_number next: OrderReferenceNumber(2) [INFO] [stdout] test model::optional_filed_types::optional_values::secondary_ord_ref_num::test::test_msg_serde ... ok [INFO] [stderr] 2025-10-02T04:08:45.966673358Z INFO (main-Thread) ouch_model::*::secondary_ord_ref_num msg_inp: TagValueElement(9, 1, SecondaryOrdRefNum(1)) [INFO] [stdout] test model::optional_filed_types::optional_values::min_qty::test::test_msg_serde ... ok [INFO] [stderr] 2025-10-02T04:08:45.966780988Z INFO (main-Thread) ouch_model::*::secondary_ord_ref_num json_out: 1 [INFO] [stdout] test model::optional_filed_types::optional_values::trade_now::test::test_msg_serde ... ok [INFO] [stderr] 2025-10-02T04:08:45.966853668Z INFO (main-Thread) ouch_model::*::secondary_ord_ref_num msg_out: TagValueElement(9, 1, SecondaryOrdRefNum(1)) [INFO] [stdout] test model::svc::_00_system_event::test::test_msg_byteserde ... ok [INFO] [stderr] 2025-10-02T04:08:45.966809848Z INFO (main-Thread) ouch_model::*::min_qty msg_inp: TagValueElement(5, 3, MinQty(1)) [INFO] [stdout] test model::optional_filed_types::optional_values::shares_located::test::test_msg_serde ... ok [INFO] [stderr] 2025-10-02T04:08:45.967086888Z INFO (main-Thread) ouch_model::*::min_qty json_out: 1 [INFO] [stdout] test model::svc::_00_system_event::test::test_msg_serde ... ok [INFO] [stderr] 2025-10-02T04:08:45.967147918Z INFO (main-Thread) ouch_model::*::min_qty msg_out: TagValueElement(5, 3, MinQty(1)) [INFO] [stderr] 2025-10-02T04:08:45.967206628Z INFO (main-Thread) ouch_model::*::trade_now msg_inp: TagValueElement(2, 16, TradeNow('Y')) [INFO] [stderr] 2025-10-02T04:08:45.967412378Z INFO (main-Thread) ouch_model::*::_00_system_event ser: ByteSerializerStack<128> { len: 10, cap: 128, bytes: [INFO] [stderr] 0000: 53 00 00 0d 93 38 fb 00 24 53 | S . . . . 8 û . $ S [INFO] [stderr] } [INFO] [stderr] 2025-10-02T04:08:45.967448558Z INFO (main-Thread) ouch_model::*::trade_now json_out: "YES" [INFO] [stderr] 2025-10-02T04:08:45.967561098Z INFO (main-Thread) ouch_model::*::_00_system_event msg_inp: SystemEvent { packet_type: PacketTypeSystemEvent('S'), timestamp: Timestamp(14925967327268), event_code: EventCode('S') } [INFO] [stderr] 2025-10-02T04:08:45.967732778Z INFO (main-Thread) ouch_model::*::trade_now msg_out: TagValueElement(2, 16, TradeNow('Y')) [INFO] [stderr] 2025-10-02T04:08:45.967807798Z INFO (main-Thread) ouch_model::*::_00_system_event msg_out: SystemEvent { packet_type: PacketTypeSystemEvent('S'), timestamp: Timestamp(14925967327268), event_code: EventCode('S') } [INFO] [stderr] 2025-10-02T04:08:45.968283958Z INFO (main-Thread) ouch_model::*::shares_located msg_inp: TagValueElement(2, 25, SharesLocated('Y')) [INFO] [stderr] 2025-10-02T04:08:45.968360598Z INFO (main-Thread) ouch_model::*::shares_located json_out: "YES" [INFO] [stderr] 2025-10-02T04:08:45.968410718Z INFO (main-Thread) ouch_model::*::shares_located msg_out: TagValueElement(2, 25, SharesLocated('Y')) [INFO] [stderr] 2025-10-02T04:08:45.968550558Z INFO (main-Thread) ouch_model::*::_00_system_event json_out: {"timestamp":1,"event_code":"START_OF_DAY"} [INFO] [stderr] 2025-10-02T04:08:45.968499628Z INFO (main-Thread) ouch_model::*::_01_order_accepted ser: ByteSerializerStack<256> { len: 148, cap: 256, bytes: [INFO] [stderr] 0000: 41 00 00 0d 93 39 0b f5 28 00 00 00 01 42 00 00 | A . . . . 9 . õ ( . . . . B . . [INFO] [stderr] 0001: 00 64 44 55 4d 4d 59 20 20 20 20 00 00 00 00 00 | . d D U M M Y . . . . . . . . . [INFO] [stderr] 0002: 00 30 39 30 59 00 00 00 00 00 00 00 01 41 59 4e | . 0 9 0 Y . . . . . . . . A Y N [INFO] [stderr] 0003: 4c 31 20 20 20 20 20 20 20 20 20 20 20 20 20 00 | L 1 . . . . . . . . . . . . . . [INFO] [stderr] 0004: 53 05 02 3f 3f 3f 3f 05 03 00 00 00 00 02 04 20 | S . . ? ? ? ? . . . . . . . . . [INFO] [stderr] 0005: 05 05 00 00 00 00 02 06 4c 05 07 bf 8f cb 92 09 | . . . . . . . . L . . ¿ . Ë . . [INFO] [stderr] 0006: 09 00 00 00 00 00 00 00 00 02 0a 4c 05 0b bf 8f | . . . . . . . . . . . L . . ¿ . [INFO] [stderr] 0007: cb 92 02 0c 4e 05 0d 00 00 00 00 05 0e 3f 3f 3f | Ë . . . N . . . . . . . . ? ? ? [INFO] [stderr] 0008: 3f 05 0f 00 00 00 00 02 10 20 02 11 20 03 18 00 | ? . . . . . . . . . . . . . . . [INFO] [stderr] 0009: 00 02 19 4e | . . . N [INFO] [stderr] } [INFO] [stderr] 2025-10-02T04:08:45.969622338Z INFO (main-Thread) ouch_model::*::_01_order_accepted msg_inp: OrderAccepted { packet_type: PacketTypeOrderAccepted('A'), timestamp: Timestamp(14925968438568), user_ref_number: UserRefNumber(1), side: Side('B'), quantity: Quantity(100), symbol: Symbol("DUMMY "), price: Price(1.2345), time_in_force: TimeInForce('0'), display: Display('Y'), order_reference_number: OrderReferenceNumber(1), capacity: Capacity('A'), int_mkt_sweep_eligibility: IntMktSweepEligibility('Y'), cross_type: CrossType('N'), order_state: OrderState('L'), clt_order_id: CltOrderId("1 "), appendage_length: 83, appendages: OrderAcceptedAppendage { firm: Some(TagValueElement(5, 2, Firm("????"))), min_qty: Some(TagValueElement(5, 3, MinQty(0))), customer_type: Some(TagValueElement(2, 4, CustomerType(' '))), max_floor: Some(TagValueElement(5, 5, MaxFloor(0))), price_type: Some(TagValueElement(2, 6, PriceType('L'))), peg_offset: Some(TagValueElement(5, 7, PegOffset(-1.1234))), discretion_price: Some(TagValueElement(9, 9, DiscretionPrice(0.0))), discretion_price_type: Some(TagValueElement(2, 10, DiscretionPriceType('L'))), discretion_peg_offset: Some(TagValueElement(5, 11, DiscretionPegOffset(-1.1234))), post_only: Some(TagValueElement(2, 12, PostOnly('N'))), random_reserves: Some(TagValueElement(5, 13, RandomReserves(0))), route: Some(TagValueElement(5, 14, Route("????"))), expire_time: Some(TagValueElement(5, 15, ExpireTime(0))), trade_now: Some(TagValueElement(2, 16, TradeNow(' '))), handle_inst: Some(TagValueElement(2, 17, HandleInst(' '))), bbo_weight_indicator: None, group_id: Some(TagValueElement(3, 24, GroupId(0))), shares_located: Some(TagValueElement(2, 25, SharesLocated('N'))) } } [INFO] [stderr] 2025-10-02T04:08:45.969466948Z INFO (main-Thread) ouch_model::*::_02_order_replaced ser: ByteSerializerStack<128> { len: 105, cap: 128, bytes: [INFO] [stderr] 0000: 55 00 00 0d 93 39 1a c3 46 00 00 00 01 00 00 00 | U . . . . 9 . Ã F . . . . . . . [INFO] [stderr] 0001: 01 42 00 00 00 32 44 55 4d 4d 59 20 20 20 20 00 | . B . . . 2 D U M M Y . . . . . [INFO] [stderr] 0002: 00 00 00 00 00 30 39 30 59 00 00 00 00 00 00 00 | . . . . . 0 9 0 Y . . . . . . . [INFO] [stderr] 0003: 00 41 59 4e 4c 52 45 50 4c 41 43 45 5f 4d 45 5f | . A Y N L R E P L A C E _ M E _ [INFO] [stderr] 0004: 5f 5f 5f 00 24 05 02 3f 3f 3f 3f 05 03 00 00 00 | _ _ _ . $ . . ? ? ? ? . . . . . [INFO] [stderr] 0005: 00 05 05 00 00 00 00 02 06 4c 02 0c 4e 05 0f 00 | . . . . . . . . . L . . N . . . [INFO] [stderr] 0006: 00 00 00 02 10 20 02 11 20 | . . . . . . . . . [INFO] [stderr] } [INFO] [stderr] 2025-10-02T04:08:45.970401008Z INFO (main-Thread) ouch_model::*::_02_order_replaced msg_inp: OrderReplaced { packet_type: PacketTypeOrderReplaced('U'), timestamp: Timestamp(14925969408838), orig_user_ref_number: UserRefNumber(1), user_ref_number: UserRefNumber(1), side: Side('B'), quantity: Quantity(50), symbol: Symbol("DUMMY "), price: Price(1.2345), time_in_force: TimeInForce('0'), display: Display('Y'), order_reference_number: OrderReferenceNumber(0), capacity: Capacity('A'), int_mkt_sweep_eligibility: IntMktSweepEligibility('Y'), cross_type: CrossType('N'), order_state: OrderState('L'), clt_order_id: CltOrderId("REPLACE_ME____"), appendage_length: 36, appendages: OrderReplacedAppendage { firm: Some(TagValueElement(5, 2, Firm("????"))), min_qty: Some(TagValueElement(5, 3, MinQty(0))), max_floor: Some(TagValueElement(5, 5, MaxFloor(0))), price_type: Some(TagValueElement(2, 6, PriceType('L'))), post_only: Some(TagValueElement(2, 12, PostOnly('N'))), expire_time: Some(TagValueElement(5, 15, ExpireTime(0))), trade_now: Some(TagValueElement(2, 16, TradeNow(' '))), handle_inst: Some(TagValueElement(2, 17, HandleInst(' '))), bbo_weight_indicator: None } } [INFO] [stderr] 2025-10-02T04:08:45.970775728Z INFO (main-Thread) ouch_model::*::_01_order_accepted msg_out: OrderAccepted { packet_type: PacketTypeOrderAccepted('A'), timestamp: Timestamp(14925968438568), user_ref_number: UserRefNumber(1), side: Side('B'), quantity: Quantity(100), symbol: Symbol("DUMMY "), price: Price(1.2345), time_in_force: TimeInForce('0'), display: Display('Y'), order_reference_number: OrderReferenceNumber(1), capacity: Capacity('A'), int_mkt_sweep_eligibility: IntMktSweepEligibility('Y'), cross_type: CrossType('N'), order_state: OrderState('L'), clt_order_id: CltOrderId("1 "), appendage_length: 83, appendages: OrderAcceptedAppendage { firm: Some(TagValueElement(5, 2, Firm("????"))), min_qty: Some(TagValueElement(5, 3, MinQty(0))), customer_type: Some(TagValueElement(2, 4, CustomerType(' '))), max_floor: Some(TagValueElement(5, 5, MaxFloor(0))), price_type: Some(TagValueElement(2, 6, PriceType('L'))), peg_offset: Some(TagValueElement(5, 7, PegOffset(-1.1234))), discretion_price: Some(TagValueElement(9, 9, DiscretionPrice(0.0))), discretion_price_type: Some(TagValueElement(2, 10, DiscretionPriceType('L'))), discretion_peg_offset: Some(TagValueElement(5, 11, DiscretionPegOffset(-1.1234))), post_only: Some(TagValueElement(2, 12, PostOnly('N'))), random_reserves: Some(TagValueElement(5, 13, RandomReserves(0))), route: Some(TagValueElement(5, 14, Route("????"))), expire_time: Some(TagValueElement(5, 15, ExpireTime(0))), trade_now: Some(TagValueElement(2, 16, TradeNow(' '))), handle_inst: Some(TagValueElement(2, 17, HandleInst(' '))), bbo_weight_indicator: None, group_id: Some(TagValueElement(3, 24, GroupId(0))), shares_located: Some(TagValueElement(2, 25, SharesLocated('N'))) } } [INFO] [stderr] 2025-10-02T04:08:45.971250258Z INFO (main-Thread) ouch_model::*::_02_order_replaced msg_out: OrderReplaced { packet_type: PacketTypeOrderReplaced('U'), timestamp: Timestamp(14925969408838), orig_user_ref_number: UserRefNumber(1), user_ref_number: UserRefNumber(1), side: Side('B'), quantity: Quantity(50), symbol: Symbol("DUMMY "), price: Price(1.2345), time_in_force: TimeInForce('0'), display: Display('Y'), order_reference_number: OrderReferenceNumber(0), capacity: Capacity('A'), int_mkt_sweep_eligibility: IntMktSweepEligibility('Y'), cross_type: CrossType('N'), order_state: OrderState('L'), clt_order_id: CltOrderId("REPLACE_ME____"), appendage_length: 36, appendages: OrderReplacedAppendage { firm: Some(TagValueElement(5, 2, Firm("????"))), min_qty: Some(TagValueElement(5, 3, MinQty(0))), max_floor: Some(TagValueElement(5, 5, MaxFloor(0))), price_type: Some(TagValueElement(2, 6, PriceType('L'))), post_only: Some(TagValueElement(2, 12, PostOnly('N'))), expire_time: Some(TagValueElement(5, 15, ExpireTime(0))), trade_now: Some(TagValueElement(2, 16, TradeNow(' '))), handle_inst: Some(TagValueElement(2, 17, HandleInst(' '))), bbo_weight_indicator: None } } [INFO] [stderr] 2025-10-02T04:08:45.972304098Z INFO (main-Thread) ouch_model::*::_03_order_canceled ser: ByteSerializerStack<128> { len: 22, cap: 128, bytes: [INFO] [stderr] 0000: 43 00 00 0d 93 39 46 12 d0 00 00 00 01 00 00 00 | C . . . . 9 F . Ð . . . . . . . [INFO] [stderr] 0001: 02 00 00 00 00 55 | . . . . . U [INFO] [stderr] } [INFO] [stderr] 2025-10-02T04:08:45.972439728Z INFO (main-Thread) ouch_model::*::_03_order_canceled msg_inp: OrderCanceled { packet_type: PacketTypeOrderCanceled('C'), timestamp: Timestamp(14925972247248), orig_user_ref_number: UserRefNumber(1), user_ref_number: UserRefNumber(2), quantity: Quantity(0), cancel_reason: CancelReason('U') } [INFO] [stderr] 2025-10-02T04:08:45.972543098Z INFO (main-Thread) ouch_model::*::_03_order_canceled msg_out: OrderCanceled { packet_type: PacketTypeOrderCanceled('C'), timestamp: Timestamp(14925972247248), orig_user_ref_number: UserRefNumber(1), user_ref_number: UserRefNumber(2), quantity: Quantity(0), cancel_reason: CancelReason('U') } [INFO] [stderr] 2025-10-02T04:08:45.976524298Z INFO (main-Thread) ouch_model::*::_03_order_canceled json_out: {"timestamp":1,"orig_user_ref_number":1,"user_ref_number":2,"quantity":0,"cancel_reason":"USER_REQUESTED"} [INFO] [stderr] 2025-10-02T04:08:45.976942598Z INFO (main-Thread) ouch_model::*::_04_order_aiq_canceled ser: ByteSerializerStack<128> { len: 32, cap: 128, bytes: [INFO] [stderr] 0000: 44 00 00 0d 93 39 8c ef de 00 00 00 01 00 00 00 | D . . . . 9 . ï Þ . . . . . . . [INFO] [stderr] 0001: 00 51 00 00 00 00 00 00 00 00 00 00 00 00 41 3f | . Q . . . . . . . . . . . . A ? [INFO] [stderr] } [INFO] [stderr] 2025-10-02T04:08:45.977216728Z INFO (main-Thread) ouch_model::*::_04_order_aiq_canceled msg_inp: OrderAiqCanceled { packet_type: PacketTypeOrderAiqCanceled('D'), timestamp: Timestamp(14925976891358), user_ref_number: UserRefNumber(1), decrement_shares: Quantity(0), cancel_aiq_reason: CancelAiqReason('Q'), prevented_from_trading: Quantity(0), execution_price: Price(0.0), liquidity_flag: LiquidityFlag('A'), aiq_strategy: AiqStrategy('?') } [INFO] [stderr] 2025-10-02T04:08:45.977508358Z INFO (main-Thread) ouch_model::*::_04_order_aiq_canceled msg_out: OrderAiqCanceled { packet_type: PacketTypeOrderAiqCanceled('D'), timestamp: Timestamp(14925976891358), user_ref_number: UserRefNumber(1), decrement_shares: Quantity(0), cancel_aiq_reason: CancelAiqReason('Q'), prevented_from_trading: Quantity(0), execution_price: Price(0.0), liquidity_flag: LiquidityFlag('A'), aiq_strategy: AiqStrategy('?') } [INFO] [stderr] 2025-10-02T04:08:45.980543678Z INFO (main-Thread) ouch_model::*::_04_order_aiq_canceled json_out: {"timestamp":1,"user_ref_number":1,"decrement_shares":0,"prevented_from_trading":0,"execution_price":0.0,"liquidity_flag":"ADDED","aiq_strategy":"?"} [INFO] [stderr] 2025-10-02T04:08:45.980963498Z INFO (main-Thread) ouch_model::*::_05_order_executed ser: ByteSerializerStack<128> { len: 119, cap: 128, bytes: [INFO] [stderr] 0000: 45 00 00 0d 93 39 ca 13 e6 00 00 00 01 00 00 00 | E . . . . 9 Ê . æ . . . . . . . [INFO] [stderr] 0001: 64 00 00 00 00 00 00 30 39 41 00 00 00 00 00 00 | d . . . . . . 0 9 A . . . . . . [INFO] [stderr] 0002: 00 00 00 53 05 02 3f 3f 3f 3f 05 03 00 00 00 00 | . . . S . . ? ? ? ? . . . . . . [INFO] [stderr] 0003: 02 04 20 05 05 00 00 00 00 02 06 4c 05 07 bf 8f | . . . . . . . . . . . L . . ¿ . [INFO] [stderr] 0004: cb 92 09 09 00 00 00 00 00 00 00 00 02 0a 4c 05 | Ë . . . . . . . . . . . . . L . [INFO] [stderr] 0005: 0b bf 8f cb 92 02 0c 4e 05 0d 00 00 00 00 05 0e | . ¿ . Ë . . . N . . . . . . . . [INFO] [stderr] 0006: 3f 3f 3f 3f 05 0f 00 00 00 00 02 10 20 02 11 20 | ? ? ? ? . . . . . . . . . . . . [INFO] [stderr] 0007: 03 18 00 00 02 19 4e | . . . . . . N [INFO] [stderr] } [INFO] [stderr] 2025-10-02T04:08:45.981391738Z INFO (main-Thread) ouch_model::*::_02_order_replaced json_out: {"timestamp":1,"orig_user_ref_number":1,"user_ref_number":1,"side":"BUY","quantity":50,"symbol":"DUMMY","price":1.2345,"time_in_force":"MARKET_HOURS","display":"VISIBLE","order_reference_number":0,"capacity":"AGENCY","int_mkt_sweep_eligibility":"ELIGIBLE","cross_type":"CONTINUOUS_MARKET","order_state":"LIVE","clt_order_id":"REPLACE_ME____","appendages":{"firm":"????","min_qty":0,"max_floor":0,"price_type":"LIMIT","post_only":"NO","expire_time":0,"trade_now":"PORT_DEFAULT","handle_inst":"NO_INSTRUCTIONS"}} [INFO] [stderr] 2025-10-02T04:08:45.981391088Z INFO (main-Thread) ouch_model::*::_05_order_executed msg_inp: OrderExecuted { packet_type: PacketTypeOrderExecuted('E'), timestamp: Timestamp(14925980898278), user_ref_number: UserRefNumber(1), quantity: Quantity(100), price: Price(1.2345), liquidity_flag: LiquidityFlag('A'), match_number: MatchNumber(0), appendage_length: 83, appendages: EnterOrderAppendage { firm: Some(TagValueElement(5, 2, Firm("????"))), min_qty: Some(TagValueElement(5, 3, MinQty(0))), customer_type: Some(TagValueElement(2, 4, CustomerType(' '))), max_floor: Some(TagValueElement(5, 5, MaxFloor(0))), price_type: Some(TagValueElement(2, 6, PriceType('L'))), peg_offset: Some(TagValueElement(5, 7, PegOffset(-1.1234))), discretion_price: Some(TagValueElement(9, 9, DiscretionPrice(0.0))), discretion_price_type: Some(TagValueElement(2, 10, DiscretionPriceType('L'))), discretion_peg_offset: Some(TagValueElement(5, 11, DiscretionPegOffset(-1.1234))), post_only: Some(TagValueElement(2, 12, PostOnly('N'))), random_reserves: Some(TagValueElement(5, 13, RandomReserves(0))), route: Some(TagValueElement(5, 14, Route("????"))), expire_time: Some(TagValueElement(5, 15, ExpireTime(0))), trade_now: Some(TagValueElement(2, 16, TradeNow(' '))), handle_inst: Some(TagValueElement(2, 17, HandleInst(' '))), group_id: Some(TagValueElement(3, 24, GroupId(0))), shares_located: Some(TagValueElement(2, 25, SharesLocated('N'))) } } [INFO] [stderr] 2025-10-02T04:08:46.000811868Z INFO (main-Thread) ouch_model::*::_05_order_executed msg_out: OrderExecuted { packet_type: PacketTypeOrderExecuted('E'), timestamp: Timestamp(14925980898278), user_ref_number: UserRefNumber(1), quantity: Quantity(100), price: Price(1.2345), liquidity_flag: LiquidityFlag('A'), match_number: MatchNumber(0), appendage_length: 83, appendages: EnterOrderAppendage { firm: Some(TagValueElement(5, 2, Firm("????"))), min_qty: Some(TagValueElement(5, 3, MinQty(0))), customer_type: Some(TagValueElement(2, 4, CustomerType(' '))), max_floor: Some(TagValueElement(5, 5, MaxFloor(0))), price_type: Some(TagValueElement(2, 6, PriceType('L'))), peg_offset: Some(TagValueElement(5, 7, PegOffset(-1.1234))), discretion_price: Some(TagValueElement(9, 9, DiscretionPrice(0.0))), discretion_price_type: Some(TagValueElement(2, 10, DiscretionPriceType('L'))), discretion_peg_offset: Some(TagValueElement(5, 11, DiscretionPegOffset(-1.1234))), post_only: Some(TagValueElement(2, 12, PostOnly('N'))), random_reserves: Some(TagValueElement(5, 13, RandomReserves(0))), route: Some(TagValueElement(5, 14, Route("????"))), expire_time: Some(TagValueElement(5, 15, ExpireTime(0))), trade_now: Some(TagValueElement(2, 16, TradeNow(' '))), handle_inst: Some(TagValueElement(2, 17, HandleInst(' '))), group_id: Some(TagValueElement(3, 24, GroupId(0))), shares_located: Some(TagValueElement(2, 25, SharesLocated('N'))) } } [INFO] [stderr] 2025-10-02T04:08:46.001475908Z INFO (main-Thread) ouch_model::*::route msg_inp: TagValueElement(5, 14, Route("ABCD")) [INFO] [stderr] 2025-10-02T04:08:46.001637338Z INFO (main-Thread) ouch_model::*::route msg_inp: TagValueElement(5, 14, Route(" AB")) [INFO] [stderr] 2025-10-02T04:08:46.001698508Z INFO (main-Thread) ouch_model::*::route json_out: "AB" [INFO] [stderr] 2025-10-02T04:08:46.001741868Z INFO (main-Thread) ouch_model::*::route msg_out: TagValueElement(5, 14, Route(" AB")) [INFO] [stderr] 2025-10-02T04:08:46.001736728Z INFO (main-Thread) ouch_model::*::_05_order_executed json_out: {"timestamp":1,"user_ref_number":1,"quantity":100,"price":1.2345,"liquidity_flag":"ADDED","match_number":0,"appendages":{"firm":"????","min_qty":0,"customer_type":"PORT_DEFAULT","max_floor":0,"price_type":"LIMIT","peg_offset":-1.1234,"discretion_price":0.0,"discretion_price_type":"LIMIT","discretion_peg_offset":-1.1234,"post_only":"NO","random_reserves":0,"route":"????","expire_time":0,"trade_now":"PORT_DEFAULT","handle_inst":"NO_INSTRUCTIONS","group_id":0,"shares_located":"NO"}} [INFO] [stderr] 2025-10-02T04:08:46.001852718Z INFO (main-Thread) ouch_model::*::random_reserves msg_inp: TagValueElement(5, 13, RandomReserves(1)) [INFO] [stderr] 2025-10-02T04:08:46.005303138Z INFO (main-Thread) ouch_model::*::random_reserves json_out: 1 [INFO] [stderr] 2025-10-02T04:08:46.005361138Z INFO (main-Thread) ouch_model::*::random_reserves msg_out: TagValueElement(5, 13, RandomReserves(1)) [INFO] [stderr] 2025-10-02T04:08:46.005445968Z INFO (main-Thread) ouch_model::*::_01_enter_order json_out: {"user_ref_number":1,"side":"BUY","quantity":100,"symbol":"DUMMY","price":1.2345,"time_in_force":"MARKET_HOURS","display":"VISIBLE","capacity":"AGENCY","int_mkt_sweep_eligibility":"ELIGIBLE","cross_type":"CONTINUOUS_MARKET","clt_order_id":"1","appendages":{"firm":"????","min_qty":0,"customer_type":"PORT_DEFAULT","max_floor":0,"price_type":"LIMIT","peg_offset":-1.1234,"discretion_price":0.0,"discretion_price_type":"LIMIT","discretion_peg_offset":-1.1234,"post_only":"NO","random_reserves":0,"route":"????","expire_time":0,"trade_now":"PORT_DEFAULT","handle_inst":"NO_INSTRUCTIONS","group_id":0,"shares_located":"NO"}} [INFO] [stdout] test model::svc::_01_order_accepted::test::test_msg_byteserde ... ok [INFO] [stdout] test model::svc::_02_order_replaced::test::test_msg_byteserde ... ok [INFO] [stdout] test model::svc::_03_order_canceled::test::test_msg_byteserde ... ok [INFO] [stdout] test model::svc::_03_order_canceled::test::test_msg_serde ... ok [INFO] [stdout] test model::svc::_04_order_aiq_canceled::test::test_msg_byteserde ... ok [INFO] [stdout] test model::svc::_04_order_aiq_canceled::test::test_msg_serde ... ok [INFO] [stdout] test model::svc::_02_order_replaced::test::test_msg_serde ... ok [INFO] [stdout] test model::svc::_05_order_executed::test::test_msg_byteserde ... ok [INFO] [stdout] test model::optional_filed_types::optional_values::route::test::test_msg_serde ... ok [INFO] [stdout] test model::svc::_05_order_executed::test::test_msg_serde ... ok [INFO] [stdout] test model::optional_filed_types::optional_values::random_reserves::test::test_msg_serde ... ok [INFO] [stderr] 2025-10-02T04:08:46.005570348Z INFO (main-Thread) ouch_model::*::_07_order_rejected ser: ByteSerializerStack<128> { len: 29, cap: 128, bytes: [INFO] [stderr] 0000: 4a 00 00 0d 93 3b 40 df 98 00 00 00 01 00 01 31 | J . . . . ; @ ß . . . . . . . 1 [INFO] [stderr] 0001: 20 20 20 20 20 20 20 20 20 20 20 20 20 | . . . . . . . . . . . . . [INFO] [stderr] } [INFO] [stderr] 2025-10-02T04:08:46.005770248Z INFO (main-Thread) ouch_model::*::_07_order_rejected msg_inp: OrderRejected { packet_type: PacketTypeOrderRejected('J'), timestamp: Timestamp(14926005460888), user_ref_number: UserRefNumber(1), reject_reason: OrderRejectReason(1), clt_order_id: CltOrderId("1 ") } [INFO] [stderr] 2025-10-02T04:08:46.007930098Z INFO (main-Thread) ouch_model::*::_07_order_rejected msg_out: OrderRejected { packet_type: PacketTypeOrderRejected('J'), timestamp: Timestamp(14926005460888), user_ref_number: UserRefNumber(1), reject_reason: OrderRejectReason(1), clt_order_id: CltOrderId("1 ") } [INFO] [stderr] 2025-10-02T04:08:46.009432118Z INFO (main-Thread) ouch_model::*::_08_cancel_pending json_out: {"timestamp":1,"user_ref_number":1} [INFO] [stdout] test model::clt::_01_enter_order::test::test_msg_serde ... ok [INFO] [stdout] test model::svc::_07_order_rejected::test::test_msg_byteserde ... ok [INFO] [stderr] 2025-10-02T04:08:46.010343278Z INFO (main-Thread) ouch_model::*::_06_broken_trade ser: ByteSerializerStack<128> { len: 36, cap: 128, bytes: [INFO] [stderr] 0000: 42 00 00 0d 93 3b 8a 8c a6 00 00 00 01 00 00 00 | B . . . . ; . . ¦ . . . . . . . [INFO] [stderr] 0001: 00 00 00 00 01 45 31 20 20 20 20 20 20 20 20 20 | . . . . . E 1 . . . . . . . . . [INFO] [stderr] 0002: 20 20 20 20 | . . . . [INFO] [stderr] } [INFO] [stderr] 2025-10-02T04:08:46.010517188Z INFO (main-Thread) ouch_model::*::_06_broken_trade msg_inp: BrokenTrade { packet_type: PacketTypeBrokenTrade('B'), timestamp: Timestamp(14926010289318), user_ref_number: UserRefNumber(1), match_number: MatchNumber(1), broken_trade_reason: BrokenTradeReason('E'), clt_order_id: CltOrderId("1 ") } [INFO] [stderr] 2025-10-02T04:08:46.010623248Z INFO (main-Thread) ouch_model::*::_06_broken_trade msg_out: BrokenTrade { packet_type: PacketTypeBrokenTrade('B'), timestamp: Timestamp(14926010289318), user_ref_number: UserRefNumber(1), match_number: MatchNumber(1), broken_trade_reason: BrokenTradeReason('E'), clt_order_id: CltOrderId("1 ") } [INFO] [stderr] 2025-10-02T04:08:46.009412618Z INFO (main-Thread) ouch_model::*::_08_cancel_pending ser: ByteSerializerStack<128> { len: 13, cap: 128, bytes: [INFO] [stderr] 0000: 50 00 00 0d 93 3b 7c 0c 8a 00 00 00 01 | P . . . . ; | . . . . . . [INFO] [stderr] } [INFO] [stderr] 2025-10-02T04:08:46.013318668Z INFO (main-Thread) ouch_model::*::_08_cancel_pending msg_inp: CancelPending { packet_type: PacketTypeCancelPending('P'), timestamp: Timestamp(14926009339018), user_ref_number: UserRefNumber(1) } [INFO] [stdout] test model::svc::_08_cancel_pending::test::test_msg_serde ... ok [INFO] [stdout] test model::svc::_06_broken_trade::test::test_msg_byteserde ... ok [INFO] [stdout] test model::svc::_08_cancel_pending::test::test_msg_byteserde ... ok [INFO] [stdout] test model::svc::_09_cancel_reject::test::test_msg_serde ... ok [INFO] [stderr] 2025-10-02T04:08:46.013531118Z INFO (main-Thread) ouch_model::*::_08_cancel_pending msg_out: CancelPending { packet_type: PacketTypeCancelPending('P'), timestamp: Timestamp(14926009339018), user_ref_number: UserRefNumber(1) } [INFO] [stderr] 2025-10-02T04:08:46.013659948Z INFO (main-Thread) ouch_model::*::_09_cancel_reject json_out: {"timestamp":1,"user_ref_number":1} [INFO] [stderr] 2025-10-02T04:08:46.015411698Z INFO (main-Thread) ouch_model::*::_10_priority_update ser: ByteSerializerStack<128> { len: 30, cap: 128, bytes: [INFO] [stderr] 0000: 54 00 00 0d 93 3b d7 e0 78 00 00 00 01 00 00 00 | T . . . . ; × à x . . . . . . . [INFO] [stderr] 0001: 00 00 00 30 39 59 00 00 00 00 00 00 00 00 | . . . 0 9 Y . . . . . . . . [INFO] [stderr] } [INFO] [stderr] 2025-10-02T04:08:46.015670668Z INFO (main-Thread) ouch_model::*::_10_priority_update json_out: {"timestamp":1,"user_ref_number":1,"price":1.2345,"display":"VISIBLE","order_reference_number":0} [INFO] [stderr] 2025-10-02T04:08:46.018340198Z INFO (main-Thread) ouch_model::*::_10_priority_update msg_inp: PriorityUpdate { packet_type: PacketTypePriorityUpdate('T'), timestamp: Timestamp(14926015357048), user_ref_number: UserRefNumber(1), price: Price(1.2345), display: Display('Y'), order_reference_number: OrderReferenceNumber(0) } [INFO] [stderr] 2025-10-02T04:08:46.018494908Z INFO (main-Thread) ouch_model::*::_10_priority_update msg_out: PriorityUpdate { packet_type: PacketTypePriorityUpdate('T'), timestamp: Timestamp(14926015357048), user_ref_number: UserRefNumber(1), price: Price(1.2345), display: Display('Y'), order_reference_number: OrderReferenceNumber(0) } [INFO] [stdout] test model::svc::_10_priority_update::test::test_msg_serde ... ok [INFO] [stdout] test model::svc::_10_priority_update::test::test_msg_byteserde ... ok [INFO] [stdout] test model::svc::_11_order_modified::test::test_msg_serde ... ok [INFO] [stdout] test model::svc::_11_order_modified::test::test_msg_byteserde ... ok [INFO] [stdout] test model::svc::_12_order_restated::test::test_msg_byteserde ... ok [INFO] [stdout] test model::svc::_12_order_restated::test::test_msg_serde ... ok [INFO] [stdout] test model::svc::_13_account_query_res::test::test_msg_byteserde ... ok [INFO] [stdout] test model::svc::_13_account_query_res::test::test_msg_serde ... ok [INFO] [stderr] 2025-10-02T04:08:46.019393648Z INFO (main-Thread) ouch_model::*::_11_order_modified json_out: {"timestamp":1,"user_ref_number":1,"side":"BUY","quantity":1} [INFO] [stderr] 2025-10-02T04:08:46.019545978Z INFO (main-Thread) ouch_model::*::_11_order_modified ser: ByteSerializerStack<128> { len: 18, cap: 128, bytes: [INFO] [stderr] 0000: 4d 00 00 0d 93 3c 0c f2 90 00 00 00 01 42 00 00 | M . . . . < . ò . . . . . B . . [INFO] [stderr] 0001: 00 01 | . . [INFO] [stderr] } [INFO] [stderr] 2025-10-02T04:08:46.019661208Z INFO (main-Thread) ouch_model::*::_11_order_modified msg_inp: OrderModified { packet_type: PacketTypeOrderModified('M'), timestamp: Timestamp(14926018835088), user_ref_number: UserRefNumber(1), side: Side('B'), quantity: Quantity(1) } [INFO] [stderr] 2025-10-02T04:08:46.019740858Z INFO (main-Thread) ouch_model::*::_11_order_modified msg_out: OrderModified { packet_type: PacketTypeOrderModified('M'), timestamp: Timestamp(14926018835088), user_ref_number: UserRefNumber(1), side: Side('B'), quantity: Quantity(1) } [INFO] [stderr] 2025-10-02T04:08:46.020004328Z INFO (main-Thread) ouch_model::*::_12_order_restated ser: ByteSerializerStack<128> { len: 42, cap: 128, bytes: [INFO] [stderr] 0000: 52 00 00 0d 93 3c 1d f6 08 00 00 00 01 52 00 1a | R . . . . < . ö . . . . . R . . [INFO] [stderr] 0001: 05 16 00 00 00 01 09 17 00 00 00 00 00 00 00 00 | . . . . . . . . . . . . . . . . [INFO] [stderr] 0002: 09 01 00 00 00 00 00 00 00 01 | . . . . . . . . . . [INFO] [stderr] } [INFO] [stderr] 2025-10-02T04:08:46.020172908Z INFO (main-Thread) ouch_model::*::_12_order_restated msg_inp: OrderRestated { packet_type: PacketTypeOrderRestated('R'), timestamp: Timestamp(14926019950088), user_ref_number: UserRefNumber(1), restate_reason: RestatedReason('R'), appendage_length: 26, appendages: OrderRestatedAppendage { display_qty: Some(TagValueElement(5, 22, DisplayQty(1))), display_price: Some(TagValueElement(9, 23, DisplayPrice(0.0))), secondary_order_ref_num: Some(TagValueElement(9, 1, SecondaryOrdRefNum(1))) } } [INFO] [stderr] 2025-10-02T04:08:46.020346818Z INFO (main-Thread) ouch_model::*::_12_order_restated msg_out: OrderRestated { packet_type: PacketTypeOrderRestated('R'), timestamp: Timestamp(14926019950088), user_ref_number: UserRefNumber(1), restate_reason: RestatedReason('R'), appendage_length: 26, appendages: OrderRestatedAppendage { display_qty: Some(TagValueElement(5, 22, DisplayQty(1))), display_price: Some(TagValueElement(9, 23, DisplayPrice(0.0))), secondary_order_ref_num: Some(TagValueElement(9, 1, SecondaryOrdRefNum(1))) } } [INFO] [stderr] 2025-10-02T04:08:46.020630068Z INFO (main-Thread) ouch_model::*::_12_order_restated json_out: {"timestamp":1,"user_ref_number":1,"restate_reason":"REFRESH_OF_DISPLAY","appendages":{"display_qty":1,"display_price":0.0,"secondary_order_ref_num":1}} [INFO] [stderr] 2025-10-02T04:08:46.020929848Z INFO (main-Thread) ouch_model::*::_13_account_query_res ser: ByteSerializerStack<128> { len: 13, cap: 128, bytes: [INFO] [stderr] 0000: 51 00 00 0d 93 3c 2c 30 7e 00 00 00 01 | Q . . . . < , 0 . . . . . [INFO] [stderr] } [INFO] [stderr] 2025-10-02T04:08:46.021023888Z INFO (main-Thread) ouch_model::*::_13_account_query_res msg_inp: AccountQueryResponse { packet_type: PacketTypeAccountQueryResponse('Q'), timestamp: Timestamp(14926020882558), next_user_ref_number: UserRefNumber(1) } [INFO] [stderr] 2025-10-02T04:08:46.021093868Z INFO (main-Thread) ouch_model::*::_13_account_query_res msg_out: AccountQueryResponse { packet_type: PacketTypeAccountQueryResponse('Q'), timestamp: Timestamp(14926020882558), next_user_ref_number: UserRefNumber(1) } [INFO] [stderr] 2025-10-02T04:08:46.021296638Z INFO (main-Thread) ouch_model::*::_13_account_query_res json_out: {"timestamp":1,"next_user_ref_number":1} [INFO] [stderr] 2025-10-02T04:08:46.021992928Z INFO (main-Thread) ouch_model::*::_06_broken_trade json_out: {"timestamp":1,"user_ref_number":1,"match_number":1,"broken_trade_reason":"ERRONEOUS","clt_order_id":"1"} [INFO] [stdout] test model::svc::_06_broken_trade::test::test_msg_serde ... ok [INFO] [stderr] 2025-10-02T04:08:46.022165648Z INFO (main-Thread) ouch_model::*::_07_order_rejected json_out: {"timestamp":1,"user_ref_number":1,"reject_reason":1,"clt_order_id":"1"} [INFO] [stderr] 2025-10-02T04:08:46.022405208Z INFO (main-Thread) ouch_model::*::_01_order_accepted json_out: {"timestamp":1,"user_ref_number":1,"side":"BUY","quantity":100,"symbol":"DUMMY","price":1.2345,"time_in_force":"MARKET_HOURS","display":"VISIBLE","order_reference_number":1,"capacity":"AGENCY","int_mkt_sweep_eligibility":"ELIGIBLE","cross_type":"CONTINUOUS_MARKET","order_state":"LIVE","clt_order_id":"1","appendages":{"firm":"????","min_qty":0,"customer_type":"PORT_DEFAULT","max_floor":0,"price_type":"LIMIT","peg_offset":-1.1234,"discretion_price":0.0,"discretion_price_type":"LIMIT","discretion_peg_offset":-1.1234,"post_only":"NO","random_reserves":0,"route":"????","expire_time":0,"trade_now":"PORT_DEFAULT","handle_inst":"NO_INSTRUCTIONS","group_id":0,"shares_located":"NO"}} [INFO] [stdout] test model::svc::_01_order_accepted::test::test_msg_serde ... ok [INFO] [stdout] test model::svc::_07_order_rejected::test::test_msg_serde ... ok [INFO] [stderr] 2025-10-02T04:08:46.029386398Z INFO (main-Thread) ouch_model::*::_09_cancel_reject ser: ByteSerializerStack<128> { len: 13, cap: 128, bytes: [INFO] [stderr] 0000: 49 00 00 0d 93 3c ac 98 7c 00 00 00 01 | I . . . . < ¬ . | . . . . [INFO] [stderr] } [INFO] [stdout] test model::svc::_09_cancel_reject::test::test_msg_byteserde ... ok [INFO] [stderr] 2025-10-02T04:08:46.029535628Z INFO (main-Thread) ouch_model::*::_09_cancel_reject msg_inp: CancelReject { packet_type: PacketTypeCancelReject('I'), timestamp: Timestamp(14926029297788), user_ref_number: UserRefNumber(1) } [INFO] [stderr] 2025-10-02T04:08:46.029614608Z INFO (main-Thread) ouch_model::*::_09_cancel_reject msg_out: CancelReject { packet_type: PacketTypeCancelReject('I'), timestamp: Timestamp(14926029297788), user_ref_number: UserRefNumber(1) } [INFO] [stdout] test model::field_types::price::test::test_price_fail - should panic ... ok [INFO] [stdout] test model::optional_filed_types::optional_values::discretion_price::test::test_msg_fail - should panic ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 66 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.14s [INFO] [stdout] [INFO] [stderr] Doc-tests ouch_model [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "1df91b85063df5685a3fd42c6b068e84df8461b92c889a959bb9b0f7b096e3da", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "1df91b85063df5685a3fd42c6b068e84df8461b92c889a959bb9b0f7b096e3da", kill_on_drop: false }` [INFO] [stdout] 1df91b85063df5685a3fd42c6b068e84df8461b92c889a959bb9b0f7b096e3da