tigerbeetle 0.0.40 → 0.17.8
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 +670 -80
- data/docs/migration.md +201 -0
- data/sig/tigerbeetle.rbs +271 -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 +458 -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 +347 -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,458 @@
|
|
|
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
|
+
rb_integer_pack(v, dst, 16, 1, 0, INTEGER_PACK_LITTLE_ENDIAN);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
static inline VALUE rb_tb_unpack_u128(const void *src) {
|
|
21
|
+
return rb_integer_unpack(src, 16, 1, 0, INTEGER_PACK_LITTLE_ENDIAN);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
static inline void tb_assert_fail(
|
|
25
|
+
const char *condition,
|
|
26
|
+
int line,
|
|
27
|
+
const char *function
|
|
28
|
+
) {
|
|
29
|
+
fprintf(stderr, "tb_assert failed: %s at line %d in %s\n", condition, line, function);
|
|
30
|
+
abort();
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
// A version of `assert` macro that's always on regardless of NDEBUG macro.
|
|
34
|
+
#define tb_assert(condition) \
|
|
35
|
+
do { \
|
|
36
|
+
if (!(condition)) { \
|
|
37
|
+
tb_assert_fail(#condition, __LINE__, __func__); \
|
|
38
|
+
} \
|
|
39
|
+
} while (0)
|
|
40
|
+
static const char *rb_tb_init_error_message(TB_INIT_STATUS status) {
|
|
41
|
+
switch (status) {
|
|
42
|
+
case TB_INIT_SUCCESS:
|
|
43
|
+
return "success";
|
|
44
|
+
case TB_INIT_UNEXPECTED:
|
|
45
|
+
return "unexpected";
|
|
46
|
+
case TB_INIT_OUT_OF_MEMORY:
|
|
47
|
+
return "out_of_memory";
|
|
48
|
+
case TB_INIT_ADDRESS_INVALID:
|
|
49
|
+
return "address_invalid";
|
|
50
|
+
case TB_INIT_ADDRESS_LIMIT_EXCEEDED:
|
|
51
|
+
return "address_limit_exceeded";
|
|
52
|
+
case TB_INIT_SYSTEM_RESOURCES:
|
|
53
|
+
return "system_resources";
|
|
54
|
+
case TB_INIT_NETWORK_SUBSYSTEM:
|
|
55
|
+
return "network_subsystem";
|
|
56
|
+
default:
|
|
57
|
+
return "unknown";
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
static VALUE rb_tb_deserialize_lookup_accounts(const uint8_t *buf, uint32_t buf_size) {
|
|
62
|
+
VALUE klass = rb_path2class("TigerBeetle::Account");
|
|
63
|
+
tb_assert(buf_size % sizeof(tb_account_t) == 0);
|
|
64
|
+
long count = (long)(buf_size / sizeof(tb_account_t));
|
|
65
|
+
VALUE results = rb_ary_new_capa(count);
|
|
66
|
+
const tb_account_t *items = (const tb_account_t *)buf;
|
|
67
|
+
for (long i = 0; i < count; i++) {
|
|
68
|
+
const tb_account_t *item = &items[i];
|
|
69
|
+
VALUE obj = rb_obj_alloc(klass);
|
|
70
|
+
rb_ivar_set(obj, rb_intern("@id"), rb_tb_unpack_u128(&item->id));
|
|
71
|
+
rb_ivar_set(obj, rb_intern("@debits_pending"), rb_tb_unpack_u128(&item->debits_pending));
|
|
72
|
+
rb_ivar_set(obj, rb_intern("@debits_posted"), rb_tb_unpack_u128(&item->debits_posted));
|
|
73
|
+
rb_ivar_set(obj, rb_intern("@credits_pending"), rb_tb_unpack_u128(&item->credits_pending));
|
|
74
|
+
rb_ivar_set(obj, rb_intern("@credits_posted"), rb_tb_unpack_u128(&item->credits_posted));
|
|
75
|
+
rb_ivar_set(obj, rb_intern("@user_data_128"), rb_tb_unpack_u128(&item->user_data_128));
|
|
76
|
+
rb_ivar_set(obj, rb_intern("@user_data_64"), ULL2NUM(item->user_data_64));
|
|
77
|
+
rb_ivar_set(obj, rb_intern("@user_data_32"), UINT2NUM(item->user_data_32));
|
|
78
|
+
tb_assert(item->reserved == 0);
|
|
79
|
+
rb_ivar_set(obj, rb_intern("@ledger"), UINT2NUM(item->ledger));
|
|
80
|
+
rb_ivar_set(obj, rb_intern("@code"), UINT2NUM(item->code));
|
|
81
|
+
rb_ivar_set(obj, rb_intern("@flags"), UINT2NUM(item->flags));
|
|
82
|
+
rb_ivar_set(obj, rb_intern("@timestamp"), ULL2NUM(item->timestamp));
|
|
83
|
+
rb_ary_push(results, obj);
|
|
84
|
+
}
|
|
85
|
+
return results;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
static VALUE rb_tb_deserialize_lookup_transfers(const uint8_t *buf, uint32_t buf_size) {
|
|
89
|
+
VALUE klass = rb_path2class("TigerBeetle::Transfer");
|
|
90
|
+
tb_assert(buf_size % sizeof(tb_transfer_t) == 0);
|
|
91
|
+
long count = (long)(buf_size / sizeof(tb_transfer_t));
|
|
92
|
+
VALUE results = rb_ary_new_capa(count);
|
|
93
|
+
const tb_transfer_t *items = (const tb_transfer_t *)buf;
|
|
94
|
+
for (long i = 0; i < count; i++) {
|
|
95
|
+
const tb_transfer_t *item = &items[i];
|
|
96
|
+
VALUE obj = rb_obj_alloc(klass);
|
|
97
|
+
rb_ivar_set(obj, rb_intern("@id"), rb_tb_unpack_u128(&item->id));
|
|
98
|
+
rb_ivar_set(obj, rb_intern("@debit_account_id"), rb_tb_unpack_u128(&item->debit_account_id));
|
|
99
|
+
rb_ivar_set(obj, rb_intern("@credit_account_id"), rb_tb_unpack_u128(&item->credit_account_id));
|
|
100
|
+
rb_ivar_set(obj, rb_intern("@amount"), rb_tb_unpack_u128(&item->amount));
|
|
101
|
+
rb_ivar_set(obj, rb_intern("@pending_id"), rb_tb_unpack_u128(&item->pending_id));
|
|
102
|
+
rb_ivar_set(obj, rb_intern("@user_data_128"), rb_tb_unpack_u128(&item->user_data_128));
|
|
103
|
+
rb_ivar_set(obj, rb_intern("@user_data_64"), ULL2NUM(item->user_data_64));
|
|
104
|
+
rb_ivar_set(obj, rb_intern("@user_data_32"), UINT2NUM(item->user_data_32));
|
|
105
|
+
rb_ivar_set(obj, rb_intern("@timeout"), UINT2NUM(item->timeout));
|
|
106
|
+
rb_ivar_set(obj, rb_intern("@ledger"), UINT2NUM(item->ledger));
|
|
107
|
+
rb_ivar_set(obj, rb_intern("@code"), UINT2NUM(item->code));
|
|
108
|
+
rb_ivar_set(obj, rb_intern("@flags"), UINT2NUM(item->flags));
|
|
109
|
+
rb_ivar_set(obj, rb_intern("@timestamp"), ULL2NUM(item->timestamp));
|
|
110
|
+
rb_ary_push(results, obj);
|
|
111
|
+
}
|
|
112
|
+
return results;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
static void rb_tb_serialize_get_account_transfers(VALUE items_rb, uint8_t *buf, long count) {
|
|
116
|
+
tb_account_filter_t *items = (tb_account_filter_t *)buf;
|
|
117
|
+
for (long i = 0; i < count; i++) {
|
|
118
|
+
VALUE item_rb = RARRAY_AREF(items_rb, i);
|
|
119
|
+
tb_account_filter_t *item = &items[i];
|
|
120
|
+
rb_tb_pack_u128(rb_ivar_get(item_rb, rb_intern("@account_id")), &item->account_id);
|
|
121
|
+
rb_tb_pack_u128(rb_ivar_get(item_rb, rb_intern("@user_data_128")), &item->user_data_128);
|
|
122
|
+
item->user_data_64 = NUM2ULL(rb_ivar_get(item_rb, rb_intern("@user_data_64")));
|
|
123
|
+
item->user_data_32 = (uint32_t)NUM2UINT(rb_ivar_get(item_rb, rb_intern("@user_data_32")));
|
|
124
|
+
item->code = (uint16_t)NUM2UINT(rb_ivar_get(item_rb, rb_intern("@code")));
|
|
125
|
+
memset(item->reserved, 0, sizeof(item->reserved));
|
|
126
|
+
item->timestamp_min = NUM2ULL(rb_ivar_get(item_rb, rb_intern("@timestamp_min")));
|
|
127
|
+
item->timestamp_max = NUM2ULL(rb_ivar_get(item_rb, rb_intern("@timestamp_max")));
|
|
128
|
+
item->limit = (uint32_t)NUM2UINT(rb_ivar_get(item_rb, rb_intern("@limit")));
|
|
129
|
+
item->flags = (uint32_t)NUM2UINT(rb_ivar_get(item_rb, rb_intern("@flags")));
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
static VALUE rb_tb_deserialize_get_account_transfers(const uint8_t *buf, uint32_t buf_size) {
|
|
134
|
+
VALUE klass = rb_path2class("TigerBeetle::Transfer");
|
|
135
|
+
tb_assert(buf_size % sizeof(tb_transfer_t) == 0);
|
|
136
|
+
long count = (long)(buf_size / sizeof(tb_transfer_t));
|
|
137
|
+
VALUE results = rb_ary_new_capa(count);
|
|
138
|
+
const tb_transfer_t *items = (const tb_transfer_t *)buf;
|
|
139
|
+
for (long i = 0; i < count; i++) {
|
|
140
|
+
const tb_transfer_t *item = &items[i];
|
|
141
|
+
VALUE obj = rb_obj_alloc(klass);
|
|
142
|
+
rb_ivar_set(obj, rb_intern("@id"), rb_tb_unpack_u128(&item->id));
|
|
143
|
+
rb_ivar_set(obj, rb_intern("@debit_account_id"), rb_tb_unpack_u128(&item->debit_account_id));
|
|
144
|
+
rb_ivar_set(obj, rb_intern("@credit_account_id"), rb_tb_unpack_u128(&item->credit_account_id));
|
|
145
|
+
rb_ivar_set(obj, rb_intern("@amount"), rb_tb_unpack_u128(&item->amount));
|
|
146
|
+
rb_ivar_set(obj, rb_intern("@pending_id"), rb_tb_unpack_u128(&item->pending_id));
|
|
147
|
+
rb_ivar_set(obj, rb_intern("@user_data_128"), rb_tb_unpack_u128(&item->user_data_128));
|
|
148
|
+
rb_ivar_set(obj, rb_intern("@user_data_64"), ULL2NUM(item->user_data_64));
|
|
149
|
+
rb_ivar_set(obj, rb_intern("@user_data_32"), UINT2NUM(item->user_data_32));
|
|
150
|
+
rb_ivar_set(obj, rb_intern("@timeout"), UINT2NUM(item->timeout));
|
|
151
|
+
rb_ivar_set(obj, rb_intern("@ledger"), UINT2NUM(item->ledger));
|
|
152
|
+
rb_ivar_set(obj, rb_intern("@code"), UINT2NUM(item->code));
|
|
153
|
+
rb_ivar_set(obj, rb_intern("@flags"), UINT2NUM(item->flags));
|
|
154
|
+
rb_ivar_set(obj, rb_intern("@timestamp"), ULL2NUM(item->timestamp));
|
|
155
|
+
rb_ary_push(results, obj);
|
|
156
|
+
}
|
|
157
|
+
return results;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
static void rb_tb_serialize_get_account_balances(VALUE items_rb, uint8_t *buf, long count) {
|
|
161
|
+
tb_account_filter_t *items = (tb_account_filter_t *)buf;
|
|
162
|
+
for (long i = 0; i < count; i++) {
|
|
163
|
+
VALUE item_rb = RARRAY_AREF(items_rb, i);
|
|
164
|
+
tb_account_filter_t *item = &items[i];
|
|
165
|
+
rb_tb_pack_u128(rb_ivar_get(item_rb, rb_intern("@account_id")), &item->account_id);
|
|
166
|
+
rb_tb_pack_u128(rb_ivar_get(item_rb, rb_intern("@user_data_128")), &item->user_data_128);
|
|
167
|
+
item->user_data_64 = NUM2ULL(rb_ivar_get(item_rb, rb_intern("@user_data_64")));
|
|
168
|
+
item->user_data_32 = (uint32_t)NUM2UINT(rb_ivar_get(item_rb, rb_intern("@user_data_32")));
|
|
169
|
+
item->code = (uint16_t)NUM2UINT(rb_ivar_get(item_rb, rb_intern("@code")));
|
|
170
|
+
memset(item->reserved, 0, sizeof(item->reserved));
|
|
171
|
+
item->timestamp_min = NUM2ULL(rb_ivar_get(item_rb, rb_intern("@timestamp_min")));
|
|
172
|
+
item->timestamp_max = NUM2ULL(rb_ivar_get(item_rb, rb_intern("@timestamp_max")));
|
|
173
|
+
item->limit = (uint32_t)NUM2UINT(rb_ivar_get(item_rb, rb_intern("@limit")));
|
|
174
|
+
item->flags = (uint32_t)NUM2UINT(rb_ivar_get(item_rb, rb_intern("@flags")));
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
static VALUE rb_tb_deserialize_get_account_balances(const uint8_t *buf, uint32_t buf_size) {
|
|
179
|
+
VALUE klass = rb_path2class("TigerBeetle::AccountBalance");
|
|
180
|
+
tb_assert(buf_size % sizeof(tb_account_balance_t) == 0);
|
|
181
|
+
long count = (long)(buf_size / sizeof(tb_account_balance_t));
|
|
182
|
+
VALUE results = rb_ary_new_capa(count);
|
|
183
|
+
const tb_account_balance_t *items = (const tb_account_balance_t *)buf;
|
|
184
|
+
for (long i = 0; i < count; i++) {
|
|
185
|
+
const tb_account_balance_t *item = &items[i];
|
|
186
|
+
VALUE obj = rb_obj_alloc(klass);
|
|
187
|
+
rb_ivar_set(obj, rb_intern("@debits_pending"), rb_tb_unpack_u128(&item->debits_pending));
|
|
188
|
+
rb_ivar_set(obj, rb_intern("@debits_posted"), rb_tb_unpack_u128(&item->debits_posted));
|
|
189
|
+
rb_ivar_set(obj, rb_intern("@credits_pending"), rb_tb_unpack_u128(&item->credits_pending));
|
|
190
|
+
rb_ivar_set(obj, rb_intern("@credits_posted"), rb_tb_unpack_u128(&item->credits_posted));
|
|
191
|
+
rb_ivar_set(obj, rb_intern("@timestamp"), ULL2NUM(item->timestamp));
|
|
192
|
+
uint8_t zero[sizeof(item->reserved)] = {0};
|
|
193
|
+
tb_assert(memcmp(item->reserved, zero, sizeof(item->reserved)) == 0);
|
|
194
|
+
rb_ary_push(results, obj);
|
|
195
|
+
}
|
|
196
|
+
return results;
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
static void rb_tb_serialize_query_accounts(VALUE items_rb, uint8_t *buf, long count) {
|
|
200
|
+
tb_query_filter_t *items = (tb_query_filter_t *)buf;
|
|
201
|
+
for (long i = 0; i < count; i++) {
|
|
202
|
+
VALUE item_rb = RARRAY_AREF(items_rb, i);
|
|
203
|
+
tb_query_filter_t *item = &items[i];
|
|
204
|
+
rb_tb_pack_u128(rb_ivar_get(item_rb, rb_intern("@user_data_128")), &item->user_data_128);
|
|
205
|
+
item->user_data_64 = NUM2ULL(rb_ivar_get(item_rb, rb_intern("@user_data_64")));
|
|
206
|
+
item->user_data_32 = (uint32_t)NUM2UINT(rb_ivar_get(item_rb, rb_intern("@user_data_32")));
|
|
207
|
+
item->ledger = (uint32_t)NUM2UINT(rb_ivar_get(item_rb, rb_intern("@ledger")));
|
|
208
|
+
item->code = (uint16_t)NUM2UINT(rb_ivar_get(item_rb, rb_intern("@code")));
|
|
209
|
+
memset(item->reserved, 0, sizeof(item->reserved));
|
|
210
|
+
item->timestamp_min = NUM2ULL(rb_ivar_get(item_rb, rb_intern("@timestamp_min")));
|
|
211
|
+
item->timestamp_max = NUM2ULL(rb_ivar_get(item_rb, rb_intern("@timestamp_max")));
|
|
212
|
+
item->limit = (uint32_t)NUM2UINT(rb_ivar_get(item_rb, rb_intern("@limit")));
|
|
213
|
+
item->flags = (uint32_t)NUM2UINT(rb_ivar_get(item_rb, rb_intern("@flags")));
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
static VALUE rb_tb_deserialize_query_accounts(const uint8_t *buf, uint32_t buf_size) {
|
|
218
|
+
VALUE klass = rb_path2class("TigerBeetle::Account");
|
|
219
|
+
tb_assert(buf_size % sizeof(tb_account_t) == 0);
|
|
220
|
+
long count = (long)(buf_size / sizeof(tb_account_t));
|
|
221
|
+
VALUE results = rb_ary_new_capa(count);
|
|
222
|
+
const tb_account_t *items = (const tb_account_t *)buf;
|
|
223
|
+
for (long i = 0; i < count; i++) {
|
|
224
|
+
const tb_account_t *item = &items[i];
|
|
225
|
+
VALUE obj = rb_obj_alloc(klass);
|
|
226
|
+
rb_ivar_set(obj, rb_intern("@id"), rb_tb_unpack_u128(&item->id));
|
|
227
|
+
rb_ivar_set(obj, rb_intern("@debits_pending"), rb_tb_unpack_u128(&item->debits_pending));
|
|
228
|
+
rb_ivar_set(obj, rb_intern("@debits_posted"), rb_tb_unpack_u128(&item->debits_posted));
|
|
229
|
+
rb_ivar_set(obj, rb_intern("@credits_pending"), rb_tb_unpack_u128(&item->credits_pending));
|
|
230
|
+
rb_ivar_set(obj, rb_intern("@credits_posted"), rb_tb_unpack_u128(&item->credits_posted));
|
|
231
|
+
rb_ivar_set(obj, rb_intern("@user_data_128"), rb_tb_unpack_u128(&item->user_data_128));
|
|
232
|
+
rb_ivar_set(obj, rb_intern("@user_data_64"), ULL2NUM(item->user_data_64));
|
|
233
|
+
rb_ivar_set(obj, rb_intern("@user_data_32"), UINT2NUM(item->user_data_32));
|
|
234
|
+
tb_assert(item->reserved == 0);
|
|
235
|
+
rb_ivar_set(obj, rb_intern("@ledger"), UINT2NUM(item->ledger));
|
|
236
|
+
rb_ivar_set(obj, rb_intern("@code"), UINT2NUM(item->code));
|
|
237
|
+
rb_ivar_set(obj, rb_intern("@flags"), UINT2NUM(item->flags));
|
|
238
|
+
rb_ivar_set(obj, rb_intern("@timestamp"), ULL2NUM(item->timestamp));
|
|
239
|
+
rb_ary_push(results, obj);
|
|
240
|
+
}
|
|
241
|
+
return results;
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
static void rb_tb_serialize_query_transfers(VALUE items_rb, uint8_t *buf, long count) {
|
|
245
|
+
tb_query_filter_t *items = (tb_query_filter_t *)buf;
|
|
246
|
+
for (long i = 0; i < count; i++) {
|
|
247
|
+
VALUE item_rb = RARRAY_AREF(items_rb, i);
|
|
248
|
+
tb_query_filter_t *item = &items[i];
|
|
249
|
+
rb_tb_pack_u128(rb_ivar_get(item_rb, rb_intern("@user_data_128")), &item->user_data_128);
|
|
250
|
+
item->user_data_64 = NUM2ULL(rb_ivar_get(item_rb, rb_intern("@user_data_64")));
|
|
251
|
+
item->user_data_32 = (uint32_t)NUM2UINT(rb_ivar_get(item_rb, rb_intern("@user_data_32")));
|
|
252
|
+
item->ledger = (uint32_t)NUM2UINT(rb_ivar_get(item_rb, rb_intern("@ledger")));
|
|
253
|
+
item->code = (uint16_t)NUM2UINT(rb_ivar_get(item_rb, rb_intern("@code")));
|
|
254
|
+
memset(item->reserved, 0, sizeof(item->reserved));
|
|
255
|
+
item->timestamp_min = NUM2ULL(rb_ivar_get(item_rb, rb_intern("@timestamp_min")));
|
|
256
|
+
item->timestamp_max = NUM2ULL(rb_ivar_get(item_rb, rb_intern("@timestamp_max")));
|
|
257
|
+
item->limit = (uint32_t)NUM2UINT(rb_ivar_get(item_rb, rb_intern("@limit")));
|
|
258
|
+
item->flags = (uint32_t)NUM2UINT(rb_ivar_get(item_rb, rb_intern("@flags")));
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
static VALUE rb_tb_deserialize_query_transfers(const uint8_t *buf, uint32_t buf_size) {
|
|
263
|
+
VALUE klass = rb_path2class("TigerBeetle::Transfer");
|
|
264
|
+
tb_assert(buf_size % sizeof(tb_transfer_t) == 0);
|
|
265
|
+
long count = (long)(buf_size / sizeof(tb_transfer_t));
|
|
266
|
+
VALUE results = rb_ary_new_capa(count);
|
|
267
|
+
const tb_transfer_t *items = (const tb_transfer_t *)buf;
|
|
268
|
+
for (long i = 0; i < count; i++) {
|
|
269
|
+
const tb_transfer_t *item = &items[i];
|
|
270
|
+
VALUE obj = rb_obj_alloc(klass);
|
|
271
|
+
rb_ivar_set(obj, rb_intern("@id"), rb_tb_unpack_u128(&item->id));
|
|
272
|
+
rb_ivar_set(obj, rb_intern("@debit_account_id"), rb_tb_unpack_u128(&item->debit_account_id));
|
|
273
|
+
rb_ivar_set(obj, rb_intern("@credit_account_id"), rb_tb_unpack_u128(&item->credit_account_id));
|
|
274
|
+
rb_ivar_set(obj, rb_intern("@amount"), rb_tb_unpack_u128(&item->amount));
|
|
275
|
+
rb_ivar_set(obj, rb_intern("@pending_id"), rb_tb_unpack_u128(&item->pending_id));
|
|
276
|
+
rb_ivar_set(obj, rb_intern("@user_data_128"), rb_tb_unpack_u128(&item->user_data_128));
|
|
277
|
+
rb_ivar_set(obj, rb_intern("@user_data_64"), ULL2NUM(item->user_data_64));
|
|
278
|
+
rb_ivar_set(obj, rb_intern("@user_data_32"), UINT2NUM(item->user_data_32));
|
|
279
|
+
rb_ivar_set(obj, rb_intern("@timeout"), UINT2NUM(item->timeout));
|
|
280
|
+
rb_ivar_set(obj, rb_intern("@ledger"), UINT2NUM(item->ledger));
|
|
281
|
+
rb_ivar_set(obj, rb_intern("@code"), UINT2NUM(item->code));
|
|
282
|
+
rb_ivar_set(obj, rb_intern("@flags"), UINT2NUM(item->flags));
|
|
283
|
+
rb_ivar_set(obj, rb_intern("@timestamp"), ULL2NUM(item->timestamp));
|
|
284
|
+
rb_ary_push(results, obj);
|
|
285
|
+
}
|
|
286
|
+
return results;
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
static void rb_tb_serialize_create_accounts(VALUE items_rb, uint8_t *buf, long count) {
|
|
290
|
+
tb_account_t *items = (tb_account_t *)buf;
|
|
291
|
+
for (long i = 0; i < count; i++) {
|
|
292
|
+
VALUE item_rb = RARRAY_AREF(items_rb, i);
|
|
293
|
+
tb_account_t *item = &items[i];
|
|
294
|
+
rb_tb_pack_u128(rb_ivar_get(item_rb, rb_intern("@id")), &item->id);
|
|
295
|
+
rb_tb_pack_u128(rb_ivar_get(item_rb, rb_intern("@debits_pending")), &item->debits_pending);
|
|
296
|
+
rb_tb_pack_u128(rb_ivar_get(item_rb, rb_intern("@debits_posted")), &item->debits_posted);
|
|
297
|
+
rb_tb_pack_u128(rb_ivar_get(item_rb, rb_intern("@credits_pending")), &item->credits_pending);
|
|
298
|
+
rb_tb_pack_u128(rb_ivar_get(item_rb, rb_intern("@credits_posted")), &item->credits_posted);
|
|
299
|
+
rb_tb_pack_u128(rb_ivar_get(item_rb, rb_intern("@user_data_128")), &item->user_data_128);
|
|
300
|
+
item->user_data_64 = NUM2ULL(rb_ivar_get(item_rb, rb_intern("@user_data_64")));
|
|
301
|
+
item->user_data_32 = (uint32_t)NUM2UINT(rb_ivar_get(item_rb, rb_intern("@user_data_32")));
|
|
302
|
+
item->reserved = 0;
|
|
303
|
+
item->ledger = (uint32_t)NUM2UINT(rb_ivar_get(item_rb, rb_intern("@ledger")));
|
|
304
|
+
item->code = (uint16_t)NUM2UINT(rb_ivar_get(item_rb, rb_intern("@code")));
|
|
305
|
+
item->flags = (uint16_t)NUM2UINT(rb_ivar_get(item_rb, rb_intern("@flags")));
|
|
306
|
+
item->timestamp = NUM2ULL(rb_ivar_get(item_rb, rb_intern("@timestamp")));
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
static VALUE rb_tb_deserialize_create_accounts(const uint8_t *buf, uint32_t buf_size) {
|
|
311
|
+
VALUE klass = rb_path2class("TigerBeetle::CreateAccountResult");
|
|
312
|
+
tb_assert(buf_size % sizeof(tb_create_account_result_t) == 0);
|
|
313
|
+
long count = (long)(buf_size / sizeof(tb_create_account_result_t));
|
|
314
|
+
VALUE results = rb_ary_new_capa(count);
|
|
315
|
+
const tb_create_account_result_t *items = (const tb_create_account_result_t *)buf;
|
|
316
|
+
for (long i = 0; i < count; i++) {
|
|
317
|
+
const tb_create_account_result_t *item = &items[i];
|
|
318
|
+
VALUE obj = rb_obj_alloc(klass);
|
|
319
|
+
rb_ivar_set(obj, rb_intern("@timestamp"), ULL2NUM(item->timestamp));
|
|
320
|
+
rb_ivar_set(obj, rb_intern("@status"), UINT2NUM(item->status));
|
|
321
|
+
tb_assert(item->reserved == 0);
|
|
322
|
+
rb_ary_push(results, obj);
|
|
323
|
+
}
|
|
324
|
+
return results;
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
static void rb_tb_serialize_create_transfers(VALUE items_rb, uint8_t *buf, long count) {
|
|
328
|
+
tb_transfer_t *items = (tb_transfer_t *)buf;
|
|
329
|
+
for (long i = 0; i < count; i++) {
|
|
330
|
+
VALUE item_rb = RARRAY_AREF(items_rb, i);
|
|
331
|
+
tb_transfer_t *item = &items[i];
|
|
332
|
+
rb_tb_pack_u128(rb_ivar_get(item_rb, rb_intern("@id")), &item->id);
|
|
333
|
+
rb_tb_pack_u128(rb_ivar_get(item_rb, rb_intern("@debit_account_id")), &item->debit_account_id);
|
|
334
|
+
rb_tb_pack_u128(rb_ivar_get(item_rb, rb_intern("@credit_account_id")), &item->credit_account_id);
|
|
335
|
+
rb_tb_pack_u128(rb_ivar_get(item_rb, rb_intern("@amount")), &item->amount);
|
|
336
|
+
rb_tb_pack_u128(rb_ivar_get(item_rb, rb_intern("@pending_id")), &item->pending_id);
|
|
337
|
+
rb_tb_pack_u128(rb_ivar_get(item_rb, rb_intern("@user_data_128")), &item->user_data_128);
|
|
338
|
+
item->user_data_64 = NUM2ULL(rb_ivar_get(item_rb, rb_intern("@user_data_64")));
|
|
339
|
+
item->user_data_32 = (uint32_t)NUM2UINT(rb_ivar_get(item_rb, rb_intern("@user_data_32")));
|
|
340
|
+
item->timeout = (uint32_t)NUM2UINT(rb_ivar_get(item_rb, rb_intern("@timeout")));
|
|
341
|
+
item->ledger = (uint32_t)NUM2UINT(rb_ivar_get(item_rb, rb_intern("@ledger")));
|
|
342
|
+
item->code = (uint16_t)NUM2UINT(rb_ivar_get(item_rb, rb_intern("@code")));
|
|
343
|
+
item->flags = (uint16_t)NUM2UINT(rb_ivar_get(item_rb, rb_intern("@flags")));
|
|
344
|
+
item->timestamp = NUM2ULL(rb_ivar_get(item_rb, rb_intern("@timestamp")));
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
|
|
348
|
+
static VALUE rb_tb_deserialize_create_transfers(const uint8_t *buf, uint32_t buf_size) {
|
|
349
|
+
VALUE klass = rb_path2class("TigerBeetle::CreateTransferResult");
|
|
350
|
+
tb_assert(buf_size % sizeof(tb_create_transfer_result_t) == 0);
|
|
351
|
+
long count = (long)(buf_size / sizeof(tb_create_transfer_result_t));
|
|
352
|
+
VALUE results = rb_ary_new_capa(count);
|
|
353
|
+
const tb_create_transfer_result_t *items = (const tb_create_transfer_result_t *)buf;
|
|
354
|
+
for (long i = 0; i < count; i++) {
|
|
355
|
+
const tb_create_transfer_result_t *item = &items[i];
|
|
356
|
+
VALUE obj = rb_obj_alloc(klass);
|
|
357
|
+
rb_ivar_set(obj, rb_intern("@timestamp"), ULL2NUM(item->timestamp));
|
|
358
|
+
rb_ivar_set(obj, rb_intern("@status"), UINT2NUM(item->status));
|
|
359
|
+
tb_assert(item->reserved == 0);
|
|
360
|
+
rb_ary_push(results, obj);
|
|
361
|
+
}
|
|
362
|
+
return results;
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
static void rb_tb_serialize_u128(VALUE items_rb, uint8_t *buf, long count) {
|
|
366
|
+
tb_uint128_t *ids = (tb_uint128_t *)buf;
|
|
367
|
+
for (long i = 0; i < count; i++) {
|
|
368
|
+
rb_tb_pack_u128(RARRAY_AREF(items_rb, i), &ids[i]);
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
|
|
372
|
+
static size_t rb_tb_event_size(TB_OPERATION operation) {
|
|
373
|
+
switch (operation) {
|
|
374
|
+
case TB_OPERATION_LOOKUP_ACCOUNTS:
|
|
375
|
+
return sizeof(tb_uint128_t);
|
|
376
|
+
case TB_OPERATION_LOOKUP_TRANSFERS:
|
|
377
|
+
return sizeof(tb_uint128_t);
|
|
378
|
+
case TB_OPERATION_GET_ACCOUNT_TRANSFERS:
|
|
379
|
+
return sizeof(tb_account_filter_t);
|
|
380
|
+
case TB_OPERATION_GET_ACCOUNT_BALANCES:
|
|
381
|
+
return sizeof(tb_account_filter_t);
|
|
382
|
+
case TB_OPERATION_QUERY_ACCOUNTS:
|
|
383
|
+
return sizeof(tb_query_filter_t);
|
|
384
|
+
case TB_OPERATION_QUERY_TRANSFERS:
|
|
385
|
+
return sizeof(tb_query_filter_t);
|
|
386
|
+
case TB_OPERATION_CREATE_ACCOUNTS:
|
|
387
|
+
return sizeof(tb_account_t);
|
|
388
|
+
case TB_OPERATION_CREATE_TRANSFERS:
|
|
389
|
+
return sizeof(tb_transfer_t);
|
|
390
|
+
default:
|
|
391
|
+
rb_raise(rb_eRuntimeError, "unsupported operation: %d", (int)operation);
|
|
392
|
+
return 0;
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
|
|
396
|
+
static void rb_tb_serialize(
|
|
397
|
+
TB_OPERATION operation,
|
|
398
|
+
VALUE items_rb,
|
|
399
|
+
uint8_t *buf,
|
|
400
|
+
long count
|
|
401
|
+
) {
|
|
402
|
+
switch (operation) {
|
|
403
|
+
case TB_OPERATION_LOOKUP_ACCOUNTS:
|
|
404
|
+
rb_tb_serialize_u128(items_rb, buf, count);
|
|
405
|
+
break;
|
|
406
|
+
case TB_OPERATION_LOOKUP_TRANSFERS:
|
|
407
|
+
rb_tb_serialize_u128(items_rb, buf, count);
|
|
408
|
+
break;
|
|
409
|
+
case TB_OPERATION_GET_ACCOUNT_TRANSFERS:
|
|
410
|
+
rb_tb_serialize_get_account_transfers(items_rb, buf, count);
|
|
411
|
+
break;
|
|
412
|
+
case TB_OPERATION_GET_ACCOUNT_BALANCES:
|
|
413
|
+
rb_tb_serialize_get_account_balances(items_rb, buf, count);
|
|
414
|
+
break;
|
|
415
|
+
case TB_OPERATION_QUERY_ACCOUNTS:
|
|
416
|
+
rb_tb_serialize_query_accounts(items_rb, buf, count);
|
|
417
|
+
break;
|
|
418
|
+
case TB_OPERATION_QUERY_TRANSFERS:
|
|
419
|
+
rb_tb_serialize_query_transfers(items_rb, buf, count);
|
|
420
|
+
break;
|
|
421
|
+
case TB_OPERATION_CREATE_ACCOUNTS:
|
|
422
|
+
rb_tb_serialize_create_accounts(items_rb, buf, count);
|
|
423
|
+
break;
|
|
424
|
+
case TB_OPERATION_CREATE_TRANSFERS:
|
|
425
|
+
rb_tb_serialize_create_transfers(items_rb, buf, count);
|
|
426
|
+
break;
|
|
427
|
+
default:
|
|
428
|
+
rb_raise(rb_eRuntimeError, "unsupported operation: %d", (int)operation);
|
|
429
|
+
}
|
|
430
|
+
}
|
|
431
|
+
|
|
432
|
+
static VALUE rb_tb_deserialize(
|
|
433
|
+
TB_OPERATION operation,
|
|
434
|
+
const uint8_t *buf,
|
|
435
|
+
uint32_t buf_size
|
|
436
|
+
) {
|
|
437
|
+
switch (operation) {
|
|
438
|
+
case TB_OPERATION_LOOKUP_ACCOUNTS:
|
|
439
|
+
return rb_tb_deserialize_lookup_accounts(buf, buf_size);
|
|
440
|
+
case TB_OPERATION_LOOKUP_TRANSFERS:
|
|
441
|
+
return rb_tb_deserialize_lookup_transfers(buf, buf_size);
|
|
442
|
+
case TB_OPERATION_GET_ACCOUNT_TRANSFERS:
|
|
443
|
+
return rb_tb_deserialize_get_account_transfers(buf, buf_size);
|
|
444
|
+
case TB_OPERATION_GET_ACCOUNT_BALANCES:
|
|
445
|
+
return rb_tb_deserialize_get_account_balances(buf, buf_size);
|
|
446
|
+
case TB_OPERATION_QUERY_ACCOUNTS:
|
|
447
|
+
return rb_tb_deserialize_query_accounts(buf, buf_size);
|
|
448
|
+
case TB_OPERATION_QUERY_TRANSFERS:
|
|
449
|
+
return rb_tb_deserialize_query_transfers(buf, buf_size);
|
|
450
|
+
case TB_OPERATION_CREATE_ACCOUNTS:
|
|
451
|
+
return rb_tb_deserialize_create_accounts(buf, buf_size);
|
|
452
|
+
case TB_OPERATION_CREATE_TRANSFERS:
|
|
453
|
+
return rb_tb_deserialize_create_transfers(buf, buf_size);
|
|
454
|
+
default:
|
|
455
|
+
rb_raise(rb_eRuntimeError, "unsupported operation: %d", (int)operation);
|
|
456
|
+
}
|
|
457
|
+
}
|
|
458
|
+
#endif
|
|
@@ -69,8 +69,8 @@ typedef struct tb_transfer_t {
|
|
|
69
69
|
uint64_t timestamp;
|
|
70
70
|
} tb_transfer_t;
|
|
71
71
|
|
|
72
|
-
typedef enum
|
|
73
|
-
|
|
72
|
+
typedef enum TB_CREATE_ACCOUNT_STATUS {
|
|
73
|
+
TB_CREATE_ACCOUNT_CREATED = 0xFFFFFFFF,
|
|
74
74
|
TB_CREATE_ACCOUNT_LINKED_EVENT_FAILED = 1,
|
|
75
75
|
TB_CREATE_ACCOUNT_LINKED_EVENT_CHAIN_OPEN = 2,
|
|
76
76
|
TB_CREATE_ACCOUNT_IMPORTED_EVENT_EXPECTED = 22,
|
|
@@ -97,10 +97,10 @@ typedef enum TB_CREATE_ACCOUNT_RESULT {
|
|
|
97
97
|
TB_CREATE_ACCOUNT_LEDGER_MUST_NOT_BE_ZERO = 13,
|
|
98
98
|
TB_CREATE_ACCOUNT_CODE_MUST_NOT_BE_ZERO = 14,
|
|
99
99
|
TB_CREATE_ACCOUNT_IMPORTED_EVENT_TIMESTAMP_MUST_NOT_REGRESS = 26,
|
|
100
|
-
}
|
|
100
|
+
} TB_CREATE_ACCOUNT_STATUS;
|
|
101
101
|
|
|
102
|
-
typedef enum
|
|
103
|
-
|
|
102
|
+
typedef enum TB_CREATE_TRANSFER_STATUS {
|
|
103
|
+
TB_CREATE_TRANSFER_CREATED = 0xFFFFFFFF,
|
|
104
104
|
TB_CREATE_TRANSFER_LINKED_EVENT_FAILED = 1,
|
|
105
105
|
TB_CREATE_TRANSFER_LINKED_EVENT_CHAIN_OPEN = 2,
|
|
106
106
|
TB_CREATE_TRANSFER_IMPORTED_EVENT_EXPECTED = 56,
|
|
@@ -168,17 +168,19 @@ typedef enum TB_CREATE_TRANSFER_RESULT {
|
|
|
168
168
|
TB_CREATE_TRANSFER_OVERFLOWS_TIMEOUT = 53,
|
|
169
169
|
TB_CREATE_TRANSFER_EXCEEDS_CREDITS = 54,
|
|
170
170
|
TB_CREATE_TRANSFER_EXCEEDS_DEBITS = 55,
|
|
171
|
-
}
|
|
171
|
+
} TB_CREATE_TRANSFER_STATUS;
|
|
172
172
|
|
|
173
|
-
typedef struct
|
|
174
|
-
|
|
175
|
-
uint32_t
|
|
176
|
-
|
|
173
|
+
typedef struct tb_create_account_result_t {
|
|
174
|
+
uint64_t timestamp;
|
|
175
|
+
uint32_t status;
|
|
176
|
+
uint32_t reserved;
|
|
177
|
+
} tb_create_account_result_t;
|
|
177
178
|
|
|
178
|
-
typedef struct
|
|
179
|
-
|
|
180
|
-
uint32_t
|
|
181
|
-
|
|
179
|
+
typedef struct tb_create_transfer_result_t {
|
|
180
|
+
uint64_t timestamp;
|
|
181
|
+
uint32_t status;
|
|
182
|
+
uint32_t reserved;
|
|
183
|
+
} tb_create_transfer_result_t;
|
|
182
184
|
|
|
183
185
|
typedef struct tb_account_filter_t {
|
|
184
186
|
tb_uint128_t account_id;
|
|
@@ -248,14 +250,14 @@ typedef struct tb_packet_t {
|
|
|
248
250
|
typedef enum TB_OPERATION {
|
|
249
251
|
TB_OPERATION_PULSE = 128,
|
|
250
252
|
TB_OPERATION_GET_CHANGE_EVENTS = 137,
|
|
251
|
-
TB_OPERATION_CREATE_ACCOUNTS = 138,
|
|
252
|
-
TB_OPERATION_CREATE_TRANSFERS = 139,
|
|
253
253
|
TB_OPERATION_LOOKUP_ACCOUNTS = 140,
|
|
254
254
|
TB_OPERATION_LOOKUP_TRANSFERS = 141,
|
|
255
255
|
TB_OPERATION_GET_ACCOUNT_TRANSFERS = 142,
|
|
256
256
|
TB_OPERATION_GET_ACCOUNT_BALANCES = 143,
|
|
257
257
|
TB_OPERATION_QUERY_ACCOUNTS = 144,
|
|
258
258
|
TB_OPERATION_QUERY_TRANSFERS = 145,
|
|
259
|
+
TB_OPERATION_CREATE_ACCOUNTS = 146,
|
|
260
|
+
TB_OPERATION_CREATE_TRANSFERS = 147,
|
|
259
261
|
} TB_OPERATION;
|
|
260
262
|
|
|
261
263
|
typedef enum TB_PACKET_STATUS {
|