tigerbeetle 0.0.40 → 0.17.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/LICENSE +0 -25
- data/README.md +672 -80
- data/docs/migration.md +201 -0
- data/sig/tigerbeetle.rbs +372 -0
- data/src/ext/tigerbeetle/extconf.rb +47 -0
- data/src/ext/tigerbeetle/lib/aarch64-linux-gnu.2.27/libtb_client.so +0 -0
- data/src/ext/tigerbeetle/lib/aarch64-linux-musl/libtb_client.so +0 -0
- data/src/ext/tigerbeetle/lib/aarch64-macos/libtb_client.dylib +0 -0
- data/src/ext/tigerbeetle/lib/x86_64-linux-gnu.2.27/libtb_client.so +0 -0
- data/src/ext/tigerbeetle/lib/x86_64-linux-musl/libtb_client.so +0 -0
- data/src/ext/tigerbeetle/lib/x86_64-macos/libtb_client.dylib +0 -0
- data/src/ext/tigerbeetle/lib/x86_64-windows/tb_client.dll +0 -0
- data/src/ext/tigerbeetle/rb_tb_gen.h +677 -0
- data/{ext/tb_client/tigerbeetle/src/clients/rust/assets → src/ext/tigerbeetle}/tb_client.h +18 -16
- data/src/ext/tigerbeetle/tigerbeetle.c +310 -0
- data/src/tigerbeetle/bindings.rb +355 -0
- data/src/tigerbeetle/client.rb +129 -0
- data/src/tigerbeetle/completion_dispatcher.rb +108 -0
- data/src/tigerbeetle/id.rb +40 -0
- data/src/tigerbeetle/tb.rb +3 -0
- data/src/tigerbeetle/version.rb +3 -0
- data/src/tigerbeetle.rb +39 -0
- metadata +33 -350
- data/CHANGELOG.md +0 -162
- data/ext/tb_client/extconf.rb +0 -41
- data/ext/tb_client/tigerbeetle/LICENSE +0 -177
- data/ext/tb_client/tigerbeetle/build.zig +0 -2296
- data/ext/tb_client/tigerbeetle/src/aof.zig +0 -1000
- data/ext/tb_client/tigerbeetle/src/build/fetch.zig +0 -112
- data/ext/tb_client/tigerbeetle/src/build_multiversion.zig +0 -808
- data/ext/tb_client/tigerbeetle/src/cdc/amqp/protocol.zig +0 -1283
- data/ext/tb_client/tigerbeetle/src/cdc/amqp/spec.zig +0 -1704
- data/ext/tb_client/tigerbeetle/src/cdc/amqp/types.zig +0 -341
- data/ext/tb_client/tigerbeetle/src/cdc/amqp.zig +0 -1450
- data/ext/tb_client/tigerbeetle/src/cdc/runner.zig +0 -1659
- data/ext/tb_client/tigerbeetle/src/clients/c/samples/main.c +0 -406
- data/ext/tb_client/tigerbeetle/src/clients/c/tb_client/context.zig +0 -1092
- data/ext/tb_client/tigerbeetle/src/clients/c/tb_client/echo_client.zig +0 -286
- data/ext/tb_client/tigerbeetle/src/clients/c/tb_client/packet.zig +0 -158
- data/ext/tb_client/tigerbeetle/src/clients/c/tb_client/signal.zig +0 -229
- data/ext/tb_client/tigerbeetle/src/clients/c/tb_client/signal_fuzz.zig +0 -110
- data/ext/tb_client/tigerbeetle/src/clients/c/tb_client.h +0 -386
- data/ext/tb_client/tigerbeetle/src/clients/c/tb_client.zig +0 -34
- data/ext/tb_client/tigerbeetle/src/clients/c/tb_client_exports.zig +0 -281
- data/ext/tb_client/tigerbeetle/src/clients/c/tb_client_header.zig +0 -312
- data/ext/tb_client/tigerbeetle/src/clients/c/tb_client_header_test.zig +0 -138
- data/ext/tb_client/tigerbeetle/src/clients/c/test.zig +0 -466
- data/ext/tb_client/tigerbeetle/src/clients/docs_samples.zig +0 -157
- data/ext/tb_client/tigerbeetle/src/clients/docs_types.zig +0 -90
- data/ext/tb_client/tigerbeetle/src/clients/dotnet/ci.zig +0 -203
- data/ext/tb_client/tigerbeetle/src/clients/dotnet/docs.zig +0 -79
- data/ext/tb_client/tigerbeetle/src/clients/dotnet/dotnet_bindings.zig +0 -542
- data/ext/tb_client/tigerbeetle/src/clients/go/ci.zig +0 -109
- data/ext/tb_client/tigerbeetle/src/clients/go/docs.zig +0 -86
- data/ext/tb_client/tigerbeetle/src/clients/go/go_bindings.zig +0 -370
- data/ext/tb_client/tigerbeetle/src/clients/go/pkg/native/tb_client.h +0 -386
- data/ext/tb_client/tigerbeetle/src/clients/java/ci.zig +0 -167
- data/ext/tb_client/tigerbeetle/src/clients/java/docs.zig +0 -126
- data/ext/tb_client/tigerbeetle/src/clients/java/java_bindings.zig +0 -996
- data/ext/tb_client/tigerbeetle/src/clients/java/src/client.zig +0 -748
- data/ext/tb_client/tigerbeetle/src/clients/java/src/jni.zig +0 -3238
- data/ext/tb_client/tigerbeetle/src/clients/java/src/jni_tests.zig +0 -1718
- data/ext/tb_client/tigerbeetle/src/clients/java/src/jni_thread_cleaner.zig +0 -190
- data/ext/tb_client/tigerbeetle/src/clients/node/ci.zig +0 -104
- data/ext/tb_client/tigerbeetle/src/clients/node/docs.zig +0 -75
- data/ext/tb_client/tigerbeetle/src/clients/node/node.zig +0 -522
- data/ext/tb_client/tigerbeetle/src/clients/node/node_bindings.zig +0 -267
- data/ext/tb_client/tigerbeetle/src/clients/node/src/c.zig +0 -3
- data/ext/tb_client/tigerbeetle/src/clients/node/src/translate.zig +0 -379
- data/ext/tb_client/tigerbeetle/src/clients/python/ci.zig +0 -131
- data/ext/tb_client/tigerbeetle/src/clients/python/docs.zig +0 -63
- data/ext/tb_client/tigerbeetle/src/clients/python/python_bindings.zig +0 -588
- data/ext/tb_client/tigerbeetle/src/clients/rust/ci.zig +0 -73
- data/ext/tb_client/tigerbeetle/src/clients/rust/docs.zig +0 -106
- data/ext/tb_client/tigerbeetle/src/clients/rust/rust_bindings.zig +0 -305
- data/ext/tb_client/tigerbeetle/src/config.zig +0 -296
- data/ext/tb_client/tigerbeetle/src/constants.zig +0 -790
- data/ext/tb_client/tigerbeetle/src/copyhound.zig +0 -202
- data/ext/tb_client/tigerbeetle/src/counting_allocator.zig +0 -72
- data/ext/tb_client/tigerbeetle/src/direction.zig +0 -120
- data/ext/tb_client/tigerbeetle/src/docs_website/build.zig +0 -158
- data/ext/tb_client/tigerbeetle/src/docs_website/src/content.zig +0 -156
- data/ext/tb_client/tigerbeetle/src/docs_website/src/docs.zig +0 -252
- data/ext/tb_client/tigerbeetle/src/docs_website/src/file_checker.zig +0 -313
- data/ext/tb_client/tigerbeetle/src/docs_website/src/html.zig +0 -87
- data/ext/tb_client/tigerbeetle/src/docs_website/src/page_writer.zig +0 -63
- data/ext/tb_client/tigerbeetle/src/docs_website/src/redirects.zig +0 -47
- data/ext/tb_client/tigerbeetle/src/docs_website/src/search_index_writer.zig +0 -28
- data/ext/tb_client/tigerbeetle/src/docs_website/src/service_worker_writer.zig +0 -61
- data/ext/tb_client/tigerbeetle/src/docs_website/src/single_page_writer.zig +0 -169
- data/ext/tb_client/tigerbeetle/src/docs_website/src/website.zig +0 -46
- data/ext/tb_client/tigerbeetle/src/ewah.zig +0 -445
- data/ext/tb_client/tigerbeetle/src/ewah_benchmark.zig +0 -128
- data/ext/tb_client/tigerbeetle/src/ewah_fuzz.zig +0 -171
- data/ext/tb_client/tigerbeetle/src/fuzz_tests.zig +0 -179
- data/ext/tb_client/tigerbeetle/src/integration_tests.zig +0 -662
- data/ext/tb_client/tigerbeetle/src/io/common.zig +0 -155
- data/ext/tb_client/tigerbeetle/src/io/darwin.zig +0 -1093
- data/ext/tb_client/tigerbeetle/src/io/linux.zig +0 -1880
- data/ext/tb_client/tigerbeetle/src/io/test.zig +0 -1005
- data/ext/tb_client/tigerbeetle/src/io/windows.zig +0 -1598
- data/ext/tb_client/tigerbeetle/src/io.zig +0 -34
- data/ext/tb_client/tigerbeetle/src/iops.zig +0 -134
- data/ext/tb_client/tigerbeetle/src/list.zig +0 -236
- data/ext/tb_client/tigerbeetle/src/lsm/binary_search.zig +0 -848
- data/ext/tb_client/tigerbeetle/src/lsm/binary_search_benchmark.zig +0 -179
- data/ext/tb_client/tigerbeetle/src/lsm/cache_map.zig +0 -424
- data/ext/tb_client/tigerbeetle/src/lsm/cache_map_fuzz.zig +0 -420
- data/ext/tb_client/tigerbeetle/src/lsm/compaction.zig +0 -2114
- data/ext/tb_client/tigerbeetle/src/lsm/composite_key.zig +0 -185
- data/ext/tb_client/tigerbeetle/src/lsm/forest.zig +0 -1146
- data/ext/tb_client/tigerbeetle/src/lsm/forest_fuzz.zig +0 -1102
- data/ext/tb_client/tigerbeetle/src/lsm/forest_table_iterator.zig +0 -200
- data/ext/tb_client/tigerbeetle/src/lsm/groove.zig +0 -1495
- data/ext/tb_client/tigerbeetle/src/lsm/k_way_merge.zig +0 -739
- data/ext/tb_client/tigerbeetle/src/lsm/k_way_merge_benchmark.zig +0 -166
- data/ext/tb_client/tigerbeetle/src/lsm/manifest.zig +0 -754
- data/ext/tb_client/tigerbeetle/src/lsm/manifest_level.zig +0 -1294
- data/ext/tb_client/tigerbeetle/src/lsm/manifest_level_fuzz.zig +0 -510
- data/ext/tb_client/tigerbeetle/src/lsm/manifest_log.zig +0 -1241
- data/ext/tb_client/tigerbeetle/src/lsm/manifest_log_fuzz.zig +0 -628
- data/ext/tb_client/tigerbeetle/src/lsm/node_pool.zig +0 -247
- data/ext/tb_client/tigerbeetle/src/lsm/scan_buffer.zig +0 -116
- data/ext/tb_client/tigerbeetle/src/lsm/scan_builder.zig +0 -543
- data/ext/tb_client/tigerbeetle/src/lsm/scan_fuzz.zig +0 -938
- data/ext/tb_client/tigerbeetle/src/lsm/scan_lookup.zig +0 -293
- data/ext/tb_client/tigerbeetle/src/lsm/scan_merge.zig +0 -359
- data/ext/tb_client/tigerbeetle/src/lsm/scan_range.zig +0 -99
- data/ext/tb_client/tigerbeetle/src/lsm/scan_state.zig +0 -17
- data/ext/tb_client/tigerbeetle/src/lsm/scan_tree.zig +0 -962
- data/ext/tb_client/tigerbeetle/src/lsm/schema.zig +0 -617
- data/ext/tb_client/tigerbeetle/src/lsm/scratch_memory.zig +0 -84
- data/ext/tb_client/tigerbeetle/src/lsm/segmented_array.zig +0 -1500
- data/ext/tb_client/tigerbeetle/src/lsm/segmented_array_benchmark.zig +0 -149
- data/ext/tb_client/tigerbeetle/src/lsm/segmented_array_fuzz.zig +0 -7
- data/ext/tb_client/tigerbeetle/src/lsm/set_associative_cache.zig +0 -865
- data/ext/tb_client/tigerbeetle/src/lsm/table.zig +0 -607
- data/ext/tb_client/tigerbeetle/src/lsm/table_memory.zig +0 -843
- data/ext/tb_client/tigerbeetle/src/lsm/table_value_iterator.zig +0 -90
- data/ext/tb_client/tigerbeetle/src/lsm/timestamp_range.zig +0 -40
- data/ext/tb_client/tigerbeetle/src/lsm/tree.zig +0 -629
- data/ext/tb_client/tigerbeetle/src/lsm/tree_fuzz.zig +0 -933
- data/ext/tb_client/tigerbeetle/src/lsm/zig_zag_merge.zig +0 -534
- data/ext/tb_client/tigerbeetle/src/message_buffer.zig +0 -469
- data/ext/tb_client/tigerbeetle/src/message_bus.zig +0 -1219
- data/ext/tb_client/tigerbeetle/src/message_bus_fuzz.zig +0 -936
- data/ext/tb_client/tigerbeetle/src/message_pool.zig +0 -343
- data/ext/tb_client/tigerbeetle/src/multiversion.zig +0 -2195
- data/ext/tb_client/tigerbeetle/src/queue.zig +0 -390
- data/ext/tb_client/tigerbeetle/src/repl/completion.zig +0 -201
- data/ext/tb_client/tigerbeetle/src/repl/parser.zig +0 -1356
- data/ext/tb_client/tigerbeetle/src/repl/terminal.zig +0 -496
- data/ext/tb_client/tigerbeetle/src/repl.zig +0 -1034
- data/ext/tb_client/tigerbeetle/src/scripts/amqp.zig +0 -973
- data/ext/tb_client/tigerbeetle/src/scripts/cfo.zig +0 -1866
- data/ext/tb_client/tigerbeetle/src/scripts/changelog.zig +0 -304
- data/ext/tb_client/tigerbeetle/src/scripts/ci.zig +0 -227
- data/ext/tb_client/tigerbeetle/src/scripts/client_readmes.zig +0 -658
- data/ext/tb_client/tigerbeetle/src/scripts/devhub.zig +0 -466
- data/ext/tb_client/tigerbeetle/src/scripts/release.zig +0 -1058
- data/ext/tb_client/tigerbeetle/src/scripts.zig +0 -105
- data/ext/tb_client/tigerbeetle/src/shell.zig +0 -1195
- data/ext/tb_client/tigerbeetle/src/stack.zig +0 -260
- data/ext/tb_client/tigerbeetle/src/state_machine/auditor.zig +0 -911
- data/ext/tb_client/tigerbeetle/src/state_machine/workload.zig +0 -2079
- data/ext/tb_client/tigerbeetle/src/state_machine.zig +0 -4872
- data/ext/tb_client/tigerbeetle/src/state_machine_fuzz.zig +0 -288
- data/ext/tb_client/tigerbeetle/src/state_machine_tests.zig +0 -3128
- data/ext/tb_client/tigerbeetle/src/static_allocator.zig +0 -82
- data/ext/tb_client/tigerbeetle/src/stdx/bit_set.zig +0 -157
- data/ext/tb_client/tigerbeetle/src/stdx/bounded_array.zig +0 -292
- data/ext/tb_client/tigerbeetle/src/stdx/debug.zig +0 -65
- data/ext/tb_client/tigerbeetle/src/stdx/flags.zig +0 -1414
- data/ext/tb_client/tigerbeetle/src/stdx/huge_page_allocator.zig +0 -115
- data/ext/tb_client/tigerbeetle/src/stdx/mlock.zig +0 -92
- data/ext/tb_client/tigerbeetle/src/stdx/prng.zig +0 -677
- data/ext/tb_client/tigerbeetle/src/stdx/radix.zig +0 -336
- data/ext/tb_client/tigerbeetle/src/stdx/ring_buffer.zig +0 -511
- data/ext/tb_client/tigerbeetle/src/stdx/sort_test.zig +0 -112
- data/ext/tb_client/tigerbeetle/src/stdx/stdx.zig +0 -1163
- data/ext/tb_client/tigerbeetle/src/stdx/testing/low_level_hash_vectors.zig +0 -142
- data/ext/tb_client/tigerbeetle/src/stdx/testing/snaptest.zig +0 -361
- data/ext/tb_client/tigerbeetle/src/stdx/time_units.zig +0 -275
- data/ext/tb_client/tigerbeetle/src/stdx/unshare.zig +0 -295
- data/ext/tb_client/tigerbeetle/src/stdx/vendored/aegis.zig +0 -436
- data/ext/tb_client/tigerbeetle/src/stdx/windows.zig +0 -48
- data/ext/tb_client/tigerbeetle/src/stdx/zipfian.zig +0 -402
- data/ext/tb_client/tigerbeetle/src/storage.zig +0 -489
- data/ext/tb_client/tigerbeetle/src/storage_fuzz.zig +0 -180
- data/ext/tb_client/tigerbeetle/src/testing/bench.zig +0 -146
- data/ext/tb_client/tigerbeetle/src/testing/cluster/grid_checker.zig +0 -53
- data/ext/tb_client/tigerbeetle/src/testing/cluster/journal_checker.zig +0 -61
- data/ext/tb_client/tigerbeetle/src/testing/cluster/manifest_checker.zig +0 -76
- data/ext/tb_client/tigerbeetle/src/testing/cluster/message_bus.zig +0 -110
- data/ext/tb_client/tigerbeetle/src/testing/cluster/network.zig +0 -412
- data/ext/tb_client/tigerbeetle/src/testing/cluster/state_checker.zig +0 -331
- data/ext/tb_client/tigerbeetle/src/testing/cluster/storage_checker.zig +0 -458
- data/ext/tb_client/tigerbeetle/src/testing/cluster.zig +0 -1198
- data/ext/tb_client/tigerbeetle/src/testing/exhaustigen.zig +0 -128
- data/ext/tb_client/tigerbeetle/src/testing/fixtures.zig +0 -181
- data/ext/tb_client/tigerbeetle/src/testing/fuzz.zig +0 -144
- data/ext/tb_client/tigerbeetle/src/testing/id.zig +0 -97
- data/ext/tb_client/tigerbeetle/src/testing/io.zig +0 -317
- data/ext/tb_client/tigerbeetle/src/testing/marks.zig +0 -126
- data/ext/tb_client/tigerbeetle/src/testing/packet_simulator.zig +0 -533
- data/ext/tb_client/tigerbeetle/src/testing/reply_sequence.zig +0 -154
- data/ext/tb_client/tigerbeetle/src/testing/state_machine.zig +0 -389
- data/ext/tb_client/tigerbeetle/src/testing/storage.zig +0 -1247
- data/ext/tb_client/tigerbeetle/src/testing/table.zig +0 -249
- data/ext/tb_client/tigerbeetle/src/testing/time.zig +0 -98
- data/ext/tb_client/tigerbeetle/src/testing/tmp_tigerbeetle.zig +0 -212
- data/ext/tb_client/tigerbeetle/src/testing/vortex/constants.zig +0 -26
- data/ext/tb_client/tigerbeetle/src/testing/vortex/faulty_network.zig +0 -579
- data/ext/tb_client/tigerbeetle/src/testing/vortex/java_driver/ci.zig +0 -39
- data/ext/tb_client/tigerbeetle/src/testing/vortex/logged_process.zig +0 -214
- data/ext/tb_client/tigerbeetle/src/testing/vortex/rust_driver/ci.zig +0 -34
- data/ext/tb_client/tigerbeetle/src/testing/vortex/supervisor.zig +0 -785
- data/ext/tb_client/tigerbeetle/src/testing/vortex/workload.zig +0 -543
- data/ext/tb_client/tigerbeetle/src/testing/vortex/zig_driver.zig +0 -181
- data/ext/tb_client/tigerbeetle/src/tidy.zig +0 -1449
- data/ext/tb_client/tigerbeetle/src/tigerbeetle/benchmark_driver.zig +0 -227
- data/ext/tb_client/tigerbeetle/src/tigerbeetle/benchmark_load.zig +0 -1069
- data/ext/tb_client/tigerbeetle/src/tigerbeetle/cli.zig +0 -1422
- data/ext/tb_client/tigerbeetle/src/tigerbeetle/inspect.zig +0 -1658
- data/ext/tb_client/tigerbeetle/src/tigerbeetle/inspect_integrity.zig +0 -518
- data/ext/tb_client/tigerbeetle/src/tigerbeetle/libtb_client.zig +0 -36
- data/ext/tb_client/tigerbeetle/src/tigerbeetle/main.zig +0 -646
- data/ext/tb_client/tigerbeetle/src/tigerbeetle.zig +0 -958
- data/ext/tb_client/tigerbeetle/src/time.zig +0 -236
- data/ext/tb_client/tigerbeetle/src/trace/event.zig +0 -745
- data/ext/tb_client/tigerbeetle/src/trace/statsd.zig +0 -462
- data/ext/tb_client/tigerbeetle/src/trace.zig +0 -556
- data/ext/tb_client/tigerbeetle/src/unit_tests.zig +0 -321
- data/ext/tb_client/tigerbeetle/src/vopr.zig +0 -1785
- data/ext/tb_client/tigerbeetle/src/vortex.zig +0 -101
- data/ext/tb_client/tigerbeetle/src/vsr/checkpoint_trailer.zig +0 -473
- data/ext/tb_client/tigerbeetle/src/vsr/checksum.zig +0 -208
- data/ext/tb_client/tigerbeetle/src/vsr/checksum_benchmark.zig +0 -43
- data/ext/tb_client/tigerbeetle/src/vsr/client.zig +0 -768
- data/ext/tb_client/tigerbeetle/src/vsr/client_replies.zig +0 -532
- data/ext/tb_client/tigerbeetle/src/vsr/client_sessions.zig +0 -338
- data/ext/tb_client/tigerbeetle/src/vsr/clock.zig +0 -1019
- data/ext/tb_client/tigerbeetle/src/vsr/fault_detector.zig +0 -279
- data/ext/tb_client/tigerbeetle/src/vsr/free_set.zig +0 -1381
- data/ext/tb_client/tigerbeetle/src/vsr/free_set_fuzz.zig +0 -315
- data/ext/tb_client/tigerbeetle/src/vsr/grid.zig +0 -1460
- data/ext/tb_client/tigerbeetle/src/vsr/grid_blocks_missing.zig +0 -757
- data/ext/tb_client/tigerbeetle/src/vsr/grid_scrubber.zig +0 -797
- data/ext/tb_client/tigerbeetle/src/vsr/journal.zig +0 -2586
- data/ext/tb_client/tigerbeetle/src/vsr/marzullo.zig +0 -308
- data/ext/tb_client/tigerbeetle/src/vsr/message_header.zig +0 -1777
- data/ext/tb_client/tigerbeetle/src/vsr/multi_batch.zig +0 -715
- data/ext/tb_client/tigerbeetle/src/vsr/multi_batch_fuzz.zig +0 -185
- data/ext/tb_client/tigerbeetle/src/vsr/repair_budget.zig +0 -333
- data/ext/tb_client/tigerbeetle/src/vsr/replica.zig +0 -12356
- data/ext/tb_client/tigerbeetle/src/vsr/replica_format.zig +0 -416
- data/ext/tb_client/tigerbeetle/src/vsr/replica_reformat.zig +0 -165
- data/ext/tb_client/tigerbeetle/src/vsr/replica_test.zig +0 -2928
- data/ext/tb_client/tigerbeetle/src/vsr/routing.zig +0 -1075
- data/ext/tb_client/tigerbeetle/src/vsr/superblock.zig +0 -1603
- data/ext/tb_client/tigerbeetle/src/vsr/superblock_fuzz.zig +0 -484
- data/ext/tb_client/tigerbeetle/src/vsr/superblock_quorums.zig +0 -405
- data/ext/tb_client/tigerbeetle/src/vsr/superblock_quorums_fuzz.zig +0 -355
- data/ext/tb_client/tigerbeetle/src/vsr/sync.zig +0 -29
- data/ext/tb_client/tigerbeetle/src/vsr.zig +0 -1727
- data/lib/tb_client/shared_lib.rb +0 -66
- data/lib/tb_client.rb +0 -282
- data/lib/tigerbeetle/account.rb +0 -38
- data/lib/tigerbeetle/account_balance.rb +0 -23
- data/lib/tigerbeetle/account_filter.rb +0 -31
- data/lib/tigerbeetle/atomic_counter.rb +0 -14
- data/lib/tigerbeetle/client.rb +0 -214
- data/lib/tigerbeetle/converters/account.rb +0 -63
- data/lib/tigerbeetle/converters/account_balance.rb +0 -31
- data/lib/tigerbeetle/converters/account_filter.rb +0 -32
- data/lib/tigerbeetle/converters/base.rb +0 -35
- data/lib/tigerbeetle/converters/create_accounts_result.rb +0 -21
- data/lib/tigerbeetle/converters/create_transfers_result.rb +0 -21
- data/lib/tigerbeetle/converters/query_filter.rb +0 -33
- data/lib/tigerbeetle/converters/time.rb +0 -23
- data/lib/tigerbeetle/converters/transfer.rb +0 -64
- data/lib/tigerbeetle/converters/uint_128.rb +0 -24
- data/lib/tigerbeetle/converters.rb +0 -12
- data/lib/tigerbeetle/error.rb +0 -4
- data/lib/tigerbeetle/id.rb +0 -30
- data/lib/tigerbeetle/platforms.rb +0 -9
- data/lib/tigerbeetle/query_filter.rb +0 -31
- data/lib/tigerbeetle/request.rb +0 -7
- data/lib/tigerbeetle/transfer.rb +0 -40
- data/lib/tigerbeetle/version.rb +0 -4
- data/lib/tigerbeetle.rb +0 -13
- data/tigerbeetle.gemspec +0 -60
|
@@ -0,0 +1,677 @@
|
|
|
1
|
+
////////////////////////////////////////////////////////
|
|
2
|
+
// This file was auto-generated by ruby_bindings.zig //
|
|
3
|
+
// Do not manually modify. //
|
|
4
|
+
////////////////////////////////////////////////////////
|
|
5
|
+
|
|
6
|
+
#ifndef RB_TB_GEN_H
|
|
7
|
+
#define RB_TB_GEN_H
|
|
8
|
+
|
|
9
|
+
#include "ruby.h"
|
|
10
|
+
#include "tb_client.h"
|
|
11
|
+
#include <stdint.h>
|
|
12
|
+
#include <stdio.h>
|
|
13
|
+
#include <stdlib.h>
|
|
14
|
+
#include <string.h>
|
|
15
|
+
|
|
16
|
+
static inline void rb_tb_pack_u128(VALUE v, void *dst) {
|
|
17
|
+
int status = rb_integer_pack(v, dst, 16, 1, 0, INTEGER_PACK_LITTLE_ENDIAN);
|
|
18
|
+
if (status != 0 && status != 1) {
|
|
19
|
+
rb_raise(rb_eRangeError, "integer must be between 0 and 2**128 - 1");
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
static inline VALUE rb_tb_unpack_u128(const void *src) {
|
|
24
|
+
return rb_integer_unpack(src, 16, 1, 0, INTEGER_PACK_LITTLE_ENDIAN);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
static inline void tb_assert_fail(
|
|
28
|
+
const char *condition,
|
|
29
|
+
int line,
|
|
30
|
+
const char *function
|
|
31
|
+
) {
|
|
32
|
+
fprintf(stderr, "tb_assert failed: %s at line %d in %s\n", condition, line, function);
|
|
33
|
+
abort();
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
// A version of `assert` macro that's always on regardless of NDEBUG macro.
|
|
37
|
+
#define tb_assert(condition) \
|
|
38
|
+
do { \
|
|
39
|
+
if (!(condition)) { \
|
|
40
|
+
tb_assert_fail(#condition, __LINE__, __func__); \
|
|
41
|
+
} \
|
|
42
|
+
} while (0)
|
|
43
|
+
static const char *rb_tb_init_error_message(TB_INIT_STATUS status) {
|
|
44
|
+
switch (status) {
|
|
45
|
+
case TB_INIT_SUCCESS:
|
|
46
|
+
return "success";
|
|
47
|
+
case TB_INIT_UNEXPECTED:
|
|
48
|
+
return "unexpected";
|
|
49
|
+
case TB_INIT_OUT_OF_MEMORY:
|
|
50
|
+
return "out_of_memory";
|
|
51
|
+
case TB_INIT_ADDRESS_INVALID:
|
|
52
|
+
return "address_invalid";
|
|
53
|
+
case TB_INIT_ADDRESS_LIMIT_EXCEEDED:
|
|
54
|
+
return "address_limit_exceeded";
|
|
55
|
+
case TB_INIT_SYSTEM_RESOURCES:
|
|
56
|
+
return "system_resources";
|
|
57
|
+
case TB_INIT_NETWORK_SUBSYSTEM:
|
|
58
|
+
return "network_subsystem";
|
|
59
|
+
default:
|
|
60
|
+
return "unknown";
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
static VALUE rb_tb_create_accounts_status_name(uint32_t status) {
|
|
65
|
+
switch (status) {
|
|
66
|
+
case 4294967295:
|
|
67
|
+
return ID2SYM(rb_intern("created"));
|
|
68
|
+
case 1:
|
|
69
|
+
return ID2SYM(rb_intern("linked_event_failed"));
|
|
70
|
+
case 2:
|
|
71
|
+
return ID2SYM(rb_intern("linked_event_chain_open"));
|
|
72
|
+
case 22:
|
|
73
|
+
return ID2SYM(rb_intern("imported_event_expected"));
|
|
74
|
+
case 23:
|
|
75
|
+
return ID2SYM(rb_intern("imported_event_not_expected"));
|
|
76
|
+
case 3:
|
|
77
|
+
return ID2SYM(rb_intern("timestamp_must_be_zero"));
|
|
78
|
+
case 24:
|
|
79
|
+
return ID2SYM(rb_intern("imported_event_timestamp_out_of_range"));
|
|
80
|
+
case 25:
|
|
81
|
+
return ID2SYM(rb_intern("imported_event_timestamp_must_not_advance"));
|
|
82
|
+
case 4:
|
|
83
|
+
return ID2SYM(rb_intern("reserved_field"));
|
|
84
|
+
case 5:
|
|
85
|
+
return ID2SYM(rb_intern("reserved_flag"));
|
|
86
|
+
case 6:
|
|
87
|
+
return ID2SYM(rb_intern("id_must_not_be_zero"));
|
|
88
|
+
case 7:
|
|
89
|
+
return ID2SYM(rb_intern("id_must_not_be_int_max"));
|
|
90
|
+
case 15:
|
|
91
|
+
return ID2SYM(rb_intern("exists_with_different_flags"));
|
|
92
|
+
case 16:
|
|
93
|
+
return ID2SYM(rb_intern("exists_with_different_user_data_128"));
|
|
94
|
+
case 17:
|
|
95
|
+
return ID2SYM(rb_intern("exists_with_different_user_data_64"));
|
|
96
|
+
case 18:
|
|
97
|
+
return ID2SYM(rb_intern("exists_with_different_user_data_32"));
|
|
98
|
+
case 19:
|
|
99
|
+
return ID2SYM(rb_intern("exists_with_different_ledger"));
|
|
100
|
+
case 20:
|
|
101
|
+
return ID2SYM(rb_intern("exists_with_different_code"));
|
|
102
|
+
case 21:
|
|
103
|
+
return ID2SYM(rb_intern("exists"));
|
|
104
|
+
case 8:
|
|
105
|
+
return ID2SYM(rb_intern("flags_are_mutually_exclusive"));
|
|
106
|
+
case 9:
|
|
107
|
+
return ID2SYM(rb_intern("debits_pending_must_be_zero"));
|
|
108
|
+
case 10:
|
|
109
|
+
return ID2SYM(rb_intern("debits_posted_must_be_zero"));
|
|
110
|
+
case 11:
|
|
111
|
+
return ID2SYM(rb_intern("credits_pending_must_be_zero"));
|
|
112
|
+
case 12:
|
|
113
|
+
return ID2SYM(rb_intern("credits_posted_must_be_zero"));
|
|
114
|
+
case 13:
|
|
115
|
+
return ID2SYM(rb_intern("ledger_must_not_be_zero"));
|
|
116
|
+
case 14:
|
|
117
|
+
return ID2SYM(rb_intern("code_must_not_be_zero"));
|
|
118
|
+
case 26:
|
|
119
|
+
return ID2SYM(rb_intern("imported_event_timestamp_must_not_regress"));
|
|
120
|
+
default:
|
|
121
|
+
tb_assert(false);
|
|
122
|
+
return Qnil;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
static VALUE rb_tb_create_transfers_status_name(uint32_t status) {
|
|
127
|
+
switch (status) {
|
|
128
|
+
case 4294967295:
|
|
129
|
+
return ID2SYM(rb_intern("created"));
|
|
130
|
+
case 1:
|
|
131
|
+
return ID2SYM(rb_intern("linked_event_failed"));
|
|
132
|
+
case 2:
|
|
133
|
+
return ID2SYM(rb_intern("linked_event_chain_open"));
|
|
134
|
+
case 56:
|
|
135
|
+
return ID2SYM(rb_intern("imported_event_expected"));
|
|
136
|
+
case 57:
|
|
137
|
+
return ID2SYM(rb_intern("imported_event_not_expected"));
|
|
138
|
+
case 3:
|
|
139
|
+
return ID2SYM(rb_intern("timestamp_must_be_zero"));
|
|
140
|
+
case 58:
|
|
141
|
+
return ID2SYM(rb_intern("imported_event_timestamp_out_of_range"));
|
|
142
|
+
case 59:
|
|
143
|
+
return ID2SYM(rb_intern("imported_event_timestamp_must_not_advance"));
|
|
144
|
+
case 4:
|
|
145
|
+
return ID2SYM(rb_intern("reserved_flag"));
|
|
146
|
+
case 5:
|
|
147
|
+
return ID2SYM(rb_intern("id_must_not_be_zero"));
|
|
148
|
+
case 6:
|
|
149
|
+
return ID2SYM(rb_intern("id_must_not_be_int_max"));
|
|
150
|
+
case 36:
|
|
151
|
+
return ID2SYM(rb_intern("exists_with_different_flags"));
|
|
152
|
+
case 40:
|
|
153
|
+
return ID2SYM(rb_intern("exists_with_different_pending_id"));
|
|
154
|
+
case 44:
|
|
155
|
+
return ID2SYM(rb_intern("exists_with_different_timeout"));
|
|
156
|
+
case 37:
|
|
157
|
+
return ID2SYM(rb_intern("exists_with_different_debit_account_id"));
|
|
158
|
+
case 38:
|
|
159
|
+
return ID2SYM(rb_intern("exists_with_different_credit_account_id"));
|
|
160
|
+
case 39:
|
|
161
|
+
return ID2SYM(rb_intern("exists_with_different_amount"));
|
|
162
|
+
case 41:
|
|
163
|
+
return ID2SYM(rb_intern("exists_with_different_user_data_128"));
|
|
164
|
+
case 42:
|
|
165
|
+
return ID2SYM(rb_intern("exists_with_different_user_data_64"));
|
|
166
|
+
case 43:
|
|
167
|
+
return ID2SYM(rb_intern("exists_with_different_user_data_32"));
|
|
168
|
+
case 67:
|
|
169
|
+
return ID2SYM(rb_intern("exists_with_different_ledger"));
|
|
170
|
+
case 45:
|
|
171
|
+
return ID2SYM(rb_intern("exists_with_different_code"));
|
|
172
|
+
case 46:
|
|
173
|
+
return ID2SYM(rb_intern("exists"));
|
|
174
|
+
case 68:
|
|
175
|
+
return ID2SYM(rb_intern("id_already_failed"));
|
|
176
|
+
case 7:
|
|
177
|
+
return ID2SYM(rb_intern("flags_are_mutually_exclusive"));
|
|
178
|
+
case 8:
|
|
179
|
+
return ID2SYM(rb_intern("debit_account_id_must_not_be_zero"));
|
|
180
|
+
case 9:
|
|
181
|
+
return ID2SYM(rb_intern("debit_account_id_must_not_be_int_max"));
|
|
182
|
+
case 10:
|
|
183
|
+
return ID2SYM(rb_intern("credit_account_id_must_not_be_zero"));
|
|
184
|
+
case 11:
|
|
185
|
+
return ID2SYM(rb_intern("credit_account_id_must_not_be_int_max"));
|
|
186
|
+
case 12:
|
|
187
|
+
return ID2SYM(rb_intern("accounts_must_be_different"));
|
|
188
|
+
case 13:
|
|
189
|
+
return ID2SYM(rb_intern("pending_id_must_be_zero"));
|
|
190
|
+
case 14:
|
|
191
|
+
return ID2SYM(rb_intern("pending_id_must_not_be_zero"));
|
|
192
|
+
case 15:
|
|
193
|
+
return ID2SYM(rb_intern("pending_id_must_not_be_int_max"));
|
|
194
|
+
case 16:
|
|
195
|
+
return ID2SYM(rb_intern("pending_id_must_be_different"));
|
|
196
|
+
case 17:
|
|
197
|
+
return ID2SYM(rb_intern("timeout_reserved_for_pending_transfer"));
|
|
198
|
+
case 64:
|
|
199
|
+
return ID2SYM(rb_intern("closing_transfer_must_be_pending"));
|
|
200
|
+
case 19:
|
|
201
|
+
return ID2SYM(rb_intern("ledger_must_not_be_zero"));
|
|
202
|
+
case 20:
|
|
203
|
+
return ID2SYM(rb_intern("code_must_not_be_zero"));
|
|
204
|
+
case 21:
|
|
205
|
+
return ID2SYM(rb_intern("debit_account_not_found"));
|
|
206
|
+
case 22:
|
|
207
|
+
return ID2SYM(rb_intern("credit_account_not_found"));
|
|
208
|
+
case 23:
|
|
209
|
+
return ID2SYM(rb_intern("accounts_must_have_the_same_ledger"));
|
|
210
|
+
case 24:
|
|
211
|
+
return ID2SYM(rb_intern("transfer_must_have_the_same_ledger_as_accounts"));
|
|
212
|
+
case 25:
|
|
213
|
+
return ID2SYM(rb_intern("pending_transfer_not_found"));
|
|
214
|
+
case 26:
|
|
215
|
+
return ID2SYM(rb_intern("pending_transfer_not_pending"));
|
|
216
|
+
case 27:
|
|
217
|
+
return ID2SYM(rb_intern("pending_transfer_has_different_debit_account_id"));
|
|
218
|
+
case 28:
|
|
219
|
+
return ID2SYM(rb_intern("pending_transfer_has_different_credit_account_id"));
|
|
220
|
+
case 29:
|
|
221
|
+
return ID2SYM(rb_intern("pending_transfer_has_different_ledger"));
|
|
222
|
+
case 30:
|
|
223
|
+
return ID2SYM(rb_intern("pending_transfer_has_different_code"));
|
|
224
|
+
case 31:
|
|
225
|
+
return ID2SYM(rb_intern("exceeds_pending_transfer_amount"));
|
|
226
|
+
case 32:
|
|
227
|
+
return ID2SYM(rb_intern("pending_transfer_has_different_amount"));
|
|
228
|
+
case 33:
|
|
229
|
+
return ID2SYM(rb_intern("pending_transfer_already_posted"));
|
|
230
|
+
case 34:
|
|
231
|
+
return ID2SYM(rb_intern("pending_transfer_already_voided"));
|
|
232
|
+
case 35:
|
|
233
|
+
return ID2SYM(rb_intern("pending_transfer_expired"));
|
|
234
|
+
case 60:
|
|
235
|
+
return ID2SYM(rb_intern("imported_event_timestamp_must_not_regress"));
|
|
236
|
+
case 61:
|
|
237
|
+
return ID2SYM(rb_intern("imported_event_timestamp_must_postdate_debit_account"));
|
|
238
|
+
case 62:
|
|
239
|
+
return ID2SYM(rb_intern("imported_event_timestamp_must_postdate_credit_account"));
|
|
240
|
+
case 63:
|
|
241
|
+
return ID2SYM(rb_intern("imported_event_timeout_must_be_zero"));
|
|
242
|
+
case 65:
|
|
243
|
+
return ID2SYM(rb_intern("debit_account_already_closed"));
|
|
244
|
+
case 66:
|
|
245
|
+
return ID2SYM(rb_intern("credit_account_already_closed"));
|
|
246
|
+
case 47:
|
|
247
|
+
return ID2SYM(rb_intern("overflows_debits_pending"));
|
|
248
|
+
case 48:
|
|
249
|
+
return ID2SYM(rb_intern("overflows_credits_pending"));
|
|
250
|
+
case 49:
|
|
251
|
+
return ID2SYM(rb_intern("overflows_debits_posted"));
|
|
252
|
+
case 50:
|
|
253
|
+
return ID2SYM(rb_intern("overflows_credits_posted"));
|
|
254
|
+
case 51:
|
|
255
|
+
return ID2SYM(rb_intern("overflows_debits"));
|
|
256
|
+
case 52:
|
|
257
|
+
return ID2SYM(rb_intern("overflows_credits"));
|
|
258
|
+
case 53:
|
|
259
|
+
return ID2SYM(rb_intern("overflows_timeout"));
|
|
260
|
+
case 54:
|
|
261
|
+
return ID2SYM(rb_intern("exceeds_credits"));
|
|
262
|
+
case 55:
|
|
263
|
+
return ID2SYM(rb_intern("exceeds_debits"));
|
|
264
|
+
default:
|
|
265
|
+
tb_assert(false);
|
|
266
|
+
return Qnil;
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
static VALUE rb_tb_deserialize_lookup_accounts(const uint8_t *buf, uint32_t buf_size) {
|
|
271
|
+
VALUE klass = rb_path2class("TigerBeetle::Account");
|
|
272
|
+
tb_assert(buf_size % sizeof(tb_account_t) == 0);
|
|
273
|
+
long count = (long)(buf_size / sizeof(tb_account_t));
|
|
274
|
+
VALUE results = rb_ary_new_capa(count);
|
|
275
|
+
const tb_account_t *items = (const tb_account_t *)buf;
|
|
276
|
+
for (long i = 0; i < count; i++) {
|
|
277
|
+
const tb_account_t *item = &items[i];
|
|
278
|
+
VALUE obj = rb_obj_alloc(klass);
|
|
279
|
+
rb_ivar_set(obj, rb_intern("@id"), rb_tb_unpack_u128(&item->id));
|
|
280
|
+
rb_ivar_set(obj, rb_intern("@debits_pending"), rb_tb_unpack_u128(&item->debits_pending));
|
|
281
|
+
rb_ivar_set(obj, rb_intern("@debits_posted"), rb_tb_unpack_u128(&item->debits_posted));
|
|
282
|
+
rb_ivar_set(obj, rb_intern("@credits_pending"), rb_tb_unpack_u128(&item->credits_pending));
|
|
283
|
+
rb_ivar_set(obj, rb_intern("@credits_posted"), rb_tb_unpack_u128(&item->credits_posted));
|
|
284
|
+
rb_ivar_set(obj, rb_intern("@user_data_128"), rb_tb_unpack_u128(&item->user_data_128));
|
|
285
|
+
rb_ivar_set(obj, rb_intern("@user_data_64"), RB_ULL2NUM(item->user_data_64));
|
|
286
|
+
rb_ivar_set(obj, rb_intern("@user_data_32"), RB_UINT2NUM(item->user_data_32));
|
|
287
|
+
tb_assert(item->reserved == 0);
|
|
288
|
+
rb_ivar_set(obj, rb_intern("@ledger"), RB_UINT2NUM(item->ledger));
|
|
289
|
+
rb_ivar_set(obj, rb_intern("@code"), RB_UINT2NUM(item->code));
|
|
290
|
+
rb_ivar_set(obj, rb_intern("@flags"), RB_UINT2NUM(item->flags));
|
|
291
|
+
rb_ivar_set(obj, rb_intern("@timestamp"), RB_ULL2NUM(item->timestamp));
|
|
292
|
+
rb_ary_push(results, obj);
|
|
293
|
+
}
|
|
294
|
+
return results;
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
static VALUE rb_tb_deserialize_lookup_transfers(const uint8_t *buf, uint32_t buf_size) {
|
|
298
|
+
VALUE klass = rb_path2class("TigerBeetle::Transfer");
|
|
299
|
+
tb_assert(buf_size % sizeof(tb_transfer_t) == 0);
|
|
300
|
+
long count = (long)(buf_size / sizeof(tb_transfer_t));
|
|
301
|
+
VALUE results = rb_ary_new_capa(count);
|
|
302
|
+
const tb_transfer_t *items = (const tb_transfer_t *)buf;
|
|
303
|
+
for (long i = 0; i < count; i++) {
|
|
304
|
+
const tb_transfer_t *item = &items[i];
|
|
305
|
+
VALUE obj = rb_obj_alloc(klass);
|
|
306
|
+
rb_ivar_set(obj, rb_intern("@id"), rb_tb_unpack_u128(&item->id));
|
|
307
|
+
rb_ivar_set(obj, rb_intern("@debit_account_id"), rb_tb_unpack_u128(&item->debit_account_id));
|
|
308
|
+
rb_ivar_set(obj, rb_intern("@credit_account_id"), rb_tb_unpack_u128(&item->credit_account_id));
|
|
309
|
+
rb_ivar_set(obj, rb_intern("@amount"), rb_tb_unpack_u128(&item->amount));
|
|
310
|
+
rb_ivar_set(obj, rb_intern("@pending_id"), rb_tb_unpack_u128(&item->pending_id));
|
|
311
|
+
rb_ivar_set(obj, rb_intern("@user_data_128"), rb_tb_unpack_u128(&item->user_data_128));
|
|
312
|
+
rb_ivar_set(obj, rb_intern("@user_data_64"), RB_ULL2NUM(item->user_data_64));
|
|
313
|
+
rb_ivar_set(obj, rb_intern("@user_data_32"), RB_UINT2NUM(item->user_data_32));
|
|
314
|
+
rb_ivar_set(obj, rb_intern("@timeout"), RB_UINT2NUM(item->timeout));
|
|
315
|
+
rb_ivar_set(obj, rb_intern("@ledger"), RB_UINT2NUM(item->ledger));
|
|
316
|
+
rb_ivar_set(obj, rb_intern("@code"), RB_UINT2NUM(item->code));
|
|
317
|
+
rb_ivar_set(obj, rb_intern("@flags"), RB_UINT2NUM(item->flags));
|
|
318
|
+
rb_ivar_set(obj, rb_intern("@timestamp"), RB_ULL2NUM(item->timestamp));
|
|
319
|
+
rb_ary_push(results, obj);
|
|
320
|
+
}
|
|
321
|
+
return results;
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
static void rb_tb_serialize_get_account_transfers(VALUE items_rb, uint8_t *buf, long count) {
|
|
325
|
+
tb_account_filter_t *items = (tb_account_filter_t *)buf;
|
|
326
|
+
for (long i = 0; i < count; i++) {
|
|
327
|
+
VALUE item_rb = RARRAY_AREF(items_rb, i);
|
|
328
|
+
tb_account_filter_t *item = &items[i];
|
|
329
|
+
rb_tb_pack_u128(rb_ivar_get(item_rb, rb_intern("@account_id")), &item->account_id);
|
|
330
|
+
rb_tb_pack_u128(rb_ivar_get(item_rb, rb_intern("@user_data_128")), &item->user_data_128);
|
|
331
|
+
item->user_data_64 = RB_NUM2ULL(rb_ivar_get(item_rb, rb_intern("@user_data_64")));
|
|
332
|
+
item->user_data_32 = RB_NUM2UINT(rb_ivar_get(item_rb, rb_intern("@user_data_32")));
|
|
333
|
+
item->code = RB_NUM2USHORT(rb_ivar_get(item_rb, rb_intern("@code")));
|
|
334
|
+
memset(item->reserved, 0, sizeof(item->reserved));
|
|
335
|
+
item->timestamp_min = RB_NUM2ULL(rb_ivar_get(item_rb, rb_intern("@timestamp_min")));
|
|
336
|
+
item->timestamp_max = RB_NUM2ULL(rb_ivar_get(item_rb, rb_intern("@timestamp_max")));
|
|
337
|
+
item->limit = RB_NUM2UINT(rb_ivar_get(item_rb, rb_intern("@limit")));
|
|
338
|
+
item->flags = RB_NUM2UINT(rb_ivar_get(item_rb, rb_intern("@flags")));
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
static VALUE rb_tb_deserialize_get_account_transfers(const uint8_t *buf, uint32_t buf_size) {
|
|
343
|
+
VALUE klass = rb_path2class("TigerBeetle::Transfer");
|
|
344
|
+
tb_assert(buf_size % sizeof(tb_transfer_t) == 0);
|
|
345
|
+
long count = (long)(buf_size / sizeof(tb_transfer_t));
|
|
346
|
+
VALUE results = rb_ary_new_capa(count);
|
|
347
|
+
const tb_transfer_t *items = (const tb_transfer_t *)buf;
|
|
348
|
+
for (long i = 0; i < count; i++) {
|
|
349
|
+
const tb_transfer_t *item = &items[i];
|
|
350
|
+
VALUE obj = rb_obj_alloc(klass);
|
|
351
|
+
rb_ivar_set(obj, rb_intern("@id"), rb_tb_unpack_u128(&item->id));
|
|
352
|
+
rb_ivar_set(obj, rb_intern("@debit_account_id"), rb_tb_unpack_u128(&item->debit_account_id));
|
|
353
|
+
rb_ivar_set(obj, rb_intern("@credit_account_id"), rb_tb_unpack_u128(&item->credit_account_id));
|
|
354
|
+
rb_ivar_set(obj, rb_intern("@amount"), rb_tb_unpack_u128(&item->amount));
|
|
355
|
+
rb_ivar_set(obj, rb_intern("@pending_id"), rb_tb_unpack_u128(&item->pending_id));
|
|
356
|
+
rb_ivar_set(obj, rb_intern("@user_data_128"), rb_tb_unpack_u128(&item->user_data_128));
|
|
357
|
+
rb_ivar_set(obj, rb_intern("@user_data_64"), RB_ULL2NUM(item->user_data_64));
|
|
358
|
+
rb_ivar_set(obj, rb_intern("@user_data_32"), RB_UINT2NUM(item->user_data_32));
|
|
359
|
+
rb_ivar_set(obj, rb_intern("@timeout"), RB_UINT2NUM(item->timeout));
|
|
360
|
+
rb_ivar_set(obj, rb_intern("@ledger"), RB_UINT2NUM(item->ledger));
|
|
361
|
+
rb_ivar_set(obj, rb_intern("@code"), RB_UINT2NUM(item->code));
|
|
362
|
+
rb_ivar_set(obj, rb_intern("@flags"), RB_UINT2NUM(item->flags));
|
|
363
|
+
rb_ivar_set(obj, rb_intern("@timestamp"), RB_ULL2NUM(item->timestamp));
|
|
364
|
+
rb_ary_push(results, obj);
|
|
365
|
+
}
|
|
366
|
+
return results;
|
|
367
|
+
}
|
|
368
|
+
|
|
369
|
+
static void rb_tb_serialize_get_account_balances(VALUE items_rb, uint8_t *buf, long count) {
|
|
370
|
+
tb_account_filter_t *items = (tb_account_filter_t *)buf;
|
|
371
|
+
for (long i = 0; i < count; i++) {
|
|
372
|
+
VALUE item_rb = RARRAY_AREF(items_rb, i);
|
|
373
|
+
tb_account_filter_t *item = &items[i];
|
|
374
|
+
rb_tb_pack_u128(rb_ivar_get(item_rb, rb_intern("@account_id")), &item->account_id);
|
|
375
|
+
rb_tb_pack_u128(rb_ivar_get(item_rb, rb_intern("@user_data_128")), &item->user_data_128);
|
|
376
|
+
item->user_data_64 = RB_NUM2ULL(rb_ivar_get(item_rb, rb_intern("@user_data_64")));
|
|
377
|
+
item->user_data_32 = RB_NUM2UINT(rb_ivar_get(item_rb, rb_intern("@user_data_32")));
|
|
378
|
+
item->code = RB_NUM2USHORT(rb_ivar_get(item_rb, rb_intern("@code")));
|
|
379
|
+
memset(item->reserved, 0, sizeof(item->reserved));
|
|
380
|
+
item->timestamp_min = RB_NUM2ULL(rb_ivar_get(item_rb, rb_intern("@timestamp_min")));
|
|
381
|
+
item->timestamp_max = RB_NUM2ULL(rb_ivar_get(item_rb, rb_intern("@timestamp_max")));
|
|
382
|
+
item->limit = RB_NUM2UINT(rb_ivar_get(item_rb, rb_intern("@limit")));
|
|
383
|
+
item->flags = RB_NUM2UINT(rb_ivar_get(item_rb, rb_intern("@flags")));
|
|
384
|
+
}
|
|
385
|
+
}
|
|
386
|
+
|
|
387
|
+
static VALUE rb_tb_deserialize_get_account_balances(const uint8_t *buf, uint32_t buf_size) {
|
|
388
|
+
VALUE klass = rb_path2class("TigerBeetle::AccountBalance");
|
|
389
|
+
tb_assert(buf_size % sizeof(tb_account_balance_t) == 0);
|
|
390
|
+
long count = (long)(buf_size / sizeof(tb_account_balance_t));
|
|
391
|
+
VALUE results = rb_ary_new_capa(count);
|
|
392
|
+
const tb_account_balance_t *items = (const tb_account_balance_t *)buf;
|
|
393
|
+
for (long i = 0; i < count; i++) {
|
|
394
|
+
const tb_account_balance_t *item = &items[i];
|
|
395
|
+
VALUE obj = rb_obj_alloc(klass);
|
|
396
|
+
rb_ivar_set(obj, rb_intern("@debits_pending"), rb_tb_unpack_u128(&item->debits_pending));
|
|
397
|
+
rb_ivar_set(obj, rb_intern("@debits_posted"), rb_tb_unpack_u128(&item->debits_posted));
|
|
398
|
+
rb_ivar_set(obj, rb_intern("@credits_pending"), rb_tb_unpack_u128(&item->credits_pending));
|
|
399
|
+
rb_ivar_set(obj, rb_intern("@credits_posted"), rb_tb_unpack_u128(&item->credits_posted));
|
|
400
|
+
rb_ivar_set(obj, rb_intern("@timestamp"), RB_ULL2NUM(item->timestamp));
|
|
401
|
+
uint8_t zero[sizeof(item->reserved)] = {0};
|
|
402
|
+
tb_assert(memcmp(item->reserved, zero, sizeof(item->reserved)) == 0);
|
|
403
|
+
rb_ary_push(results, obj);
|
|
404
|
+
}
|
|
405
|
+
return results;
|
|
406
|
+
}
|
|
407
|
+
|
|
408
|
+
static void rb_tb_serialize_query_accounts(VALUE items_rb, uint8_t *buf, long count) {
|
|
409
|
+
tb_query_filter_t *items = (tb_query_filter_t *)buf;
|
|
410
|
+
for (long i = 0; i < count; i++) {
|
|
411
|
+
VALUE item_rb = RARRAY_AREF(items_rb, i);
|
|
412
|
+
tb_query_filter_t *item = &items[i];
|
|
413
|
+
rb_tb_pack_u128(rb_ivar_get(item_rb, rb_intern("@user_data_128")), &item->user_data_128);
|
|
414
|
+
item->user_data_64 = RB_NUM2ULL(rb_ivar_get(item_rb, rb_intern("@user_data_64")));
|
|
415
|
+
item->user_data_32 = RB_NUM2UINT(rb_ivar_get(item_rb, rb_intern("@user_data_32")));
|
|
416
|
+
item->ledger = RB_NUM2UINT(rb_ivar_get(item_rb, rb_intern("@ledger")));
|
|
417
|
+
item->code = RB_NUM2USHORT(rb_ivar_get(item_rb, rb_intern("@code")));
|
|
418
|
+
memset(item->reserved, 0, sizeof(item->reserved));
|
|
419
|
+
item->timestamp_min = RB_NUM2ULL(rb_ivar_get(item_rb, rb_intern("@timestamp_min")));
|
|
420
|
+
item->timestamp_max = RB_NUM2ULL(rb_ivar_get(item_rb, rb_intern("@timestamp_max")));
|
|
421
|
+
item->limit = RB_NUM2UINT(rb_ivar_get(item_rb, rb_intern("@limit")));
|
|
422
|
+
item->flags = RB_NUM2UINT(rb_ivar_get(item_rb, rb_intern("@flags")));
|
|
423
|
+
}
|
|
424
|
+
}
|
|
425
|
+
|
|
426
|
+
static VALUE rb_tb_deserialize_query_accounts(const uint8_t *buf, uint32_t buf_size) {
|
|
427
|
+
VALUE klass = rb_path2class("TigerBeetle::Account");
|
|
428
|
+
tb_assert(buf_size % sizeof(tb_account_t) == 0);
|
|
429
|
+
long count = (long)(buf_size / sizeof(tb_account_t));
|
|
430
|
+
VALUE results = rb_ary_new_capa(count);
|
|
431
|
+
const tb_account_t *items = (const tb_account_t *)buf;
|
|
432
|
+
for (long i = 0; i < count; i++) {
|
|
433
|
+
const tb_account_t *item = &items[i];
|
|
434
|
+
VALUE obj = rb_obj_alloc(klass);
|
|
435
|
+
rb_ivar_set(obj, rb_intern("@id"), rb_tb_unpack_u128(&item->id));
|
|
436
|
+
rb_ivar_set(obj, rb_intern("@debits_pending"), rb_tb_unpack_u128(&item->debits_pending));
|
|
437
|
+
rb_ivar_set(obj, rb_intern("@debits_posted"), rb_tb_unpack_u128(&item->debits_posted));
|
|
438
|
+
rb_ivar_set(obj, rb_intern("@credits_pending"), rb_tb_unpack_u128(&item->credits_pending));
|
|
439
|
+
rb_ivar_set(obj, rb_intern("@credits_posted"), rb_tb_unpack_u128(&item->credits_posted));
|
|
440
|
+
rb_ivar_set(obj, rb_intern("@user_data_128"), rb_tb_unpack_u128(&item->user_data_128));
|
|
441
|
+
rb_ivar_set(obj, rb_intern("@user_data_64"), RB_ULL2NUM(item->user_data_64));
|
|
442
|
+
rb_ivar_set(obj, rb_intern("@user_data_32"), RB_UINT2NUM(item->user_data_32));
|
|
443
|
+
tb_assert(item->reserved == 0);
|
|
444
|
+
rb_ivar_set(obj, rb_intern("@ledger"), RB_UINT2NUM(item->ledger));
|
|
445
|
+
rb_ivar_set(obj, rb_intern("@code"), RB_UINT2NUM(item->code));
|
|
446
|
+
rb_ivar_set(obj, rb_intern("@flags"), RB_UINT2NUM(item->flags));
|
|
447
|
+
rb_ivar_set(obj, rb_intern("@timestamp"), RB_ULL2NUM(item->timestamp));
|
|
448
|
+
rb_ary_push(results, obj);
|
|
449
|
+
}
|
|
450
|
+
return results;
|
|
451
|
+
}
|
|
452
|
+
|
|
453
|
+
static void rb_tb_serialize_query_transfers(VALUE items_rb, uint8_t *buf, long count) {
|
|
454
|
+
tb_query_filter_t *items = (tb_query_filter_t *)buf;
|
|
455
|
+
for (long i = 0; i < count; i++) {
|
|
456
|
+
VALUE item_rb = RARRAY_AREF(items_rb, i);
|
|
457
|
+
tb_query_filter_t *item = &items[i];
|
|
458
|
+
rb_tb_pack_u128(rb_ivar_get(item_rb, rb_intern("@user_data_128")), &item->user_data_128);
|
|
459
|
+
item->user_data_64 = RB_NUM2ULL(rb_ivar_get(item_rb, rb_intern("@user_data_64")));
|
|
460
|
+
item->user_data_32 = RB_NUM2UINT(rb_ivar_get(item_rb, rb_intern("@user_data_32")));
|
|
461
|
+
item->ledger = RB_NUM2UINT(rb_ivar_get(item_rb, rb_intern("@ledger")));
|
|
462
|
+
item->code = RB_NUM2USHORT(rb_ivar_get(item_rb, rb_intern("@code")));
|
|
463
|
+
memset(item->reserved, 0, sizeof(item->reserved));
|
|
464
|
+
item->timestamp_min = RB_NUM2ULL(rb_ivar_get(item_rb, rb_intern("@timestamp_min")));
|
|
465
|
+
item->timestamp_max = RB_NUM2ULL(rb_ivar_get(item_rb, rb_intern("@timestamp_max")));
|
|
466
|
+
item->limit = RB_NUM2UINT(rb_ivar_get(item_rb, rb_intern("@limit")));
|
|
467
|
+
item->flags = RB_NUM2UINT(rb_ivar_get(item_rb, rb_intern("@flags")));
|
|
468
|
+
}
|
|
469
|
+
}
|
|
470
|
+
|
|
471
|
+
static VALUE rb_tb_deserialize_query_transfers(const uint8_t *buf, uint32_t buf_size) {
|
|
472
|
+
VALUE klass = rb_path2class("TigerBeetle::Transfer");
|
|
473
|
+
tb_assert(buf_size % sizeof(tb_transfer_t) == 0);
|
|
474
|
+
long count = (long)(buf_size / sizeof(tb_transfer_t));
|
|
475
|
+
VALUE results = rb_ary_new_capa(count);
|
|
476
|
+
const tb_transfer_t *items = (const tb_transfer_t *)buf;
|
|
477
|
+
for (long i = 0; i < count; i++) {
|
|
478
|
+
const tb_transfer_t *item = &items[i];
|
|
479
|
+
VALUE obj = rb_obj_alloc(klass);
|
|
480
|
+
rb_ivar_set(obj, rb_intern("@id"), rb_tb_unpack_u128(&item->id));
|
|
481
|
+
rb_ivar_set(obj, rb_intern("@debit_account_id"), rb_tb_unpack_u128(&item->debit_account_id));
|
|
482
|
+
rb_ivar_set(obj, rb_intern("@credit_account_id"), rb_tb_unpack_u128(&item->credit_account_id));
|
|
483
|
+
rb_ivar_set(obj, rb_intern("@amount"), rb_tb_unpack_u128(&item->amount));
|
|
484
|
+
rb_ivar_set(obj, rb_intern("@pending_id"), rb_tb_unpack_u128(&item->pending_id));
|
|
485
|
+
rb_ivar_set(obj, rb_intern("@user_data_128"), rb_tb_unpack_u128(&item->user_data_128));
|
|
486
|
+
rb_ivar_set(obj, rb_intern("@user_data_64"), RB_ULL2NUM(item->user_data_64));
|
|
487
|
+
rb_ivar_set(obj, rb_intern("@user_data_32"), RB_UINT2NUM(item->user_data_32));
|
|
488
|
+
rb_ivar_set(obj, rb_intern("@timeout"), RB_UINT2NUM(item->timeout));
|
|
489
|
+
rb_ivar_set(obj, rb_intern("@ledger"), RB_UINT2NUM(item->ledger));
|
|
490
|
+
rb_ivar_set(obj, rb_intern("@code"), RB_UINT2NUM(item->code));
|
|
491
|
+
rb_ivar_set(obj, rb_intern("@flags"), RB_UINT2NUM(item->flags));
|
|
492
|
+
rb_ivar_set(obj, rb_intern("@timestamp"), RB_ULL2NUM(item->timestamp));
|
|
493
|
+
rb_ary_push(results, obj);
|
|
494
|
+
}
|
|
495
|
+
return results;
|
|
496
|
+
}
|
|
497
|
+
|
|
498
|
+
static void rb_tb_serialize_create_accounts(VALUE items_rb, uint8_t *buf, long count) {
|
|
499
|
+
tb_account_t *items = (tb_account_t *)buf;
|
|
500
|
+
for (long i = 0; i < count; i++) {
|
|
501
|
+
VALUE item_rb = RARRAY_AREF(items_rb, i);
|
|
502
|
+
tb_account_t *item = &items[i];
|
|
503
|
+
rb_tb_pack_u128(rb_ivar_get(item_rb, rb_intern("@id")), &item->id);
|
|
504
|
+
rb_tb_pack_u128(rb_ivar_get(item_rb, rb_intern("@debits_pending")), &item->debits_pending);
|
|
505
|
+
rb_tb_pack_u128(rb_ivar_get(item_rb, rb_intern("@debits_posted")), &item->debits_posted);
|
|
506
|
+
rb_tb_pack_u128(rb_ivar_get(item_rb, rb_intern("@credits_pending")), &item->credits_pending);
|
|
507
|
+
rb_tb_pack_u128(rb_ivar_get(item_rb, rb_intern("@credits_posted")), &item->credits_posted);
|
|
508
|
+
rb_tb_pack_u128(rb_ivar_get(item_rb, rb_intern("@user_data_128")), &item->user_data_128);
|
|
509
|
+
item->user_data_64 = RB_NUM2ULL(rb_ivar_get(item_rb, rb_intern("@user_data_64")));
|
|
510
|
+
item->user_data_32 = RB_NUM2UINT(rb_ivar_get(item_rb, rb_intern("@user_data_32")));
|
|
511
|
+
item->reserved = 0;
|
|
512
|
+
item->ledger = RB_NUM2UINT(rb_ivar_get(item_rb, rb_intern("@ledger")));
|
|
513
|
+
item->code = RB_NUM2USHORT(rb_ivar_get(item_rb, rb_intern("@code")));
|
|
514
|
+
item->flags = RB_NUM2USHORT(rb_ivar_get(item_rb, rb_intern("@flags")));
|
|
515
|
+
item->timestamp = RB_NUM2ULL(rb_ivar_get(item_rb, rb_intern("@timestamp")));
|
|
516
|
+
}
|
|
517
|
+
}
|
|
518
|
+
|
|
519
|
+
static VALUE rb_tb_deserialize_create_accounts(const uint8_t *buf, uint32_t buf_size) {
|
|
520
|
+
VALUE klass = rb_path2class("TigerBeetle::CreateAccountResult");
|
|
521
|
+
tb_assert(buf_size % sizeof(tb_create_account_result_t) == 0);
|
|
522
|
+
long count = (long)(buf_size / sizeof(tb_create_account_result_t));
|
|
523
|
+
VALUE results = rb_ary_new_capa(count);
|
|
524
|
+
const tb_create_account_result_t *items = (const tb_create_account_result_t *)buf;
|
|
525
|
+
for (long i = 0; i < count; i++) {
|
|
526
|
+
const tb_create_account_result_t *item = &items[i];
|
|
527
|
+
VALUE obj = rb_obj_alloc(klass);
|
|
528
|
+
rb_ivar_set(obj, rb_intern("@timestamp"), RB_ULL2NUM(item->timestamp));
|
|
529
|
+
rb_ivar_set(obj, rb_intern("@status"), RB_UINT2NUM(item->status));
|
|
530
|
+
rb_ivar_set(
|
|
531
|
+
obj,
|
|
532
|
+
rb_intern("@status_name"),
|
|
533
|
+
rb_tb_create_accounts_status_name(item->status)
|
|
534
|
+
);
|
|
535
|
+
tb_assert(item->reserved == 0);
|
|
536
|
+
rb_ary_push(results, obj);
|
|
537
|
+
}
|
|
538
|
+
return results;
|
|
539
|
+
}
|
|
540
|
+
|
|
541
|
+
static void rb_tb_serialize_create_transfers(VALUE items_rb, uint8_t *buf, long count) {
|
|
542
|
+
tb_transfer_t *items = (tb_transfer_t *)buf;
|
|
543
|
+
for (long i = 0; i < count; i++) {
|
|
544
|
+
VALUE item_rb = RARRAY_AREF(items_rb, i);
|
|
545
|
+
tb_transfer_t *item = &items[i];
|
|
546
|
+
rb_tb_pack_u128(rb_ivar_get(item_rb, rb_intern("@id")), &item->id);
|
|
547
|
+
rb_tb_pack_u128(rb_ivar_get(item_rb, rb_intern("@debit_account_id")), &item->debit_account_id);
|
|
548
|
+
rb_tb_pack_u128(rb_ivar_get(item_rb, rb_intern("@credit_account_id")), &item->credit_account_id);
|
|
549
|
+
rb_tb_pack_u128(rb_ivar_get(item_rb, rb_intern("@amount")), &item->amount);
|
|
550
|
+
rb_tb_pack_u128(rb_ivar_get(item_rb, rb_intern("@pending_id")), &item->pending_id);
|
|
551
|
+
rb_tb_pack_u128(rb_ivar_get(item_rb, rb_intern("@user_data_128")), &item->user_data_128);
|
|
552
|
+
item->user_data_64 = RB_NUM2ULL(rb_ivar_get(item_rb, rb_intern("@user_data_64")));
|
|
553
|
+
item->user_data_32 = RB_NUM2UINT(rb_ivar_get(item_rb, rb_intern("@user_data_32")));
|
|
554
|
+
item->timeout = RB_NUM2UINT(rb_ivar_get(item_rb, rb_intern("@timeout")));
|
|
555
|
+
item->ledger = RB_NUM2UINT(rb_ivar_get(item_rb, rb_intern("@ledger")));
|
|
556
|
+
item->code = RB_NUM2USHORT(rb_ivar_get(item_rb, rb_intern("@code")));
|
|
557
|
+
item->flags = RB_NUM2USHORT(rb_ivar_get(item_rb, rb_intern("@flags")));
|
|
558
|
+
item->timestamp = RB_NUM2ULL(rb_ivar_get(item_rb, rb_intern("@timestamp")));
|
|
559
|
+
}
|
|
560
|
+
}
|
|
561
|
+
|
|
562
|
+
static VALUE rb_tb_deserialize_create_transfers(const uint8_t *buf, uint32_t buf_size) {
|
|
563
|
+
VALUE klass = rb_path2class("TigerBeetle::CreateTransferResult");
|
|
564
|
+
tb_assert(buf_size % sizeof(tb_create_transfer_result_t) == 0);
|
|
565
|
+
long count = (long)(buf_size / sizeof(tb_create_transfer_result_t));
|
|
566
|
+
VALUE results = rb_ary_new_capa(count);
|
|
567
|
+
const tb_create_transfer_result_t *items = (const tb_create_transfer_result_t *)buf;
|
|
568
|
+
for (long i = 0; i < count; i++) {
|
|
569
|
+
const tb_create_transfer_result_t *item = &items[i];
|
|
570
|
+
VALUE obj = rb_obj_alloc(klass);
|
|
571
|
+
rb_ivar_set(obj, rb_intern("@timestamp"), RB_ULL2NUM(item->timestamp));
|
|
572
|
+
rb_ivar_set(obj, rb_intern("@status"), RB_UINT2NUM(item->status));
|
|
573
|
+
rb_ivar_set(
|
|
574
|
+
obj,
|
|
575
|
+
rb_intern("@status_name"),
|
|
576
|
+
rb_tb_create_transfers_status_name(item->status)
|
|
577
|
+
);
|
|
578
|
+
tb_assert(item->reserved == 0);
|
|
579
|
+
rb_ary_push(results, obj);
|
|
580
|
+
}
|
|
581
|
+
return results;
|
|
582
|
+
}
|
|
583
|
+
|
|
584
|
+
static void rb_tb_serialize_u128(VALUE items_rb, uint8_t *buf, long count) {
|
|
585
|
+
tb_uint128_t *ids = (tb_uint128_t *)buf;
|
|
586
|
+
for (long i = 0; i < count; i++) {
|
|
587
|
+
rb_tb_pack_u128(RARRAY_AREF(items_rb, i), &ids[i]);
|
|
588
|
+
}
|
|
589
|
+
}
|
|
590
|
+
|
|
591
|
+
static size_t rb_tb_event_size(TB_OPERATION operation) {
|
|
592
|
+
switch (operation) {
|
|
593
|
+
case TB_OPERATION_LOOKUP_ACCOUNTS:
|
|
594
|
+
return sizeof(tb_uint128_t);
|
|
595
|
+
case TB_OPERATION_LOOKUP_TRANSFERS:
|
|
596
|
+
return sizeof(tb_uint128_t);
|
|
597
|
+
case TB_OPERATION_GET_ACCOUNT_TRANSFERS:
|
|
598
|
+
return sizeof(tb_account_filter_t);
|
|
599
|
+
case TB_OPERATION_GET_ACCOUNT_BALANCES:
|
|
600
|
+
return sizeof(tb_account_filter_t);
|
|
601
|
+
case TB_OPERATION_QUERY_ACCOUNTS:
|
|
602
|
+
return sizeof(tb_query_filter_t);
|
|
603
|
+
case TB_OPERATION_QUERY_TRANSFERS:
|
|
604
|
+
return sizeof(tb_query_filter_t);
|
|
605
|
+
case TB_OPERATION_CREATE_ACCOUNTS:
|
|
606
|
+
return sizeof(tb_account_t);
|
|
607
|
+
case TB_OPERATION_CREATE_TRANSFERS:
|
|
608
|
+
return sizeof(tb_transfer_t);
|
|
609
|
+
default:
|
|
610
|
+
rb_raise(rb_eRuntimeError, "unsupported operation: %d", (int)operation);
|
|
611
|
+
return 0;
|
|
612
|
+
}
|
|
613
|
+
}
|
|
614
|
+
|
|
615
|
+
static void rb_tb_serialize(
|
|
616
|
+
TB_OPERATION operation,
|
|
617
|
+
VALUE items_rb,
|
|
618
|
+
uint8_t *buf,
|
|
619
|
+
long count
|
|
620
|
+
) {
|
|
621
|
+
switch (operation) {
|
|
622
|
+
case TB_OPERATION_LOOKUP_ACCOUNTS:
|
|
623
|
+
rb_tb_serialize_u128(items_rb, buf, count);
|
|
624
|
+
break;
|
|
625
|
+
case TB_OPERATION_LOOKUP_TRANSFERS:
|
|
626
|
+
rb_tb_serialize_u128(items_rb, buf, count);
|
|
627
|
+
break;
|
|
628
|
+
case TB_OPERATION_GET_ACCOUNT_TRANSFERS:
|
|
629
|
+
rb_tb_serialize_get_account_transfers(items_rb, buf, count);
|
|
630
|
+
break;
|
|
631
|
+
case TB_OPERATION_GET_ACCOUNT_BALANCES:
|
|
632
|
+
rb_tb_serialize_get_account_balances(items_rb, buf, count);
|
|
633
|
+
break;
|
|
634
|
+
case TB_OPERATION_QUERY_ACCOUNTS:
|
|
635
|
+
rb_tb_serialize_query_accounts(items_rb, buf, count);
|
|
636
|
+
break;
|
|
637
|
+
case TB_OPERATION_QUERY_TRANSFERS:
|
|
638
|
+
rb_tb_serialize_query_transfers(items_rb, buf, count);
|
|
639
|
+
break;
|
|
640
|
+
case TB_OPERATION_CREATE_ACCOUNTS:
|
|
641
|
+
rb_tb_serialize_create_accounts(items_rb, buf, count);
|
|
642
|
+
break;
|
|
643
|
+
case TB_OPERATION_CREATE_TRANSFERS:
|
|
644
|
+
rb_tb_serialize_create_transfers(items_rb, buf, count);
|
|
645
|
+
break;
|
|
646
|
+
default:
|
|
647
|
+
rb_raise(rb_eRuntimeError, "unsupported operation: %d", (int)operation);
|
|
648
|
+
}
|
|
649
|
+
}
|
|
650
|
+
|
|
651
|
+
static VALUE rb_tb_deserialize(
|
|
652
|
+
TB_OPERATION operation,
|
|
653
|
+
const uint8_t *buf,
|
|
654
|
+
uint32_t buf_size
|
|
655
|
+
) {
|
|
656
|
+
switch (operation) {
|
|
657
|
+
case TB_OPERATION_LOOKUP_ACCOUNTS:
|
|
658
|
+
return rb_tb_deserialize_lookup_accounts(buf, buf_size);
|
|
659
|
+
case TB_OPERATION_LOOKUP_TRANSFERS:
|
|
660
|
+
return rb_tb_deserialize_lookup_transfers(buf, buf_size);
|
|
661
|
+
case TB_OPERATION_GET_ACCOUNT_TRANSFERS:
|
|
662
|
+
return rb_tb_deserialize_get_account_transfers(buf, buf_size);
|
|
663
|
+
case TB_OPERATION_GET_ACCOUNT_BALANCES:
|
|
664
|
+
return rb_tb_deserialize_get_account_balances(buf, buf_size);
|
|
665
|
+
case TB_OPERATION_QUERY_ACCOUNTS:
|
|
666
|
+
return rb_tb_deserialize_query_accounts(buf, buf_size);
|
|
667
|
+
case TB_OPERATION_QUERY_TRANSFERS:
|
|
668
|
+
return rb_tb_deserialize_query_transfers(buf, buf_size);
|
|
669
|
+
case TB_OPERATION_CREATE_ACCOUNTS:
|
|
670
|
+
return rb_tb_deserialize_create_accounts(buf, buf_size);
|
|
671
|
+
case TB_OPERATION_CREATE_TRANSFERS:
|
|
672
|
+
return rb_tb_deserialize_create_transfers(buf, buf_size);
|
|
673
|
+
default:
|
|
674
|
+
rb_raise(rb_eRuntimeError, "unsupported operation: %d", (int)operation);
|
|
675
|
+
}
|
|
676
|
+
}
|
|
677
|
+
#endif
|