Skip to main content

gmsol_utils/
gt.rs

1/// Max number of GT exchange vault flags.
2pub const MAX_GT_EXCHANGE_VAULT_FLAGS: usize = 8;
3
4/// Max number of GT exchange flags.
5pub const MAX_GT_EXCHANGE_FLAGS: usize = 8;
6
7/// Max number of GT bank flags.
8pub const MAX_GT_BANK_FLAGS: usize = 8;
9
10/// Get time window index.
11pub fn get_time_window_index(ts: i64, time_window: i64) -> i64 {
12    debug_assert!(time_window > 0);
13    ts / time_window
14}
15
16/// GT Exchange Vault Flags.
17#[repr(u8)]
18#[non_exhaustive]
19#[derive(num_enum::IntoPrimitive, num_enum::TryFromPrimitive)]
20pub enum GtExchangeVaultFlag {
21    /// Initialized.
22    Initialized,
23    /// Confirmed.
24    Confirmed,
25    // CHECK: should have no more than `MAX_GT_EXCHANGE_VAULT_FLAGS` of flags.
26}
27
28/// GT Exchange Vault Flags.
29#[repr(u8)]
30#[non_exhaustive]
31#[derive(num_enum::IntoPrimitive, num_enum::TryFromPrimitive)]
32pub enum GtExchangeFlag {
33    /// Initialized.
34    Initialized,
35    // CHECK: should have no more than `MAX_GT_EXCHANGE_FLAGS` of flags.
36}
37
38/// Flags of GT Bank.
39#[derive(num_enum::IntoPrimitive)]
40#[repr(u8)]
41pub enum GtBankFlags {
42    /// Initialized.
43    Initialized,
44    /// Confirmed.
45    Confirmed,
46    /// Synced after confirmation.
47    SyncedAfterConfirmation,
48    // CHECK: cannot have more than `MAX_GT_BANK_FLAGS` flags.
49}