cn_tigerbeetle/
conversions.rs

1pub use super::*;
2
3#[rustfmt::skip]
4impl From<u32> for CreateAccountResult {
5    fn from(other: u32) -> CreateAccountResult {
6        use tbc::*;
7        use CreateAccountResult::*;
8
9        match other {
10            TB_CREATE_ACCOUNT_RESULT_TB_CREATE_ACCOUNT_OK => Ok,
11            TB_CREATE_ACCOUNT_RESULT_TB_CREATE_ACCOUNT_LINKED_EVENT_FAILED => LinkedEventFailed,
12            TB_CREATE_ACCOUNT_RESULT_TB_CREATE_ACCOUNT_LINKED_EVENT_CHAIN_OPEN => LinkedEventChainOpen,
13            TB_CREATE_ACCOUNT_RESULT_TB_CREATE_ACCOUNT_IMPORTED_EVENT_EXPECTED => ImportedEventExpected,
14            TB_CREATE_ACCOUNT_RESULT_TB_CREATE_ACCOUNT_IMPORTED_EVENT_NOT_EXPECTED => ImportedEventNotExpected,
15            TB_CREATE_ACCOUNT_RESULT_TB_CREATE_ACCOUNT_TIMESTAMP_MUST_BE_ZERO => TimestampMustBeZero,
16            TB_CREATE_ACCOUNT_RESULT_TB_CREATE_ACCOUNT_IMPORTED_EVENT_TIMESTAMP_OUT_OF_RANGE => ImportedEventTimestampOutOfRange,
17            TB_CREATE_ACCOUNT_RESULT_TB_CREATE_ACCOUNT_IMPORTED_EVENT_TIMESTAMP_MUST_NOT_ADVANCE => ImportedEventTimestampMustNotAdvance,
18            TB_CREATE_ACCOUNT_RESULT_TB_CREATE_ACCOUNT_RESERVED_FIELD => ReservedField,
19            TB_CREATE_ACCOUNT_RESULT_TB_CREATE_ACCOUNT_RESERVED_FLAG => ReservedFlag,
20            TB_CREATE_ACCOUNT_RESULT_TB_CREATE_ACCOUNT_ID_MUST_NOT_BE_ZERO => IdMustNotBeZero,
21            TB_CREATE_ACCOUNT_RESULT_TB_CREATE_ACCOUNT_ID_MUST_NOT_BE_INT_MAX => IdMustNotBeIntMax,
22            TB_CREATE_ACCOUNT_RESULT_TB_CREATE_ACCOUNT_EXISTS_WITH_DIFFERENT_FLAGS => ExistsWithDifferentFlags,
23            TB_CREATE_ACCOUNT_RESULT_TB_CREATE_ACCOUNT_EXISTS_WITH_DIFFERENT_USER_DATA_128 => ExistsWithDifferentUserData128,
24            TB_CREATE_ACCOUNT_RESULT_TB_CREATE_ACCOUNT_EXISTS_WITH_DIFFERENT_USER_DATA_64 => ExistsWithDifferentUserData64,
25            TB_CREATE_ACCOUNT_RESULT_TB_CREATE_ACCOUNT_EXISTS_WITH_DIFFERENT_USER_DATA_32 => ExistsWithDifferentUserData32,
26            TB_CREATE_ACCOUNT_RESULT_TB_CREATE_ACCOUNT_EXISTS_WITH_DIFFERENT_LEDGER => ExistsWithDifferentLedger,
27            TB_CREATE_ACCOUNT_RESULT_TB_CREATE_ACCOUNT_EXISTS_WITH_DIFFERENT_CODE => ExistsWithDifferentCode,
28            TB_CREATE_ACCOUNT_RESULT_TB_CREATE_ACCOUNT_EXISTS => Exists,
29            TB_CREATE_ACCOUNT_RESULT_TB_CREATE_ACCOUNT_FLAGS_ARE_MUTUALLY_EXCLUSIVE => FlagsAreMutuallyExclusive,
30            TB_CREATE_ACCOUNT_RESULT_TB_CREATE_ACCOUNT_DEBITS_PENDING_MUST_BE_ZERO => DebitsPendingMustBeZero,
31            TB_CREATE_ACCOUNT_RESULT_TB_CREATE_ACCOUNT_DEBITS_POSTED_MUST_BE_ZERO => DebitsPostedMustBeZero,
32            TB_CREATE_ACCOUNT_RESULT_TB_CREATE_ACCOUNT_CREDITS_PENDING_MUST_BE_ZERO => CreditsPendingMustBeZero,
33            TB_CREATE_ACCOUNT_RESULT_TB_CREATE_ACCOUNT_CREDITS_POSTED_MUST_BE_ZERO => CreditsPostedMustBeZero,
34            TB_CREATE_ACCOUNT_RESULT_TB_CREATE_ACCOUNT_LEDGER_MUST_NOT_BE_ZERO => LedgerMustNotBeZero,
35            TB_CREATE_ACCOUNT_RESULT_TB_CREATE_ACCOUNT_CODE_MUST_NOT_BE_ZERO => CodeMustNotBeZero,
36            TB_CREATE_ACCOUNT_RESULT_TB_CREATE_ACCOUNT_IMPORTED_EVENT_TIMESTAMP_MUST_NOT_REGRESS => ImportedEventTimestampMustNotRegress,
37            v => panic!("Unknown CreateAccountResult: {v}"),
38        }
39    }
40}
41
42#[rustfmt::skip]
43impl From<CreateAccountResult> for u32 {
44    fn from(other: CreateAccountResult) -> u32 {
45        use tbc::*;
46        use CreateAccountResult::*;
47
48        match other {
49            Ok => TB_CREATE_ACCOUNT_RESULT_TB_CREATE_ACCOUNT_OK,
50            LinkedEventFailed => TB_CREATE_ACCOUNT_RESULT_TB_CREATE_ACCOUNT_LINKED_EVENT_FAILED,
51            LinkedEventChainOpen => TB_CREATE_ACCOUNT_RESULT_TB_CREATE_ACCOUNT_LINKED_EVENT_CHAIN_OPEN,
52            ImportedEventExpected => TB_CREATE_ACCOUNT_RESULT_TB_CREATE_ACCOUNT_IMPORTED_EVENT_EXPECTED,
53            ImportedEventNotExpected => TB_CREATE_ACCOUNT_RESULT_TB_CREATE_ACCOUNT_IMPORTED_EVENT_NOT_EXPECTED,
54            TimestampMustBeZero => TB_CREATE_ACCOUNT_RESULT_TB_CREATE_ACCOUNT_TIMESTAMP_MUST_BE_ZERO,
55            ImportedEventTimestampOutOfRange => TB_CREATE_ACCOUNT_RESULT_TB_CREATE_ACCOUNT_IMPORTED_EVENT_TIMESTAMP_OUT_OF_RANGE,
56            ImportedEventTimestampMustNotAdvance => TB_CREATE_ACCOUNT_RESULT_TB_CREATE_ACCOUNT_IMPORTED_EVENT_TIMESTAMP_MUST_NOT_ADVANCE,
57            ReservedField => TB_CREATE_ACCOUNT_RESULT_TB_CREATE_ACCOUNT_RESERVED_FIELD,
58            ReservedFlag => TB_CREATE_ACCOUNT_RESULT_TB_CREATE_ACCOUNT_RESERVED_FLAG,
59            IdMustNotBeZero => TB_CREATE_ACCOUNT_RESULT_TB_CREATE_ACCOUNT_ID_MUST_NOT_BE_ZERO,
60            IdMustNotBeIntMax => TB_CREATE_ACCOUNT_RESULT_TB_CREATE_ACCOUNT_ID_MUST_NOT_BE_INT_MAX,
61            ExistsWithDifferentFlags => TB_CREATE_ACCOUNT_RESULT_TB_CREATE_ACCOUNT_EXISTS_WITH_DIFFERENT_FLAGS,
62            ExistsWithDifferentUserData128 => TB_CREATE_ACCOUNT_RESULT_TB_CREATE_ACCOUNT_EXISTS_WITH_DIFFERENT_USER_DATA_128,
63            ExistsWithDifferentUserData64 => TB_CREATE_ACCOUNT_RESULT_TB_CREATE_ACCOUNT_EXISTS_WITH_DIFFERENT_USER_DATA_64,
64            ExistsWithDifferentUserData32 => TB_CREATE_ACCOUNT_RESULT_TB_CREATE_ACCOUNT_EXISTS_WITH_DIFFERENT_USER_DATA_32,
65            ExistsWithDifferentLedger => TB_CREATE_ACCOUNT_RESULT_TB_CREATE_ACCOUNT_EXISTS_WITH_DIFFERENT_LEDGER,
66            ExistsWithDifferentCode => TB_CREATE_ACCOUNT_RESULT_TB_CREATE_ACCOUNT_EXISTS_WITH_DIFFERENT_CODE,
67            Exists => TB_CREATE_ACCOUNT_RESULT_TB_CREATE_ACCOUNT_EXISTS,
68            FlagsAreMutuallyExclusive => TB_CREATE_ACCOUNT_RESULT_TB_CREATE_ACCOUNT_FLAGS_ARE_MUTUALLY_EXCLUSIVE,
69            DebitsPendingMustBeZero => TB_CREATE_ACCOUNT_RESULT_TB_CREATE_ACCOUNT_DEBITS_PENDING_MUST_BE_ZERO,
70            DebitsPostedMustBeZero => TB_CREATE_ACCOUNT_RESULT_TB_CREATE_ACCOUNT_DEBITS_POSTED_MUST_BE_ZERO,
71            CreditsPendingMustBeZero => TB_CREATE_ACCOUNT_RESULT_TB_CREATE_ACCOUNT_CREDITS_PENDING_MUST_BE_ZERO,
72            CreditsPostedMustBeZero => TB_CREATE_ACCOUNT_RESULT_TB_CREATE_ACCOUNT_CREDITS_POSTED_MUST_BE_ZERO,
73            LedgerMustNotBeZero => TB_CREATE_ACCOUNT_RESULT_TB_CREATE_ACCOUNT_LEDGER_MUST_NOT_BE_ZERO,
74            CodeMustNotBeZero => TB_CREATE_ACCOUNT_RESULT_TB_CREATE_ACCOUNT_CODE_MUST_NOT_BE_ZERO,
75            ImportedEventTimestampMustNotRegress => TB_CREATE_ACCOUNT_RESULT_TB_CREATE_ACCOUNT_IMPORTED_EVENT_TIMESTAMP_MUST_NOT_REGRESS,
76        }
77    }
78}
79
80#[rustfmt::skip]
81impl From<u32> for CreateTransferResult {
82    fn from(other: u32) -> CreateTransferResult {
83        use tbc::*;
84        use CreateTransferResult::*;
85
86        match other {
87            TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_OK => Ok,
88            TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_LINKED_EVENT_FAILED => LinkedEventFailed,
89            TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_LINKED_EVENT_CHAIN_OPEN => LinkedEventChainOpen,
90            TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_IMPORTED_EVENT_EXPECTED => ImportedEventExpected,
91            TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_IMPORTED_EVENT_NOT_EXPECTED => ImportedEventNotExpected,
92            TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_TIMESTAMP_MUST_BE_ZERO => TimestampMustBeZero,
93            TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_IMPORTED_EVENT_TIMESTAMP_OUT_OF_RANGE => ImportedEventTimestampOutOfRange,
94            TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_IMPORTED_EVENT_TIMESTAMP_MUST_NOT_ADVANCE => ImportedEventTimestampMustNotAdvance,
95            TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_RESERVED_FLAG => ReservedFlag,
96            TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_ID_MUST_NOT_BE_ZERO => IdMustNotBeZero,
97            TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_ID_MUST_NOT_BE_INT_MAX => IdMustNotBeIntMax,
98            TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_EXISTS_WITH_DIFFERENT_FLAGS => ExistsWithDifferentFlags,
99            TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_EXISTS_WITH_DIFFERENT_PENDING_ID => ExistsWithDifferentPendingId,
100            TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_EXISTS_WITH_DIFFERENT_TIMEOUT => ExistsWithDifferentTimeout,
101            TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_EXISTS_WITH_DIFFERENT_DEBIT_ACCOUNT_ID => ExistsWithDifferentDebitAccountId,
102            TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_EXISTS_WITH_DIFFERENT_CREDIT_ACCOUNT_ID => ExistsWithDifferentCreditAccountId,
103            TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_EXISTS_WITH_DIFFERENT_AMOUNT => ExistsWithDifferentAmount,
104            TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_EXISTS_WITH_DIFFERENT_USER_DATA_128 => ExistsWithDifferentUserData128,
105            TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_EXISTS_WITH_DIFFERENT_USER_DATA_64 => ExistsWithDifferentUserData64,
106            TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_EXISTS_WITH_DIFFERENT_USER_DATA_32 => ExistsWithDifferentUserData32,
107            TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_EXISTS_WITH_DIFFERENT_LEDGER => ExistsWithDifferentLedger,
108            TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_EXISTS_WITH_DIFFERENT_CODE => ExistsWithDifferentCode,
109            TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_EXISTS => Exists,
110            TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_ID_ALREADY_FAILED => IdAlreadyFailed,
111            TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_FLAGS_ARE_MUTUALLY_EXCLUSIVE => FlagsAreMutuallyExclusive,
112            TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_DEBIT_ACCOUNT_ID_MUST_NOT_BE_ZERO => DebitAccountIdMustNotBeZero,
113            TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_DEBIT_ACCOUNT_ID_MUST_NOT_BE_INT_MAX => DebitAccountIdMustNotBeIntMax,
114            TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_CREDIT_ACCOUNT_ID_MUST_NOT_BE_ZERO => CreditAccountIdMustNotBeZero,
115            TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_CREDIT_ACCOUNT_ID_MUST_NOT_BE_INT_MAX => CreditAccountIdMustNotBeIntMax,
116            TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_ACCOUNTS_MUST_BE_DIFFERENT => AccountsMustBeDifferent,
117            TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_PENDING_ID_MUST_BE_ZERO => PendingIdMustBeZero,
118            TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_PENDING_ID_MUST_NOT_BE_ZERO => PendingIdMustNotBeZero,
119            TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_PENDING_ID_MUST_NOT_BE_INT_MAX => PendingIdMustNotBeIntMax,
120            TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_PENDING_ID_MUST_BE_DIFFERENT => PendingIdMustBeDifferent,
121            TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_TIMEOUT_RESERVED_FOR_PENDING_TRANSFER => TimeoutReservedForPendingTransfer,
122            TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_CLOSING_TRANSFER_MUST_BE_PENDING => ClosingTransferMustBePending,
123            TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_LEDGER_MUST_NOT_BE_ZERO => LedgerMustNotBeZero,
124            TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_CODE_MUST_NOT_BE_ZERO => CodeMustNotBeZero,
125            TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_DEBIT_ACCOUNT_NOT_FOUND => DebitAccountNotFound,
126            TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_CREDIT_ACCOUNT_NOT_FOUND => CreditAccountNotFound,
127            TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_ACCOUNTS_MUST_HAVE_THE_SAME_LEDGER => AccountsMustHaveTheSameLedger,
128            TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_TRANSFER_MUST_HAVE_THE_SAME_LEDGER_AS_ACCOUNTS => TransferMustHaveTheSameLedgerAsAccounts,
129            TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_PENDING_TRANSFER_NOT_FOUND => PendingTransferNotFound,
130            TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_PENDING_TRANSFER_NOT_PENDING => PendingTransferNotPending,
131            TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_PENDING_TRANSFER_HAS_DIFFERENT_DEBIT_ACCOUNT_ID => PendingTransferHasDifferentDebitAccountId,
132            TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_PENDING_TRANSFER_HAS_DIFFERENT_CREDIT_ACCOUNT_ID => PendingTransferHasDifferentCreditAccountId,
133            TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_PENDING_TRANSFER_HAS_DIFFERENT_LEDGER => PendingTransferHasDifferentLedger,
134            TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_PENDING_TRANSFER_HAS_DIFFERENT_CODE => PendingTransferHasDifferentCode,
135            TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_EXCEEDS_PENDING_TRANSFER_AMOUNT => ExceedsPendingTransferAmount,
136            TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_PENDING_TRANSFER_HAS_DIFFERENT_AMOUNT => PendingTransferHasDifferentAmount,
137            TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_PENDING_TRANSFER_ALREADY_POSTED => PendingTransferAlreadyPosted,
138            TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_PENDING_TRANSFER_ALREADY_VOIDED => PendingTransferAlreadyVoided,
139            TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_PENDING_TRANSFER_EXPIRED => PendingTransferExpired,
140            TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_IMPORTED_EVENT_TIMESTAMP_MUST_NOT_REGRESS => ImportedEventTimestampMustNotRegress,
141            TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_IMPORTED_EVENT_TIMESTAMP_MUST_POSTDATE_DEBIT_ACCOUNT => ImportedEventTimestampMustPostdateDebitAccount,
142            TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_IMPORTED_EVENT_TIMESTAMP_MUST_POSTDATE_CREDIT_ACCOUNT => ImportedEventTimestampMustPostdateCreditAccount,
143            TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_IMPORTED_EVENT_TIMEOUT_MUST_BE_ZERO => ImportedEventTimeoutMustBeZero,
144            TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_DEBIT_ACCOUNT_ALREADY_CLOSED => DebitAccountAlreadyClosed,
145            TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_CREDIT_ACCOUNT_ALREADY_CLOSED => CreditAccountAlreadyClosed,
146            TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_OVERFLOWS_DEBITS_PENDING => OverflowsDebitsPending,
147            TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_OVERFLOWS_CREDITS_PENDING => OverflowsCreditsPending,
148            TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_OVERFLOWS_DEBITS_POSTED => OverflowsDebitsPosted,
149            TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_OVERFLOWS_CREDITS_POSTED => OverflowsCreditsPosted,
150            TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_OVERFLOWS_DEBITS => OverflowsDebits,
151            TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_OVERFLOWS_CREDITS => OverflowsCredits,
152            TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_OVERFLOWS_TIMEOUT => OverflowsTimeout,
153            TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_EXCEEDS_CREDITS => ExceedsCredits,
154            TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_EXCEEDS_DEBITS => ExceedsDebits,
155            v => panic!("Unknown CreateTransferResult: {v}"),
156        }
157    }
158}
159
160#[rustfmt::skip]
161impl From<CreateTransferResult> for u32 {
162    fn from(other: CreateTransferResult) -> u32 {
163        use tbc::*;
164        use CreateTransferResult::*;
165
166        match other {
167            Ok => TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_OK,
168            LinkedEventFailed => TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_LINKED_EVENT_FAILED,
169            LinkedEventChainOpen => TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_LINKED_EVENT_CHAIN_OPEN,
170            ImportedEventExpected => TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_IMPORTED_EVENT_EXPECTED,
171            ImportedEventNotExpected => TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_IMPORTED_EVENT_NOT_EXPECTED,
172            TimestampMustBeZero => TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_TIMESTAMP_MUST_BE_ZERO,
173            ImportedEventTimestampOutOfRange => TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_IMPORTED_EVENT_TIMESTAMP_OUT_OF_RANGE,
174            ImportedEventTimestampMustNotAdvance => TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_IMPORTED_EVENT_TIMESTAMP_MUST_NOT_ADVANCE,
175            ReservedFlag => TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_RESERVED_FLAG,
176            IdMustNotBeZero => TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_ID_MUST_NOT_BE_ZERO,
177            IdMustNotBeIntMax => TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_ID_MUST_NOT_BE_INT_MAX,
178            ExistsWithDifferentFlags => TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_EXISTS_WITH_DIFFERENT_FLAGS,
179            ExistsWithDifferentPendingId => TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_EXISTS_WITH_DIFFERENT_PENDING_ID,
180            ExistsWithDifferentTimeout => TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_EXISTS_WITH_DIFFERENT_TIMEOUT,
181            ExistsWithDifferentDebitAccountId => TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_EXISTS_WITH_DIFFERENT_DEBIT_ACCOUNT_ID,
182            ExistsWithDifferentCreditAccountId => TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_EXISTS_WITH_DIFFERENT_CREDIT_ACCOUNT_ID,
183            ExistsWithDifferentAmount => TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_EXISTS_WITH_DIFFERENT_AMOUNT,
184            ExistsWithDifferentUserData128 => TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_EXISTS_WITH_DIFFERENT_USER_DATA_128,
185            ExistsWithDifferentUserData64 => TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_EXISTS_WITH_DIFFERENT_USER_DATA_64,
186            ExistsWithDifferentUserData32 => TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_EXISTS_WITH_DIFFERENT_USER_DATA_32,
187            ExistsWithDifferentLedger => TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_EXISTS_WITH_DIFFERENT_LEDGER,
188            ExistsWithDifferentCode => TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_EXISTS_WITH_DIFFERENT_CODE,
189            Exists => TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_EXISTS,
190            IdAlreadyFailed => TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_ID_ALREADY_FAILED,
191            FlagsAreMutuallyExclusive => TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_FLAGS_ARE_MUTUALLY_EXCLUSIVE,
192            DebitAccountIdMustNotBeZero => TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_DEBIT_ACCOUNT_ID_MUST_NOT_BE_ZERO,
193            DebitAccountIdMustNotBeIntMax => TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_DEBIT_ACCOUNT_ID_MUST_NOT_BE_INT_MAX,
194            CreditAccountIdMustNotBeZero => TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_CREDIT_ACCOUNT_ID_MUST_NOT_BE_ZERO,
195            CreditAccountIdMustNotBeIntMax => TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_CREDIT_ACCOUNT_ID_MUST_NOT_BE_INT_MAX,
196            AccountsMustBeDifferent => TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_ACCOUNTS_MUST_BE_DIFFERENT,
197            PendingIdMustBeZero => TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_PENDING_ID_MUST_BE_ZERO,
198            PendingIdMustNotBeZero => TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_PENDING_ID_MUST_NOT_BE_ZERO,
199            PendingIdMustNotBeIntMax => TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_PENDING_ID_MUST_NOT_BE_INT_MAX,
200            PendingIdMustBeDifferent => TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_PENDING_ID_MUST_BE_DIFFERENT,
201            TimeoutReservedForPendingTransfer => TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_TIMEOUT_RESERVED_FOR_PENDING_TRANSFER,
202            ClosingTransferMustBePending => TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_CLOSING_TRANSFER_MUST_BE_PENDING,
203            LedgerMustNotBeZero => TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_LEDGER_MUST_NOT_BE_ZERO,
204            CodeMustNotBeZero => TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_CODE_MUST_NOT_BE_ZERO,
205            DebitAccountNotFound => TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_DEBIT_ACCOUNT_NOT_FOUND,
206            CreditAccountNotFound => TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_CREDIT_ACCOUNT_NOT_FOUND,
207            AccountsMustHaveTheSameLedger => TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_ACCOUNTS_MUST_HAVE_THE_SAME_LEDGER,
208            TransferMustHaveTheSameLedgerAsAccounts => TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_TRANSFER_MUST_HAVE_THE_SAME_LEDGER_AS_ACCOUNTS,
209            PendingTransferNotFound => TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_PENDING_TRANSFER_NOT_FOUND,
210            PendingTransferNotPending => TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_PENDING_TRANSFER_NOT_PENDING,
211            PendingTransferHasDifferentDebitAccountId => TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_PENDING_TRANSFER_HAS_DIFFERENT_DEBIT_ACCOUNT_ID,
212            PendingTransferHasDifferentCreditAccountId => TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_PENDING_TRANSFER_HAS_DIFFERENT_CREDIT_ACCOUNT_ID,
213            PendingTransferHasDifferentLedger => TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_PENDING_TRANSFER_HAS_DIFFERENT_LEDGER,
214            PendingTransferHasDifferentCode => TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_PENDING_TRANSFER_HAS_DIFFERENT_CODE,
215            ExceedsPendingTransferAmount => TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_EXCEEDS_PENDING_TRANSFER_AMOUNT,
216            PendingTransferHasDifferentAmount => TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_PENDING_TRANSFER_HAS_DIFFERENT_AMOUNT,
217            PendingTransferAlreadyPosted => TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_PENDING_TRANSFER_ALREADY_POSTED,
218            PendingTransferAlreadyVoided => TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_PENDING_TRANSFER_ALREADY_VOIDED,
219            PendingTransferExpired => TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_PENDING_TRANSFER_EXPIRED,
220            ImportedEventTimestampMustNotRegress => TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_IMPORTED_EVENT_TIMESTAMP_MUST_NOT_REGRESS,
221            ImportedEventTimestampMustPostdateDebitAccount => TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_IMPORTED_EVENT_TIMESTAMP_MUST_POSTDATE_DEBIT_ACCOUNT,
222            ImportedEventTimestampMustPostdateCreditAccount => TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_IMPORTED_EVENT_TIMESTAMP_MUST_POSTDATE_CREDIT_ACCOUNT,
223            ImportedEventTimeoutMustBeZero => TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_IMPORTED_EVENT_TIMEOUT_MUST_BE_ZERO,
224            DebitAccountAlreadyClosed => TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_DEBIT_ACCOUNT_ALREADY_CLOSED,
225            CreditAccountAlreadyClosed => TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_CREDIT_ACCOUNT_ALREADY_CLOSED,
226            OverflowsDebitsPending => TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_OVERFLOWS_DEBITS_PENDING,
227            OverflowsCreditsPending => TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_OVERFLOWS_CREDITS_PENDING,
228            OverflowsDebitsPosted => TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_OVERFLOWS_DEBITS_POSTED,
229            OverflowsCreditsPosted => TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_OVERFLOWS_CREDITS_POSTED,
230            OverflowsDebits => TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_OVERFLOWS_DEBITS,
231            OverflowsCredits => TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_OVERFLOWS_CREDITS,
232            OverflowsTimeout => TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_OVERFLOWS_TIMEOUT,
233            ExceedsCredits => TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_EXCEEDS_CREDITS,
234            ExceedsDebits => TB_CREATE_TRANSFER_RESULT_TB_CREATE_TRANSFER_EXCEEDS_DEBITS,
235        }
236    }
237}
238
239impl From<i32> for InitStatus {
240    fn from(other: i32) -> InitStatus {
241        use tbc::*;
242        use InitStatus::*;
243
244        match other {
245            TB_INIT_STATUS_TB_INIT_SUCCESS => panic!(),
246            TB_INIT_STATUS_TB_INIT_UNEXPECTED => Unexpected,
247            TB_INIT_STATUS_TB_INIT_OUT_OF_MEMORY => OutOfMemory,
248            TB_INIT_STATUS_TB_INIT_ADDRESS_INVALID => AddressInvalid,
249            TB_INIT_STATUS_TB_INIT_ADDRESS_LIMIT_EXCEEDED => AddressLimitExceeded,
250            TB_INIT_STATUS_TB_INIT_SYSTEM_RESOURCES => SystemResources,
251            TB_INIT_STATUS_TB_INIT_NETWORK_SUBSYSTEM => NetworkSubsystem,
252            v => panic!("Unknown InitStatus: {v}"),
253        }
254    }
255}
256
257impl From<InitStatus> for i32 {
258    fn from(other: InitStatus) -> i32 {
259        use tbc::*;
260        use InitStatus::*;
261
262        match other {
263            Unexpected => TB_INIT_STATUS_TB_INIT_UNEXPECTED,
264            OutOfMemory => TB_INIT_STATUS_TB_INIT_OUT_OF_MEMORY,
265            AddressInvalid => TB_INIT_STATUS_TB_INIT_ADDRESS_INVALID,
266            AddressLimitExceeded => TB_INIT_STATUS_TB_INIT_ADDRESS_LIMIT_EXCEEDED,
267            SystemResources => TB_INIT_STATUS_TB_INIT_SYSTEM_RESOURCES,
268            NetworkSubsystem => TB_INIT_STATUS_TB_INIT_NETWORK_SUBSYSTEM,
269        }
270    }
271}
272
273impl From<u8> for PacketStatus {
274    fn from(other: u8) -> PacketStatus {
275        use tbc::*;
276        use PacketStatus::*;
277
278        match other {
279            TB_PACKET_STATUS_TB_PACKET_OK => panic!(),
280            TB_PACKET_STATUS_TB_PACKET_TOO_MUCH_DATA => TooMuchData,
281            TB_PACKET_STATUS_TB_PACKET_CLIENT_EVICTED => ClientEvicted,
282            TB_PACKET_STATUS_TB_PACKET_CLIENT_RELEASE_TOO_LOW => ClientReleaseTooLow,
283            TB_PACKET_STATUS_TB_PACKET_CLIENT_RELEASE_TOO_HIGH => ClientReleaseTooHigh,
284            TB_PACKET_STATUS_TB_PACKET_CLIENT_SHUTDOWN => ClientShutdown,
285            TB_PACKET_STATUS_TB_PACKET_INVALID_OPERATION => InvalidOperation,
286            TB_PACKET_STATUS_TB_PACKET_INVALID_DATA_SIZE => InvalidDataSize,
287            v => panic!("Unknown PacketStatus: {v}"),
288        }
289    }
290}
291
292impl From<PacketStatus> for u8 {
293    fn from(other: PacketStatus) -> u8 {
294        use tbc::*;
295        use PacketStatus::*;
296
297        match other {
298            TooMuchData => TB_PACKET_STATUS_TB_PACKET_TOO_MUCH_DATA,
299            ClientEvicted => TB_PACKET_STATUS_TB_PACKET_CLIENT_EVICTED,
300            ClientReleaseTooLow => TB_PACKET_STATUS_TB_PACKET_CLIENT_RELEASE_TOO_LOW,
301            ClientReleaseTooHigh => TB_PACKET_STATUS_TB_PACKET_CLIENT_RELEASE_TOO_HIGH,
302            ClientShutdown => TB_PACKET_STATUS_TB_PACKET_CLIENT_SHUTDOWN,
303            InvalidOperation => TB_PACKET_STATUS_TB_PACKET_INVALID_OPERATION,
304            InvalidDataSize => TB_PACKET_STATUS_TB_PACKET_INVALID_DATA_SIZE,
305        }
306    }
307}