Thanks for using Compiler Explorer
Sponsors
Jakt
C++
Ada
Analysis
Android Java
Android Kotlin
Assembly
C
C3
Carbon
C++ (Circle)
CIRCT
Clean
CMake
CMakeScript
COBOL
C++ for OpenCL
MLIR
Cppx
Cppx-Blue
Cppx-Gold
Cpp2-cppfront
Crystal
C#
CUDA C++
D
Dart
Elixir
Erlang
Fortran
F#
GLSL
Go
Haskell
HLSL
Hook
Hylo
IL
ispc
Java
Julia
Kotlin
LLVM IR
LLVM MIR
Modula-2
Nim
Objective-C
Objective-C++
OCaml
OpenCL C
Pascal
Pony
Python
Racket
Ruby
Rust
Snowball
Scala
Solidity
Spice
Swift
LLVM TableGen
Toit
TypeScript Native
V
Vala
Visual Basic
WASM
Zig
Javascript
GIMPLE
d source #1
Output
Compile to binary object
Link to binary
Execute the code
Intel asm syntax
Demangle identifiers
Verbose demangling
Filters
Unused labels
Library functions
Directives
Comments
Horizontal whitespace
Debug intrinsics
Compiler
dmd 2.078.3
dmd 2.079.0
dmd 2.079.1
dmd 2.080.1
dmd 2.081.2
dmd 2.082.0
dmd 2.089.0
dmd 2.092.0
dmd 2.094.2
dmd nightly
gdc (trunk)
gdc 10.1
gdc 10.2
gdc 10.5
gdc 11.1
gdc 11.3
gdc 11.4
gdc 12.1
gdc 12.2
gdc 12.3
gdc 12.4
gdc 13.1
gdc 13.2
gdc 13.3
gdc 14.1
gdc 14.2
gdc 9.2
gdc 9.3
gdc 9.5
gdc arm 12.2.0
gdc arm 12.3.0
gdc arm 12.4.0
gdc arm 13.1.0
gdc arm 13.2.0
gdc arm 13.3.0
gdc arm 14.1.0
gdc arm 14.2.0
gdc arm64 12.2.0
gdc arm64 12.3.0
gdc arm64 12.4.0
gdc arm64 13.1.0
gdc arm64 13.2.0
gdc arm64 13.3.0
gdc arm64 14.1.0
gdc arm64 14.2.0
gdc hppa 14.2.0
gdc loongarch64 14.1.0
gdc loongarch64 14.2.0
gdc mips 12.1.0
gdc mips 12.2.0
gdc mips 12.3.0
gdc mips 12.4.0
gdc mips 13.1.0
gdc mips 13.2.0
gdc mips 13.3.0
gdc mips 14.1.0
gdc mips 14.2.0
gdc mips64 12.1.0
gdc mips64 12.2.0
gdc mips64 12.3.0
gdc mips64 12.4.0
gdc mips64 13.1.0
gdc mips64 13.2.0
gdc mips64 13.3.0
gdc mips64 14.1.0
gdc mips64 14.2.0
gdc mipsel 12.1.0
gdc mipsel 12.2.0
gdc mipsel 12.3.0
gdc mipsel 12.4.0
gdc mipsel 13.1.0
gdc mipsel 13.2.0
gdc mipsel 13.3.0
gdc mipsel 14.1.0
gdc mipsel 14.2.0
gdc powerpc 12.1.0
gdc powerpc 12.2.0
gdc powerpc 12.3.0
gdc powerpc 12.4.0
gdc powerpc 13.1.0
gdc powerpc 13.2.0
gdc powerpc 13.3.0
gdc powerpc 14.1.0
gdc powerpc 14.2.0
gdc powerpc64 12.1.0
gdc powerpc64 12.2.0
gdc powerpc64 12.3.0
gdc powerpc64 12.4.0
gdc powerpc64 13.1.0
gdc powerpc64 13.2.0
gdc powerpc64 13.3.0
gdc powerpc64 14.1.0
gdc powerpc64 14.2.0
gdc powerpc64 trunk
gdc powerpc64le 12.1.0
gdc powerpc64le 12.2.0
gdc powerpc64le 12.3.0
gdc powerpc64le 12.4.0
gdc powerpc64le 13.1.0
gdc powerpc64le 13.2.0
gdc powerpc64le 13.3.0
gdc powerpc64le 14.1.0
gdc powerpc64le 14.2.0
gdc powerpc64le trunk
gdc riscv32 12.2.0
gdc riscv32 12.3.0
gdc riscv32 12.4.0
gdc riscv32 13.1.0
gdc riscv32 13.2.0
gdc riscv32 13.3.0
gdc riscv32 14.1.0
gdc riscv32 14.2.0
gdc riscv32 trunk
gdc riscv64 12.2.0
gdc riscv64 12.3.0
gdc riscv64 12.4.0
gdc riscv64 13.1.0
gdc riscv64 13.2.0
gdc riscv64 13.3.0
gdc riscv64 14.1.0
gdc riscv64 14.2.0
gdc riscv64 trunk
gdc s390x 12.1.0
gdc s390x 12.2.0
gdc s390x 12.3.0
gdc s390x 12.4.0
gdc s390x 13.1.0
gdc s390x 13.2.0
gdc s390x 13.3.0
gdc s390x 14.1.0
gdc s390x 14.2.0
ldc 0.17.2
ldc 1.0.0
ldc 1.1.0
ldc 1.10.0
ldc 1.11.0
ldc 1.12.0
ldc 1.13.0
ldc 1.14.0
ldc 1.15.0
ldc 1.16.0
ldc 1.17.0
ldc 1.18.0
ldc 1.19.0
ldc 1.2.0
ldc 1.20.0
ldc 1.21.0
ldc 1.22.0
ldc 1.23.0
ldc 1.24.0
ldc 1.25.1
ldc 1.26.0
ldc 1.27.1
ldc 1.28.1
ldc 1.29.0
ldc 1.3.0
ldc 1.30.0
ldc 1.31.0
ldc 1.32.1
ldc 1.33.0
ldc 1.34.0
ldc 1.35.0
ldc 1.36.0
ldc 1.37.0
ldc 1.38.0
ldc 1.39.0
ldc 1.4.0
ldc 1.5.0
ldc 1.6.0
ldc 1.7.0
ldc 1.8.0
ldc 1.9.0
ldc beta
ldc latest CI
Options
Source code
@nogc nothrow: extern(C): __gshared: ////////////////////////////////////////////////////////// // This file was auto-generated by tb_client_header.zig // // Do not manually modify. // ////////////////////////////////////////////////////////// import core.stdc.stdint; import core.int128; alias tb_uint128_t = Cent; enum TB_ACCOUNT_FLAGS { TB_ACCOUNT_LINKED = 1 << 0, TB_ACCOUNT_DEBITS_MUST_NOT_EXCEED_CREDITS = 1 << 1, TB_ACCOUNT_CREDITS_MUST_NOT_EXCEED_DEBITS = 1 << 2, } alias TB_ACCOUNT_LINKED = TB_ACCOUNT_FLAGS.TB_ACCOUNT_LINKED; alias TB_ACCOUNT_DEBITS_MUST_NOT_EXCEED_CREDITS = TB_ACCOUNT_FLAGS.TB_ACCOUNT_DEBITS_MUST_NOT_EXCEED_CREDITS; alias TB_ACCOUNT_CREDITS_MUST_NOT_EXCEED_DEBITS = TB_ACCOUNT_FLAGS.TB_ACCOUNT_CREDITS_MUST_NOT_EXCEED_DEBITS; struct tb_account_t { tb_uint128_t id; tb_uint128_t debits_pending; tb_uint128_t debits_posted; tb_uint128_t credits_pending; tb_uint128_t credits_posted; tb_uint128_t user_data_128; ulong user_data_64; uint user_data_32; uint reserved; uint ledger; ushort code; ushort flags; ulong timestamp; } enum TB_TRANSFER_FLAGS { TB_TRANSFER_LINKED = 1 << 0, TB_TRANSFER_PENDING = 1 << 1, TB_TRANSFER_POST_PENDING_TRANSFER = 1 << 2, TB_TRANSFER_VOID_PENDING_TRANSFER = 1 << 3, TB_TRANSFER_BALANCING_DEBIT = 1 << 4, TB_TRANSFER_BALANCING_CREDIT = 1 << 5, } alias TB_TRANSFER_LINKED = TB_TRANSFER_FLAGS.TB_TRANSFER_LINKED; alias TB_TRANSFER_PENDING = TB_TRANSFER_FLAGS.TB_TRANSFER_PENDING; alias TB_TRANSFER_POST_PENDING_TRANSFER = TB_TRANSFER_FLAGS.TB_TRANSFER_POST_PENDING_TRANSFER; alias TB_TRANSFER_VOID_PENDING_TRANSFER = TB_TRANSFER_FLAGS.TB_TRANSFER_VOID_PENDING_TRANSFER; alias TB_TRANSFER_BALANCING_DEBIT = TB_TRANSFER_FLAGS.TB_TRANSFER_BALANCING_DEBIT; alias TB_TRANSFER_BALANCING_CREDIT = TB_TRANSFER_FLAGS.TB_TRANSFER_BALANCING_CREDIT; struct tb_transfer_t { tb_uint128_t id; tb_uint128_t debit_account_id; tb_uint128_t credit_account_id; tb_uint128_t amount; tb_uint128_t pending_id; tb_uint128_t user_data_128; ulong user_data_64; uint user_data_32; uint timeout; uint ledger; ushort code; ushort flags; ulong timestamp; } enum TB_CREATE_ACCOUNT_RESULT { TB_CREATE_ACCOUNT_OK = 0, TB_CREATE_ACCOUNT_LINKED_EVENT_FAILED = 1, TB_CREATE_ACCOUNT_LINKED_EVENT_CHAIN_OPEN = 2, TB_CREATE_ACCOUNT_TIMESTAMP_MUST_BE_ZERO = 3, TB_CREATE_ACCOUNT_RESERVED_FIELD = 4, TB_CREATE_ACCOUNT_RESERVED_FLAG = 5, TB_CREATE_ACCOUNT_ID_MUST_NOT_BE_ZERO = 6, TB_CREATE_ACCOUNT_ID_MUST_NOT_BE_INT_MAX = 7, TB_CREATE_ACCOUNT_FLAGS_ARE_MUTUALLY_EXCLUSIVE = 8, TB_CREATE_ACCOUNT_DEBITS_PENDING_MUST_BE_ZERO = 9, TB_CREATE_ACCOUNT_DEBITS_POSTED_MUST_BE_ZERO = 10, TB_CREATE_ACCOUNT_CREDITS_PENDING_MUST_BE_ZERO = 11, TB_CREATE_ACCOUNT_CREDITS_POSTED_MUST_BE_ZERO = 12, TB_CREATE_ACCOUNT_LEDGER_MUST_NOT_BE_ZERO = 13, TB_CREATE_ACCOUNT_CODE_MUST_NOT_BE_ZERO = 14, TB_CREATE_ACCOUNT_EXISTS_WITH_DIFFERENT_FLAGS = 15, TB_CREATE_ACCOUNT_EXISTS_WITH_DIFFERENT_USER_DATA_128 = 16, TB_CREATE_ACCOUNT_EXISTS_WITH_DIFFERENT_USER_DATA_64 = 17, TB_CREATE_ACCOUNT_EXISTS_WITH_DIFFERENT_USER_DATA_32 = 18, TB_CREATE_ACCOUNT_EXISTS_WITH_DIFFERENT_LEDGER = 19, TB_CREATE_ACCOUNT_EXISTS_WITH_DIFFERENT_CODE = 20, TB_CREATE_ACCOUNT_EXISTS = 21, } alias TB_CREATE_ACCOUNT_OK = TB_CREATE_ACCOUNT_RESULT.TB_CREATE_ACCOUNT_OK; alias TB_CREATE_ACCOUNT_LINKED_EVENT_FAILED = TB_CREATE_ACCOUNT_RESULT.TB_CREATE_ACCOUNT_LINKED_EVENT_FAILED; alias TB_CREATE_ACCOUNT_LINKED_EVENT_CHAIN_OPEN = TB_CREATE_ACCOUNT_RESULT.TB_CREATE_ACCOUNT_LINKED_EVENT_CHAIN_OPEN; alias TB_CREATE_ACCOUNT_TIMESTAMP_MUST_BE_ZERO = TB_CREATE_ACCOUNT_RESULT.TB_CREATE_ACCOUNT_TIMESTAMP_MUST_BE_ZERO; alias TB_CREATE_ACCOUNT_RESERVED_FIELD = TB_CREATE_ACCOUNT_RESULT.TB_CREATE_ACCOUNT_RESERVED_FIELD; alias TB_CREATE_ACCOUNT_RESERVED_FLAG = TB_CREATE_ACCOUNT_RESULT.TB_CREATE_ACCOUNT_RESERVED_FLAG; alias TB_CREATE_ACCOUNT_ID_MUST_NOT_BE_ZERO = TB_CREATE_ACCOUNT_RESULT.TB_CREATE_ACCOUNT_ID_MUST_NOT_BE_ZERO; alias TB_CREATE_ACCOUNT_ID_MUST_NOT_BE_INT_MAX = TB_CREATE_ACCOUNT_RESULT.TB_CREATE_ACCOUNT_ID_MUST_NOT_BE_INT_MAX; alias TB_CREATE_ACCOUNT_FLAGS_ARE_MUTUALLY_EXCLUSIVE = TB_CREATE_ACCOUNT_RESULT.TB_CREATE_ACCOUNT_FLAGS_ARE_MUTUALLY_EXCLUSIVE; alias TB_CREATE_ACCOUNT_DEBITS_PENDING_MUST_BE_ZERO = TB_CREATE_ACCOUNT_RESULT.TB_CREATE_ACCOUNT_DEBITS_PENDING_MUST_BE_ZERO; alias TB_CREATE_ACCOUNT_DEBITS_POSTED_MUST_BE_ZERO = TB_CREATE_ACCOUNT_RESULT.TB_CREATE_ACCOUNT_DEBITS_POSTED_MUST_BE_ZERO; alias TB_CREATE_ACCOUNT_CREDITS_PENDING_MUST_BE_ZERO = TB_CREATE_ACCOUNT_RESULT.TB_CREATE_ACCOUNT_CREDITS_PENDING_MUST_BE_ZERO; alias TB_CREATE_ACCOUNT_CREDITS_POSTED_MUST_BE_ZERO = TB_CREATE_ACCOUNT_RESULT.TB_CREATE_ACCOUNT_CREDITS_POSTED_MUST_BE_ZERO; alias TB_CREATE_ACCOUNT_LEDGER_MUST_NOT_BE_ZERO = TB_CREATE_ACCOUNT_RESULT.TB_CREATE_ACCOUNT_LEDGER_MUST_NOT_BE_ZERO; alias TB_CREATE_ACCOUNT_CODE_MUST_NOT_BE_ZERO = TB_CREATE_ACCOUNT_RESULT.TB_CREATE_ACCOUNT_CODE_MUST_NOT_BE_ZERO; alias TB_CREATE_ACCOUNT_EXISTS_WITH_DIFFERENT_FLAGS = TB_CREATE_ACCOUNT_RESULT.TB_CREATE_ACCOUNT_EXISTS_WITH_DIFFERENT_FLAGS; alias TB_CREATE_ACCOUNT_EXISTS_WITH_DIFFERENT_USER_DATA_128 = TB_CREATE_ACCOUNT_RESULT.TB_CREATE_ACCOUNT_EXISTS_WITH_DIFFERENT_USER_DATA_128; alias TB_CREATE_ACCOUNT_EXISTS_WITH_DIFFERENT_USER_DATA_64 = TB_CREATE_ACCOUNT_RESULT.TB_CREATE_ACCOUNT_EXISTS_WITH_DIFFERENT_USER_DATA_64; alias TB_CREATE_ACCOUNT_EXISTS_WITH_DIFFERENT_USER_DATA_32 = TB_CREATE_ACCOUNT_RESULT.TB_CREATE_ACCOUNT_EXISTS_WITH_DIFFERENT_USER_DATA_32; alias TB_CREATE_ACCOUNT_EXISTS_WITH_DIFFERENT_LEDGER = TB_CREATE_ACCOUNT_RESULT.TB_CREATE_ACCOUNT_EXISTS_WITH_DIFFERENT_LEDGER; alias TB_CREATE_ACCOUNT_EXISTS_WITH_DIFFERENT_CODE = TB_CREATE_ACCOUNT_RESULT.TB_CREATE_ACCOUNT_EXISTS_WITH_DIFFERENT_CODE; alias TB_CREATE_ACCOUNT_EXISTS = TB_CREATE_ACCOUNT_RESULT.TB_CREATE_ACCOUNT_EXISTS; enum TB_CREATE_TRANSFER_RESULT { TB_CREATE_TRANSFER_OK = 0, TB_CREATE_TRANSFER_LINKED_EVENT_FAILED = 1, TB_CREATE_TRANSFER_LINKED_EVENT_CHAIN_OPEN = 2, TB_CREATE_TRANSFER_TIMESTAMP_MUST_BE_ZERO = 3, TB_CREATE_TRANSFER_RESERVED_FLAG = 4, TB_CREATE_TRANSFER_ID_MUST_NOT_BE_ZERO = 5, TB_CREATE_TRANSFER_ID_MUST_NOT_BE_INT_MAX = 6, TB_CREATE_TRANSFER_FLAGS_ARE_MUTUALLY_EXCLUSIVE = 7, TB_CREATE_TRANSFER_DEBIT_ACCOUNT_ID_MUST_NOT_BE_ZERO = 8, TB_CREATE_TRANSFER_DEBIT_ACCOUNT_ID_MUST_NOT_BE_INT_MAX = 9, TB_CREATE_TRANSFER_CREDIT_ACCOUNT_ID_MUST_NOT_BE_ZERO = 10, TB_CREATE_TRANSFER_CREDIT_ACCOUNT_ID_MUST_NOT_BE_INT_MAX = 11, TB_CREATE_TRANSFER_ACCOUNTS_MUST_BE_DIFFERENT = 12, TB_CREATE_TRANSFER_PENDING_ID_MUST_BE_ZERO = 13, TB_CREATE_TRANSFER_PENDING_ID_MUST_NOT_BE_ZERO = 14, TB_CREATE_TRANSFER_PENDING_ID_MUST_NOT_BE_INT_MAX = 15, TB_CREATE_TRANSFER_PENDING_ID_MUST_BE_DIFFERENT = 16, TB_CREATE_TRANSFER_TIMEOUT_RESERVED_FOR_PENDING_TRANSFER = 17, TB_CREATE_TRANSFER_AMOUNT_MUST_NOT_BE_ZERO = 18, TB_CREATE_TRANSFER_LEDGER_MUST_NOT_BE_ZERO = 19, TB_CREATE_TRANSFER_CODE_MUST_NOT_BE_ZERO = 20, TB_CREATE_TRANSFER_DEBIT_ACCOUNT_NOT_FOUND = 21, TB_CREATE_TRANSFER_CREDIT_ACCOUNT_NOT_FOUND = 22, TB_CREATE_TRANSFER_ACCOUNTS_MUST_HAVE_THE_SAME_LEDGER = 23, TB_CREATE_TRANSFER_TRANSFER_MUST_HAVE_THE_SAME_LEDGER_AS_ACCOUNTS = 24, TB_CREATE_TRANSFER_PENDING_TRANSFER_NOT_FOUND = 25, TB_CREATE_TRANSFER_PENDING_TRANSFER_NOT_PENDING = 26, TB_CREATE_TRANSFER_PENDING_TRANSFER_HAS_DIFFERENT_DEBIT_ACCOUNT_ID = 27, TB_CREATE_TRANSFER_PENDING_TRANSFER_HAS_DIFFERENT_CREDIT_ACCOUNT_ID = 28, TB_CREATE_TRANSFER_PENDING_TRANSFER_HAS_DIFFERENT_LEDGER = 29, TB_CREATE_TRANSFER_PENDING_TRANSFER_HAS_DIFFERENT_CODE = 30, TB_CREATE_TRANSFER_EXCEEDS_PENDING_TRANSFER_AMOUNT = 31, TB_CREATE_TRANSFER_PENDING_TRANSFER_HAS_DIFFERENT_AMOUNT = 32, TB_CREATE_TRANSFER_PENDING_TRANSFER_ALREADY_POSTED = 33, TB_CREATE_TRANSFER_PENDING_TRANSFER_ALREADY_VOIDED = 34, TB_CREATE_TRANSFER_PENDING_TRANSFER_EXPIRED = 35, TB_CREATE_TRANSFER_EXISTS_WITH_DIFFERENT_FLAGS = 36, TB_CREATE_TRANSFER_EXISTS_WITH_DIFFERENT_DEBIT_ACCOUNT_ID = 37, TB_CREATE_TRANSFER_EXISTS_WITH_DIFFERENT_CREDIT_ACCOUNT_ID = 38, TB_CREATE_TRANSFER_EXISTS_WITH_DIFFERENT_AMOUNT = 39, TB_CREATE_TRANSFER_EXISTS_WITH_DIFFERENT_PENDING_ID = 40, TB_CREATE_TRANSFER_EXISTS_WITH_DIFFERENT_USER_DATA_128 = 41, TB_CREATE_TRANSFER_EXISTS_WITH_DIFFERENT_USER_DATA_64 = 42, TB_CREATE_TRANSFER_EXISTS_WITH_DIFFERENT_USER_DATA_32 = 43, TB_CREATE_TRANSFER_EXISTS_WITH_DIFFERENT_TIMEOUT = 44, TB_CREATE_TRANSFER_EXISTS_WITH_DIFFERENT_CODE = 45, TB_CREATE_TRANSFER_EXISTS = 46, TB_CREATE_TRANSFER_OVERFLOWS_DEBITS_PENDING = 47, TB_CREATE_TRANSFER_OVERFLOWS_CREDITS_PENDING = 48, TB_CREATE_TRANSFER_OVERFLOWS_DEBITS_POSTED = 49, TB_CREATE_TRANSFER_OVERFLOWS_CREDITS_POSTED = 50, TB_CREATE_TRANSFER_OVERFLOWS_DEBITS = 51, TB_CREATE_TRANSFER_OVERFLOWS_CREDITS = 52, TB_CREATE_TRANSFER_OVERFLOWS_TIMEOUT = 53, TB_CREATE_TRANSFER_EXCEEDS_CREDITS = 54, TB_CREATE_TRANSFER_EXCEEDS_DEBITS = 55, } alias TB_CREATE_TRANSFER_OK = TB_CREATE_TRANSFER_RESULT.TB_CREATE_TRANSFER_OK; alias TB_CREATE_TRANSFER_LINKED_EVENT_FAILED = TB_CREATE_TRANSFER_RESULT.TB_CREATE_TRANSFER_LINKED_EVENT_FAILED; alias TB_CREATE_TRANSFER_LINKED_EVENT_CHAIN_OPEN = TB_CREATE_TRANSFER_RESULT.TB_CREATE_TRANSFER_LINKED_EVENT_CHAIN_OPEN; alias TB_CREATE_TRANSFER_TIMESTAMP_MUST_BE_ZERO = TB_CREATE_TRANSFER_RESULT.TB_CREATE_TRANSFER_TIMESTAMP_MUST_BE_ZERO; alias TB_CREATE_TRANSFER_RESERVED_FLAG = TB_CREATE_TRANSFER_RESULT.TB_CREATE_TRANSFER_RESERVED_FLAG; alias TB_CREATE_TRANSFER_ID_MUST_NOT_BE_ZERO = TB_CREATE_TRANSFER_RESULT.TB_CREATE_TRANSFER_ID_MUST_NOT_BE_ZERO; alias TB_CREATE_TRANSFER_ID_MUST_NOT_BE_INT_MAX = TB_CREATE_TRANSFER_RESULT.TB_CREATE_TRANSFER_ID_MUST_NOT_BE_INT_MAX; alias TB_CREATE_TRANSFER_FLAGS_ARE_MUTUALLY_EXCLUSIVE = TB_CREATE_TRANSFER_RESULT.TB_CREATE_TRANSFER_FLAGS_ARE_MUTUALLY_EXCLUSIVE; alias TB_CREATE_TRANSFER_DEBIT_ACCOUNT_ID_MUST_NOT_BE_ZERO = TB_CREATE_TRANSFER_RESULT.TB_CREATE_TRANSFER_DEBIT_ACCOUNT_ID_MUST_NOT_BE_ZERO; alias TB_CREATE_TRANSFER_DEBIT_ACCOUNT_ID_MUST_NOT_BE_INT_MAX = TB_CREATE_TRANSFER_RESULT.TB_CREATE_TRANSFER_DEBIT_ACCOUNT_ID_MUST_NOT_BE_INT_MAX; alias TB_CREATE_TRANSFER_CREDIT_ACCOUNT_ID_MUST_NOT_BE_ZERO = TB_CREATE_TRANSFER_RESULT.TB_CREATE_TRANSFER_CREDIT_ACCOUNT_ID_MUST_NOT_BE_ZERO; alias TB_CREATE_TRANSFER_CREDIT_ACCOUNT_ID_MUST_NOT_BE_INT_MAX = TB_CREATE_TRANSFER_RESULT.TB_CREATE_TRANSFER_CREDIT_ACCOUNT_ID_MUST_NOT_BE_INT_MAX; alias TB_CREATE_TRANSFER_ACCOUNTS_MUST_BE_DIFFERENT = TB_CREATE_TRANSFER_RESULT.TB_CREATE_TRANSFER_ACCOUNTS_MUST_BE_DIFFERENT; alias TB_CREATE_TRANSFER_PENDING_ID_MUST_BE_ZERO = TB_CREATE_TRANSFER_RESULT.TB_CREATE_TRANSFER_PENDING_ID_MUST_BE_ZERO; alias TB_CREATE_TRANSFER_PENDING_ID_MUST_NOT_BE_ZERO = TB_CREATE_TRANSFER_RESULT.TB_CREATE_TRANSFER_PENDING_ID_MUST_NOT_BE_ZERO; alias TB_CREATE_TRANSFER_PENDING_ID_MUST_NOT_BE_INT_MAX = TB_CREATE_TRANSFER_RESULT.TB_CREATE_TRANSFER_PENDING_ID_MUST_NOT_BE_INT_MAX; alias TB_CREATE_TRANSFER_PENDING_ID_MUST_BE_DIFFERENT = TB_CREATE_TRANSFER_RESULT.TB_CREATE_TRANSFER_PENDING_ID_MUST_BE_DIFFERENT; alias TB_CREATE_TRANSFER_TIMEOUT_RESERVED_FOR_PENDING_TRANSFER = TB_CREATE_TRANSFER_RESULT.TB_CREATE_TRANSFER_TIMEOUT_RESERVED_FOR_PENDING_TRANSFER; alias TB_CREATE_TRANSFER_AMOUNT_MUST_NOT_BE_ZERO = TB_CREATE_TRANSFER_RESULT.TB_CREATE_TRANSFER_AMOUNT_MUST_NOT_BE_ZERO; alias TB_CREATE_TRANSFER_LEDGER_MUST_NOT_BE_ZERO = TB_CREATE_TRANSFER_RESULT.TB_CREATE_TRANSFER_LEDGER_MUST_NOT_BE_ZERO; alias TB_CREATE_TRANSFER_CODE_MUST_NOT_BE_ZERO = TB_CREATE_TRANSFER_RESULT.TB_CREATE_TRANSFER_CODE_MUST_NOT_BE_ZERO; alias TB_CREATE_TRANSFER_DEBIT_ACCOUNT_NOT_FOUND = TB_CREATE_TRANSFER_RESULT.TB_CREATE_TRANSFER_DEBIT_ACCOUNT_NOT_FOUND; alias TB_CREATE_TRANSFER_CREDIT_ACCOUNT_NOT_FOUND = TB_CREATE_TRANSFER_RESULT.TB_CREATE_TRANSFER_CREDIT_ACCOUNT_NOT_FOUND; alias TB_CREATE_TRANSFER_ACCOUNTS_MUST_HAVE_THE_SAME_LEDGER = TB_CREATE_TRANSFER_RESULT.TB_CREATE_TRANSFER_ACCOUNTS_MUST_HAVE_THE_SAME_LEDGER; alias TB_CREATE_TRANSFER_TRANSFER_MUST_HAVE_THE_SAME_LEDGER_AS_ACCOUNTS = TB_CREATE_TRANSFER_RESULT.TB_CREATE_TRANSFER_TRANSFER_MUST_HAVE_THE_SAME_LEDGER_AS_ACCOUNTS; alias TB_CREATE_TRANSFER_PENDING_TRANSFER_NOT_FOUND = TB_CREATE_TRANSFER_RESULT.TB_CREATE_TRANSFER_PENDING_TRANSFER_NOT_FOUND; alias TB_CREATE_TRANSFER_PENDING_TRANSFER_NOT_PENDING = TB_CREATE_TRANSFER_RESULT.TB_CREATE_TRANSFER_PENDING_TRANSFER_NOT_PENDING; alias TB_CREATE_TRANSFER_PENDING_TRANSFER_HAS_DIFFERENT_DEBIT_ACCOUNT_ID = TB_CREATE_TRANSFER_RESULT.TB_CREATE_TRANSFER_PENDING_TRANSFER_HAS_DIFFERENT_DEBIT_ACCOUNT_ID; alias TB_CREATE_TRANSFER_PENDING_TRANSFER_HAS_DIFFERENT_CREDIT_ACCOUNT_ID = TB_CREATE_TRANSFER_RESULT.TB_CREATE_TRANSFER_PENDING_TRANSFER_HAS_DIFFERENT_CREDIT_ACCOUNT_ID; alias TB_CREATE_TRANSFER_PENDING_TRANSFER_HAS_DIFFERENT_LEDGER = TB_CREATE_TRANSFER_RESULT.TB_CREATE_TRANSFER_PENDING_TRANSFER_HAS_DIFFERENT_LEDGER; alias TB_CREATE_TRANSFER_PENDING_TRANSFER_HAS_DIFFERENT_CODE = TB_CREATE_TRANSFER_RESULT.TB_CREATE_TRANSFER_PENDING_TRANSFER_HAS_DIFFERENT_CODE; alias TB_CREATE_TRANSFER_EXCEEDS_PENDING_TRANSFER_AMOUNT = TB_CREATE_TRANSFER_RESULT.TB_CREATE_TRANSFER_EXCEEDS_PENDING_TRANSFER_AMOUNT; alias TB_CREATE_TRANSFER_PENDING_TRANSFER_HAS_DIFFERENT_AMOUNT = TB_CREATE_TRANSFER_RESULT.TB_CREATE_TRANSFER_PENDING_TRANSFER_HAS_DIFFERENT_AMOUNT; alias TB_CREATE_TRANSFER_PENDING_TRANSFER_ALREADY_POSTED = TB_CREATE_TRANSFER_RESULT.TB_CREATE_TRANSFER_PENDING_TRANSFER_ALREADY_POSTED; alias TB_CREATE_TRANSFER_PENDING_TRANSFER_ALREADY_VOIDED = TB_CREATE_TRANSFER_RESULT.TB_CREATE_TRANSFER_PENDING_TRANSFER_ALREADY_VOIDED; alias TB_CREATE_TRANSFER_PENDING_TRANSFER_EXPIRED = TB_CREATE_TRANSFER_RESULT.TB_CREATE_TRANSFER_PENDING_TRANSFER_EXPIRED; alias TB_CREATE_TRANSFER_EXISTS_WITH_DIFFERENT_FLAGS = TB_CREATE_TRANSFER_RESULT.TB_CREATE_TRANSFER_EXISTS_WITH_DIFFERENT_FLAGS; alias TB_CREATE_TRANSFER_EXISTS_WITH_DIFFERENT_DEBIT_ACCOUNT_ID = TB_CREATE_TRANSFER_RESULT.TB_CREATE_TRANSFER_EXISTS_WITH_DIFFERENT_DEBIT_ACCOUNT_ID; alias TB_CREATE_TRANSFER_EXISTS_WITH_DIFFERENT_CREDIT_ACCOUNT_ID = TB_CREATE_TRANSFER_RESULT.TB_CREATE_TRANSFER_EXISTS_WITH_DIFFERENT_CREDIT_ACCOUNT_ID; alias TB_CREATE_TRANSFER_EXISTS_WITH_DIFFERENT_AMOUNT = TB_CREATE_TRANSFER_RESULT.TB_CREATE_TRANSFER_EXISTS_WITH_DIFFERENT_AMOUNT; alias TB_CREATE_TRANSFER_EXISTS_WITH_DIFFERENT_PENDING_ID = TB_CREATE_TRANSFER_RESULT.TB_CREATE_TRANSFER_EXISTS_WITH_DIFFERENT_PENDING_ID; alias TB_CREATE_TRANSFER_EXISTS_WITH_DIFFERENT_USER_DATA_128 = TB_CREATE_TRANSFER_RESULT.TB_CREATE_TRANSFER_EXISTS_WITH_DIFFERENT_USER_DATA_128; alias TB_CREATE_TRANSFER_EXISTS_WITH_DIFFERENT_USER_DATA_64 = TB_CREATE_TRANSFER_RESULT.TB_CREATE_TRANSFER_EXISTS_WITH_DIFFERENT_USER_DATA_64; alias TB_CREATE_TRANSFER_EXISTS_WITH_DIFFERENT_USER_DATA_32 = TB_CREATE_TRANSFER_RESULT.TB_CREATE_TRANSFER_EXISTS_WITH_DIFFERENT_USER_DATA_32; alias TB_CREATE_TRANSFER_EXISTS_WITH_DIFFERENT_TIMEOUT = TB_CREATE_TRANSFER_RESULT.TB_CREATE_TRANSFER_EXISTS_WITH_DIFFERENT_TIMEOUT; alias TB_CREATE_TRANSFER_EXISTS_WITH_DIFFERENT_CODE = TB_CREATE_TRANSFER_RESULT.TB_CREATE_TRANSFER_EXISTS_WITH_DIFFERENT_CODE; alias TB_CREATE_TRANSFER_EXISTS = TB_CREATE_TRANSFER_RESULT.TB_CREATE_TRANSFER_EXISTS; alias TB_CREATE_TRANSFER_OVERFLOWS_DEBITS_PENDING = TB_CREATE_TRANSFER_RESULT.TB_CREATE_TRANSFER_OVERFLOWS_DEBITS_PENDING; alias TB_CREATE_TRANSFER_OVERFLOWS_CREDITS_PENDING = TB_CREATE_TRANSFER_RESULT.TB_CREATE_TRANSFER_OVERFLOWS_CREDITS_PENDING; alias TB_CREATE_TRANSFER_OVERFLOWS_DEBITS_POSTED = TB_CREATE_TRANSFER_RESULT.TB_CREATE_TRANSFER_OVERFLOWS_DEBITS_POSTED; alias TB_CREATE_TRANSFER_OVERFLOWS_CREDITS_POSTED = TB_CREATE_TRANSFER_RESULT.TB_CREATE_TRANSFER_OVERFLOWS_CREDITS_POSTED; alias TB_CREATE_TRANSFER_OVERFLOWS_DEBITS = TB_CREATE_TRANSFER_RESULT.TB_CREATE_TRANSFER_OVERFLOWS_DEBITS; alias TB_CREATE_TRANSFER_OVERFLOWS_CREDITS = TB_CREATE_TRANSFER_RESULT.TB_CREATE_TRANSFER_OVERFLOWS_CREDITS; alias TB_CREATE_TRANSFER_OVERFLOWS_TIMEOUT = TB_CREATE_TRANSFER_RESULT.TB_CREATE_TRANSFER_OVERFLOWS_TIMEOUT; alias TB_CREATE_TRANSFER_EXCEEDS_CREDITS = TB_CREATE_TRANSFER_RESULT.TB_CREATE_TRANSFER_EXCEEDS_CREDITS; alias TB_CREATE_TRANSFER_EXCEEDS_DEBITS = TB_CREATE_TRANSFER_RESULT.TB_CREATE_TRANSFER_EXCEEDS_DEBITS; struct tb_create_accounts_result_t { uint index; uint result; } struct tb_create_transfers_result_t { uint index; uint result; } enum TB_OPERATION { TB_OPERATION_CREATE_ACCOUNTS = 128, TB_OPERATION_CREATE_TRANSFERS = 129, TB_OPERATION_LOOKUP_ACCOUNTS = 130, TB_OPERATION_LOOKUP_TRANSFERS = 131, } alias TB_OPERATION_CREATE_ACCOUNTS = TB_OPERATION.TB_OPERATION_CREATE_ACCOUNTS; alias TB_OPERATION_CREATE_TRANSFERS = TB_OPERATION.TB_OPERATION_CREATE_TRANSFERS; alias TB_OPERATION_LOOKUP_ACCOUNTS = TB_OPERATION.TB_OPERATION_LOOKUP_ACCOUNTS; alias TB_OPERATION_LOOKUP_TRANSFERS = TB_OPERATION.TB_OPERATION_LOOKUP_TRANSFERS; enum TB_PACKET_STATUS { TB_PACKET_OK = 0, TB_PACKET_TOO_MUCH_DATA = 1, TB_PACKET_INVALID_OPERATION = 2, TB_PACKET_INVALID_DATA_SIZE = 3, } alias TB_PACKET_OK = TB_PACKET_STATUS.TB_PACKET_OK; alias TB_PACKET_TOO_MUCH_DATA = TB_PACKET_STATUS.TB_PACKET_TOO_MUCH_DATA; alias TB_PACKET_INVALID_OPERATION = TB_PACKET_STATUS.TB_PACKET_INVALID_OPERATION; alias TB_PACKET_INVALID_DATA_SIZE = TB_PACKET_STATUS.TB_PACKET_INVALID_DATA_SIZE; enum TB_PACKET_ACQUIRE_STATUS { TB_PACKET_ACQUIRE_OK = 0, TB_PACKET_ACQUIRE_CONCURRENCY_MAX_EXCEEDED = 1, TB_PACKET_ACQUIRE_SHUTDOWN = 2, } alias TB_PACKET_ACQUIRE_OK = TB_PACKET_ACQUIRE_STATUS.TB_PACKET_ACQUIRE_OK; alias TB_PACKET_ACQUIRE_CONCURRENCY_MAX_EXCEEDED = TB_PACKET_ACQUIRE_STATUS.TB_PACKET_ACQUIRE_CONCURRENCY_MAX_EXCEEDED; alias TB_PACKET_ACQUIRE_SHUTDOWN = TB_PACKET_ACQUIRE_STATUS.TB_PACKET_ACQUIRE_SHUTDOWN; struct tb_packet_t { tb_packet_t* next; void* user_data; ubyte operation; ubyte status; uint data_size; void* data; } alias tb_client_t = void*; enum TB_STATUS { TB_STATUS_SUCCESS = 0, TB_STATUS_UNEXPECTED = 1, TB_STATUS_OUT_OF_MEMORY = 2, TB_STATUS_ADDRESS_INVALID = 3, TB_STATUS_ADDRESS_LIMIT_EXCEEDED = 4, TB_STATUS_CONCURRENCY_MAX_INVALID = 5, TB_STATUS_SYSTEM_RESOURCES = 6, TB_STATUS_NETWORK_SUBSYSTEM = 7, } alias TB_STATUS_SUCCESS = TB_STATUS.TB_STATUS_SUCCESS; alias TB_STATUS_UNEXPECTED = TB_STATUS.TB_STATUS_UNEXPECTED; alias TB_STATUS_OUT_OF_MEMORY = TB_STATUS.TB_STATUS_OUT_OF_MEMORY; alias TB_STATUS_ADDRESS_INVALID = TB_STATUS.TB_STATUS_ADDRESS_INVALID; alias TB_STATUS_ADDRESS_LIMIT_EXCEEDED = TB_STATUS.TB_STATUS_ADDRESS_LIMIT_EXCEEDED; alias TB_STATUS_CONCURRENCY_MAX_INVALID = TB_STATUS.TB_STATUS_CONCURRENCY_MAX_INVALID; alias TB_STATUS_SYSTEM_RESOURCES = TB_STATUS.TB_STATUS_SYSTEM_RESOURCES; alias TB_STATUS_NETWORK_SUBSYSTEM = TB_STATUS.TB_STATUS_NETWORK_SUBSYSTEM; TB_STATUS tb_client_init(tb_client_t* out_client, uint cluster_id, const(char)* address_ptr, uint address_len, uint packets_count, uintptr_t on_completion_ctx, void function(uintptr_t, tb_client_t, tb_packet_t*, const(ubyte)*, uint) on_completion_fn); TB_STATUS tb_client_init_echo(tb_client_t* out_client, uint cluster_id, const(char)* address_ptr, uint address_len, uint packets_count, uintptr_t on_completion_ctx, void function(uintptr_t, tb_client_t, tb_packet_t*, const(ubyte)*, uint) on_completion_fn); TB_PACKET_ACQUIRE_STATUS tb_client_acquire_packet(tb_client_t client, tb_packet_t** out_packet); void tb_client_release_packet(tb_client_t client, tb_packet_t* packet); void tb_client_submit(tb_client_t client, tb_packet_t* packet); void tb_client_deinit(tb_client_t client);
Become a Patron
Sponsor on GitHub
Donate via PayPal
Source on GitHub
Mailing list
Installed libraries
Wiki
Report an issue
How it works
Contact the author
CE on Mastodon
About the author
Statistics
Changelog
Version tree