#[repr(packed)]
pub struct TickBitmapState { pub bump: u8, pub word_pos: i16, pub word: [u64; 4], }
Expand description

Stores info for a single bitmap word. Each word represents 256 packed tick initialized boolean values.

Emulates a solidity mapping, where word_position is the key and

PDA of [BITMAP_SEED, token_0, token_1, fee, word_pos]

Fields

bump: u8

Bump to identify PDA

word_pos: i16

The bitmap key. To find word position from a tick, divide the tick by tick spacing to get a 24 bit compressed result, then right shift to obtain the most significant 16 bits.

word: [u64; 4]

Packed initialized state

Implementations

Flips the initialized state for a given bit from false to true, or vice versa

Arguments
  • self - The bitmap state corresponding to the tick’s word position
  • bit_pos - The rightmost 8 bits of the tick

Returns the bitmap index (0 - 255) for the next initialized tick.

If no initialized tick is available, returns the first bit (index 0) the word in lte case, and the last bit in gte case.

Unlike Uniswap, this checks for equality in lte = false case. Externally ensure that compressed + 1 is used to derive the word_pos(for bitmap account) and bit_pos.

Obtain the actual tick using
(next + 255 * word_pos) * spacing
Arguments
  • self - The mapping in which to compute the next initialized tick
  • bit_pos - The starting bit position
  • lte - Whether to search for the next initialized tick to the left (less than or equal to the starting tick)

Trait Implementations

Deserializes previously initialized account data. Should fail for all uninitialized accounts, where the bytes are zeroed. Implementations should be unique to a particular account type so that one can never successfully deserialize the data of one account type into another. For example, if the SPL token program were to implement this trait, it should be impossible to deserialize a Mint account into a token Account. Read more

Deserializes account data without checking the account discriminator. This should only be used on account initialization, when the bytes of the account are zeroed. Read more

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Returns the “default value” for a type. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Self must have the same layout as the specified Bits except for the possible invalid bit patterns being checked during is_valid_bit_pattern. Read more

If this function returns true, then it must be valid to reinterpret bits as &Self.

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The alignment of pointer.

The type for initializers.

Initializes a with the given initializer. Read more

Dereferences the given pointer. Read more

Mutably dereferences the given pointer. Read more

Drops the object pointed to by the given pointer. Read more

Should always be Self

The resulting type after obtaining ownership.

Creates owned data from borrowed data, usually by cloning. Read more

🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.