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
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
const Docs = @import("../docs_types.zig").Docs;
|
|
2
|
-
|
|
3
|
-
pub const RustDocs = Docs{
|
|
4
|
-
.directory = "rust",
|
|
5
|
-
|
|
6
|
-
.markdown_name = "rust",
|
|
7
|
-
.extension = "rs",
|
|
8
|
-
.proper_name = "Rust",
|
|
9
|
-
|
|
10
|
-
.test_source_path = "src/",
|
|
11
|
-
|
|
12
|
-
.name = "tigerbeetle-rust",
|
|
13
|
-
.description =
|
|
14
|
-
\\The TigerBeetle client for Rust.
|
|
15
|
-
\\
|
|
16
|
-
\\[](https://crates.io/crates/tigerbeetle)
|
|
17
|
-
\\[](https://docs.rs/tigerbeetle)
|
|
18
|
-
,
|
|
19
|
-
|
|
20
|
-
.prerequisites =
|
|
21
|
-
\\* Rust 1.68+
|
|
22
|
-
,
|
|
23
|
-
|
|
24
|
-
.project_file_name = "Cargo.toml",
|
|
25
|
-
.project_file =
|
|
26
|
-
\\[package]
|
|
27
|
-
\\name = "tigerbeetle-test"
|
|
28
|
-
\\version = "0.1.0"
|
|
29
|
-
\\edition = "2024"
|
|
30
|
-
\\
|
|
31
|
-
\\[dependencies]
|
|
32
|
-
\\tigerbeetle.path = "../.."
|
|
33
|
-
\\futures = "0.3"
|
|
34
|
-
,
|
|
35
|
-
|
|
36
|
-
.test_file_name = "main",
|
|
37
|
-
|
|
38
|
-
.install_commands = "",
|
|
39
|
-
|
|
40
|
-
.run_commands = "cargo run",
|
|
41
|
-
|
|
42
|
-
.examples = "",
|
|
43
|
-
|
|
44
|
-
.client_object_documentation = "",
|
|
45
|
-
|
|
46
|
-
.create_accounts_documentation = "",
|
|
47
|
-
|
|
48
|
-
.account_flags_documentation =
|
|
49
|
-
\\To toggle behavior for an account, use the `AccountFlags` bitflags.
|
|
50
|
-
\\You can combine multiple flags using the `|` operator. Here are a
|
|
51
|
-
\\few examples:
|
|
52
|
-
\\
|
|
53
|
-
\\* `AccountFlags::Linked`
|
|
54
|
-
\\* `AccountFlags::DebitsMustNotExceedCredits`
|
|
55
|
-
\\* `AccountFlags::CreditsMustNotExceedDebits`
|
|
56
|
-
\\* `AccountFlags::History`
|
|
57
|
-
\\* `AccountFlags::Linked | AccountFlags::History`
|
|
58
|
-
,
|
|
59
|
-
|
|
60
|
-
.create_accounts_errors_documentation =
|
|
61
|
-
\\To handle errors, iterate over the `Vec<CreateAccountsResult>` returned
|
|
62
|
-
\\from `client.create_accounts()`. Each result contains an `index` field
|
|
63
|
-
\\to map back to the input account and a `result` field with the
|
|
64
|
-
\\`CreateAccountResult` enum.
|
|
65
|
-
,
|
|
66
|
-
|
|
67
|
-
.create_transfers_documentation =
|
|
68
|
-
\\Transfers support various types including regular, pending, linked,
|
|
69
|
-
\\and two-phase transfers. Use `TransferFlags` to specify behavior:
|
|
70
|
-
\\
|
|
71
|
-
\\```rust
|
|
72
|
-
\\let transfer = Transfer {
|
|
73
|
-
\\ id: tb::id(),
|
|
74
|
-
\\ debit_account_id: account1_id,
|
|
75
|
-
\\ credit_account_id: account2_id,
|
|
76
|
-
\\ amount: 100,
|
|
77
|
-
\\ ledger: 1,
|
|
78
|
-
\\ code: 1,
|
|
79
|
-
\\ flags: TransferFlags::Pending,
|
|
80
|
-
\\ ..Default::default()
|
|
81
|
-
\\};
|
|
82
|
-
\\```
|
|
83
|
-
\\
|
|
84
|
-
\\For linked transfers, set the `Linked` flag on all transfers in the
|
|
85
|
-
\\chain except the last one. If any transfer in a linked chain fails,
|
|
86
|
-
\\the entire chain is rolled back.
|
|
87
|
-
,
|
|
88
|
-
.create_transfers_errors_documentation =
|
|
89
|
-
\\To handle transfer errors, iterate over the `Vec<CreateTransfersResult>`
|
|
90
|
-
\\returned from `client.create_transfers()`. Each result contains an
|
|
91
|
-
\\`index` field to map back to the input transfer and a `result` field
|
|
92
|
-
\\with the `CreateTransferResult` enum.
|
|
93
|
-
,
|
|
94
|
-
|
|
95
|
-
.transfer_flags_documentation =
|
|
96
|
-
\\To toggle behavior for a transfer, use the `TransferFlags` bitflags.
|
|
97
|
-
\\You can combine multiple flags using the `|` operator. Here are a
|
|
98
|
-
\\few examples:
|
|
99
|
-
\\
|
|
100
|
-
\\* `TransferFlags::Linked`
|
|
101
|
-
\\* `TransferFlags::Pending`
|
|
102
|
-
\\* `TransferFlags::PostPendingTransfer`
|
|
103
|
-
\\* `TransferFlags::VoidPendingTransfer`
|
|
104
|
-
\\* `TransferFlags::Linked | TransferFlags::Pending`
|
|
105
|
-
,
|
|
106
|
-
};
|
|
@@ -1,305 +0,0 @@
|
|
|
1
|
-
const std = @import("std");
|
|
2
|
-
const vsr = @import("vsr");
|
|
3
|
-
const exports = vsr.tb_client.exports;
|
|
4
|
-
const assert = std.debug.assert;
|
|
5
|
-
|
|
6
|
-
const type_mappings = .{
|
|
7
|
-
.{ exports.tb_account_flags, "TB_ACCOUNT_FLAGS" },
|
|
8
|
-
.{ exports.tb_account_t, "tb_account_t" },
|
|
9
|
-
.{ exports.tb_transfer_flags, "TB_TRANSFER_FLAGS" },
|
|
10
|
-
.{ exports.tb_transfer_t, "tb_transfer_t" },
|
|
11
|
-
.{ exports.tb_create_account_result, "TB_CREATE_ACCOUNT_RESULT" },
|
|
12
|
-
.{ exports.tb_create_transfer_result, "TB_CREATE_TRANSFER_RESULT" },
|
|
13
|
-
.{ exports.tb_create_accounts_result_t, "tb_create_accounts_result_t" },
|
|
14
|
-
.{ exports.tb_create_transfers_result_t, "tb_create_transfers_result_t" },
|
|
15
|
-
.{ exports.tb_account_filter_t, "tb_account_filter_t" },
|
|
16
|
-
.{ exports.tb_account_filter_flags, "TB_ACCOUNT_FILTER_FLAGS" },
|
|
17
|
-
.{ exports.tb_account_balance_t, "tb_account_balance_t" },
|
|
18
|
-
.{ exports.tb_query_filter_t, "tb_query_filter_t" },
|
|
19
|
-
.{ exports.tb_query_filter_flags, "TB_QUERY_FILTER_FLAGS" },
|
|
20
|
-
.{
|
|
21
|
-
exports.tb_client_t, "tb_client_t",
|
|
22
|
-
\\// Opaque struct serving as a handle for the client instance.
|
|
23
|
-
\\// This struct must be "pinned" (not copyable or movable), as its address must remain stable
|
|
24
|
-
\\// throughout the lifetime of the client instance.
|
|
25
|
-
},
|
|
26
|
-
.{
|
|
27
|
-
exports.tb_packet_t, "tb_packet_t",
|
|
28
|
-
\\// Struct containing the state of a request submitted through the client.
|
|
29
|
-
\\// This struct must be "pinned" (not copyable or movable), as its address must remain stable
|
|
30
|
-
\\// throughout the lifetime of the request.
|
|
31
|
-
},
|
|
32
|
-
.{ exports.tb_operation, "TB_OPERATION" },
|
|
33
|
-
.{ exports.tb_packet_status, "TB_PACKET_STATUS" },
|
|
34
|
-
.{ exports.tb_init_status, "TB_INIT_STATUS" },
|
|
35
|
-
.{ exports.tb_client_status, "TB_CLIENT_STATUS" },
|
|
36
|
-
.{ exports.tb_register_log_callback_status, "TB_REGISTER_LOG_CALLBACK_STATUS" },
|
|
37
|
-
.{ exports.tb_log_level, "TB_LOG_LEVEL" },
|
|
38
|
-
};
|
|
39
|
-
|
|
40
|
-
fn resolve_rust_type(comptime Type: type) []const u8 {
|
|
41
|
-
switch (@typeInfo(Type)) {
|
|
42
|
-
.array => |info| return resolve_rust_type(info.child),
|
|
43
|
-
.@"enum" => |info| return resolve_rust_type(info.tag_type),
|
|
44
|
-
.@"struct" => return resolve_rust_type(std.meta.Int(.unsigned, @bitSizeOf(Type))),
|
|
45
|
-
.bool => return "u8", // todo "bool"
|
|
46
|
-
.int => |info| {
|
|
47
|
-
assert(info.signedness == .unsigned);
|
|
48
|
-
return switch (info.bits) {
|
|
49
|
-
8 => "u8",
|
|
50
|
-
16 => "u16",
|
|
51
|
-
32 => "u32",
|
|
52
|
-
64 => "u64",
|
|
53
|
-
128 => "u128",
|
|
54
|
-
else => @compileError("invalid int type"),
|
|
55
|
-
};
|
|
56
|
-
},
|
|
57
|
-
.optional => |info| switch (@typeInfo(info.child)) {
|
|
58
|
-
.pointer => return resolve_rust_type(info.child),
|
|
59
|
-
else => @compileError("Unsupported optional type: " ++ @typeName(Type)),
|
|
60
|
-
},
|
|
61
|
-
.pointer => |info| {
|
|
62
|
-
assert(info.size != .slice);
|
|
63
|
-
assert(!info.is_allowzero);
|
|
64
|
-
|
|
65
|
-
inline for (type_mappings) |type_mapping| {
|
|
66
|
-
const ZigType = type_mapping[0];
|
|
67
|
-
const c_name = type_mapping[1];
|
|
68
|
-
|
|
69
|
-
if (info.child == ZigType) {
|
|
70
|
-
return "*mut " ++ c_name;
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
return comptime "*mut " ++ resolve_rust_type(info.child);
|
|
75
|
-
},
|
|
76
|
-
.void, .@"opaque" => return "::std::os::raw::c_void",
|
|
77
|
-
else => @compileError("Unhandled type: " ++ @typeName(Type)),
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
fn to_uppercase(comptime input: []const u8) [input.len]u8 {
|
|
82
|
-
comptime var output: [input.len]u8 = undefined;
|
|
83
|
-
inline for (&output, 0..) |*char, i| {
|
|
84
|
-
char.* = input[i];
|
|
85
|
-
char.* -= 32 * @as(u8, @intFromBool(char.* >= 'a' and char.* <= 'z'));
|
|
86
|
-
}
|
|
87
|
-
return output;
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
fn emit_enum(
|
|
91
|
-
buffer: *std.ArrayList(u8),
|
|
92
|
-
comptime Type: type,
|
|
93
|
-
comptime type_info: anytype,
|
|
94
|
-
comptime rust_name: []const u8,
|
|
95
|
-
comptime skip_fields: []const []const u8,
|
|
96
|
-
) !void {
|
|
97
|
-
var suffix_pos = std.mem.lastIndexOf(u8, rust_name, "_").?;
|
|
98
|
-
if (std.mem.count(u8, rust_name, "_") == 1) suffix_pos = rust_name.len;
|
|
99
|
-
|
|
100
|
-
const backing_type = switch (@typeInfo(Type)) {
|
|
101
|
-
.@"struct" => |s| s.backing_integer.?,
|
|
102
|
-
.@"enum" => |e| e.tag_type,
|
|
103
|
-
else => @panic("unexpected"),
|
|
104
|
-
};
|
|
105
|
-
const rust_backing_type_str = switch (@typeInfo(backing_type)) {
|
|
106
|
-
.int => |i| brk: {
|
|
107
|
-
break :brk switch (i.bits) {
|
|
108
|
-
32 => switch (i.signedness) {
|
|
109
|
-
.unsigned => "u32",
|
|
110
|
-
.signed => "i32",
|
|
111
|
-
},
|
|
112
|
-
16 => "u16",
|
|
113
|
-
8 => "u8",
|
|
114
|
-
else => @panic("unexpected"),
|
|
115
|
-
};
|
|
116
|
-
},
|
|
117
|
-
else => @panic("unexpected"),
|
|
118
|
-
};
|
|
119
|
-
|
|
120
|
-
try buffer.writer().print("pub type {s} = {s};\n", .{ rust_name, rust_backing_type_str });
|
|
121
|
-
|
|
122
|
-
inline for (type_info.fields, 0..) |field, i| {
|
|
123
|
-
if (comptime std.mem.startsWith(u8, field.name, "deprecated_")) continue;
|
|
124
|
-
comptime var skip = false;
|
|
125
|
-
inline for (skip_fields) |sf| {
|
|
126
|
-
skip = skip or comptime std.mem.eql(u8, sf, field.name);
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
if (!skip) {
|
|
130
|
-
const field_name = to_uppercase(field.name);
|
|
131
|
-
if (@typeInfo(Type) == .@"enum") {
|
|
132
|
-
try buffer.writer().print("pub const {s}_{s}_{s}: {s} = {};\n", .{
|
|
133
|
-
rust_name,
|
|
134
|
-
rust_name[0..suffix_pos],
|
|
135
|
-
@as([]const u8, &field_name),
|
|
136
|
-
rust_name,
|
|
137
|
-
@intFromEnum(@field(Type, field.name)),
|
|
138
|
-
});
|
|
139
|
-
} else {
|
|
140
|
-
// Packed structs.
|
|
141
|
-
try buffer.writer().print("pub const {s}_{s}_{s}: {s} = 1 << {};\n", .{
|
|
142
|
-
rust_name,
|
|
143
|
-
rust_name[0..suffix_pos],
|
|
144
|
-
@as([]const u8, &field_name),
|
|
145
|
-
rust_name,
|
|
146
|
-
i,
|
|
147
|
-
});
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
try buffer.writer().print("\n", .{});
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
fn emit_struct(
|
|
156
|
-
buffer: *std.ArrayList(u8),
|
|
157
|
-
comptime type_info: anytype,
|
|
158
|
-
comptime rust_name: []const u8,
|
|
159
|
-
) !void {
|
|
160
|
-
try buffer.writer().print("#[repr(C)]\n", .{});
|
|
161
|
-
try buffer.writer().print("#[derive(Debug, Copy, Clone)]\n", .{});
|
|
162
|
-
try buffer.writer().print("pub struct {s} {{\n", .{rust_name});
|
|
163
|
-
|
|
164
|
-
inline for (type_info.fields) |field| {
|
|
165
|
-
switch (@typeInfo(field.type)) {
|
|
166
|
-
.array => |array| {
|
|
167
|
-
try buffer.writer().print(" pub {s}: [{s}; {}]", .{
|
|
168
|
-
field.name,
|
|
169
|
-
resolve_rust_type(field.type),
|
|
170
|
-
array.len,
|
|
171
|
-
});
|
|
172
|
-
},
|
|
173
|
-
else => {
|
|
174
|
-
try buffer.writer().print(" pub {s}: {s}", .{
|
|
175
|
-
field.name,
|
|
176
|
-
resolve_rust_type(field.type),
|
|
177
|
-
});
|
|
178
|
-
},
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
try buffer.writer().print(",\n", .{});
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
try buffer.writer().print("}}\n\n", .{});
|
|
185
|
-
}
|
|
186
|
-
|
|
187
|
-
pub fn main() !void {
|
|
188
|
-
var arena = std.heap.ArenaAllocator.init(std.heap.page_allocator);
|
|
189
|
-
defer arena.deinit();
|
|
190
|
-
const allocator = arena.allocator();
|
|
191
|
-
|
|
192
|
-
var buffer = std.ArrayList(u8).init(allocator);
|
|
193
|
-
try buffer.writer().print(
|
|
194
|
-
\\ //////////////////////////////////////////////////////////
|
|
195
|
-
\\ // This file was auto-generated by tb_client_header.zig //
|
|
196
|
-
\\ // Do not manually modify. //
|
|
197
|
-
\\ //////////////////////////////////////////////////////////
|
|
198
|
-
\\
|
|
199
|
-
\\
|
|
200
|
-
, .{});
|
|
201
|
-
|
|
202
|
-
inline for (type_mappings) |type_mapping| {
|
|
203
|
-
const ZigType = type_mapping[0];
|
|
204
|
-
const rust_name = type_mapping[1];
|
|
205
|
-
if (type_mapping.len == 3) {
|
|
206
|
-
const comments: []const u8 = type_mapping[2];
|
|
207
|
-
try buffer.writer().print(comments, .{});
|
|
208
|
-
try buffer.writer().print("\n", .{});
|
|
209
|
-
}
|
|
210
|
-
|
|
211
|
-
switch (@typeInfo(ZigType)) {
|
|
212
|
-
.@"struct" => |info| switch (info.layout) {
|
|
213
|
-
.auto => @compileError("Invalid C struct type: " ++ @typeName(ZigType)),
|
|
214
|
-
.@"packed" => try emit_enum(&buffer, ZigType, info, rust_name, &.{"padding"}),
|
|
215
|
-
.@"extern" => try emit_struct(&buffer, info, rust_name),
|
|
216
|
-
},
|
|
217
|
-
.@"enum" => |info| {
|
|
218
|
-
try emit_enum(&buffer, ZigType, info, rust_name, &.{});
|
|
219
|
-
},
|
|
220
|
-
else => try buffer.writer().print("pub type {s} = {s};\n\n", .{
|
|
221
|
-
rust_name,
|
|
222
|
-
resolve_rust_type(ZigType),
|
|
223
|
-
}),
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
|
|
227
|
-
try buffer.writer().print(
|
|
228
|
-
\\extern "C" {{
|
|
229
|
-
\\ // Initialize a new TigerBeetle client which connects to the addresses provided and
|
|
230
|
-
\\ // completes submitted packets by invoking the callback with the given context.
|
|
231
|
-
\\ pub fn tb_client_init(
|
|
232
|
-
\\ client_out: *mut tb_client_t,
|
|
233
|
-
\\ // 128-bit unsigned integer represented as a 16-byte little-endian array.
|
|
234
|
-
\\ cluster_id: *const [u8; 16],
|
|
235
|
-
\\ address_ptr: *const ::std::os::raw::c_char,
|
|
236
|
-
\\ address_len: u32,
|
|
237
|
-
\\ completion_ctx: usize,
|
|
238
|
-
\\ completion_callback: ::std::option::Option<
|
|
239
|
-
\\ unsafe extern "C" fn(
|
|
240
|
-
\\ arg1: usize,
|
|
241
|
-
\\ arg3: *mut tb_packet_t,
|
|
242
|
-
\\ arg4: u64,
|
|
243
|
-
\\ arg5: *const u8,
|
|
244
|
-
\\ arg6: u32,
|
|
245
|
-
\\ ),
|
|
246
|
-
\\ >,
|
|
247
|
-
\\ ) -> TB_INIT_STATUS;
|
|
248
|
-
\\
|
|
249
|
-
\\ // Initialize a new TigerBeetle client which echos back any data submitted.
|
|
250
|
-
\\ pub fn tb_client_init_echo(
|
|
251
|
-
\\ client_out: *mut tb_client_t,
|
|
252
|
-
\\ // 128-bit unsigned integer represented as a 16-byte little-endian array.
|
|
253
|
-
\\ cluster_id: *const [u8; 16],
|
|
254
|
-
\\ address_ptr: *const ::std::os::raw::c_char,
|
|
255
|
-
\\ address_len: u32,
|
|
256
|
-
\\ completion_ctx: usize,
|
|
257
|
-
\\ completion_callback: ::std::option::Option<
|
|
258
|
-
\\ unsafe extern "C" fn(
|
|
259
|
-
\\ arg1: usize,
|
|
260
|
-
\\ arg3: *mut tb_packet_t,
|
|
261
|
-
\\ arg4: u64,
|
|
262
|
-
\\ arg5: *const u8,
|
|
263
|
-
\\ arg6: u32,
|
|
264
|
-
\\ ),
|
|
265
|
-
\\ >,
|
|
266
|
-
\\ ) -> TB_INIT_STATUS;
|
|
267
|
-
\\
|
|
268
|
-
\\ // Retrieve the callback context initially passed into `tb_client_init` or
|
|
269
|
-
\\ // `tb_client_init_echo`.
|
|
270
|
-
\\ pub fn tb_client_completion_context(
|
|
271
|
-
\\ client: *mut tb_client_t,
|
|
272
|
-
\\ completion_ctx_out: *mut usize,
|
|
273
|
-
\\ ) -> TB_CLIENT_STATUS;
|
|
274
|
-
\\
|
|
275
|
-
\\ // Submit a packet with its operation, data, and data_size fields set.
|
|
276
|
-
\\ // Once completed, `on_completion` will be invoked with `on_completion_ctx` and the given
|
|
277
|
-
\\ // packet on the `tb_client` thread (separate from caller's thread).
|
|
278
|
-
\\ pub fn tb_client_submit(
|
|
279
|
-
\\ client: *mut tb_client_t,
|
|
280
|
-
\\ packet: *mut tb_packet_t,
|
|
281
|
-
\\ ) -> TB_CLIENT_STATUS;
|
|
282
|
-
\\
|
|
283
|
-
\\ // Closes the client, causing any previously submitted packets to be completed with
|
|
284
|
-
\\ // `TB_PACKET_CLIENT_SHUTDOWN` before freeing any allocated client resources from init.
|
|
285
|
-
\\ // It is undefined behavior to use any functions on the client once deinit is called.
|
|
286
|
-
\\ pub fn tb_client_deinit(
|
|
287
|
-
\\ client: *mut tb_client_t,
|
|
288
|
-
\\ ) -> TB_CLIENT_STATUS;
|
|
289
|
-
\\
|
|
290
|
-
\\ // Registers or unregisters the application log callback.
|
|
291
|
-
\\ pub fn register_log_callback(
|
|
292
|
-
\\ callback: ::std::option::Option<
|
|
293
|
-
\\ unsafe extern "C" fn(
|
|
294
|
-
\\ TB_LOG_LEVEL,
|
|
295
|
-
\\ *const u8,
|
|
296
|
-
\\ u32,
|
|
297
|
-
\\ ),
|
|
298
|
-
\\ >,
|
|
299
|
-
\\ debug: bool,
|
|
300
|
-
\\ ) -> TB_REGISTER_LOG_CALLBACK_STATUS;
|
|
301
|
-
\\}}
|
|
302
|
-
, .{});
|
|
303
|
-
|
|
304
|
-
try std.io.getStdOut().writeAll(buffer.items);
|
|
305
|
-
}
|