Skip to main content

PoolKind

Enum PoolKind 

Source
#[non_exhaustive]
pub enum PoolKind { V2, V3, V4, }
Expand description

Discriminant for the three pool-table families.

V2 corresponds to UniswapV2PoolTableBase (Uniswap V2 and V2-style forks); V3 corresponds to UniswapV3PoolTableBase (Uniswap V3 and V3-style forks); V4 corresponds to UniswapV4PoolTable.

All V2/V3 subtypes share the pools database table (single ID sequence), so a pool_id is unique within V2 and within V3 — no collision between the two. V4 pools use a separate managed_pools table, so the PoolKind discriminant disambiguates V4 IDs from V2/V3 IDs.

Variants (Non-exhaustive)§

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
§

V2

§

V3

§

V4

Implementations§

Source§

impl PoolKind

Source

pub const KNOWN_KINDS: &'static [(&'static str, Self)]

The single table of persisted kind discriminators the graph vocabulary admits, paired with their tag.

ADR-059 D1: this is the one enumeration Self::from_kind_str (and therefore every schema is_v*_kind helper and graph reader) projects through; degenbot-db’s golden test pins its membership so a taxonomy species cannot be added without a graph tag.

Source

pub const DECLARED_UNSUPPORTED_KINDS: &'static [&'static str]

pools.kind / managed_pools.kind discriminators whose family the taxonomy declares but this graph vocabulary does not admit (ADR-059 D8). These are NOT supported: Self::from_kind_str returns None for them, and a DB row carrying one flows into the loud load_unsupported roster instead of being unclassifiable.

lfj_binned is the LFJ (Trader Joe) binned-liquidity family — the first genuinely new pool structure through the kernel, declared here before any tier admits it.

Source

pub const fn as_u8(self) -> u8

Convert to the u8 discriminant used at the PyO3 boundary.

Source

pub const fn from_u8(val: u8) -> Option<Self>

Convert from the u8 discriminant used at the PyO3 boundary.

Returns None for unknown discriminants.

Source

pub fn from_kind_str(kind: &str) -> Option<Self>

Project a persisted pool kind discriminator onto the graph vocabulary (ADR-059 D1).

The discovery tier receives a pool’s taxonomy species as the database pools.kind / managed_pools.kind string, not a degenbot-pools Identity: this crate is the graph leaf and carries no taxonomy dependency. The kind string is therefore the minimal taxonomy input the tier can construct from its own data.

Returns None for a kind outside the V2/V3/V4 graph vocabulary; the caller refuses it loudly rather than dropping the row.

Source

pub fn is_declared_unsupported(kind: &str) -> bool

true if kind is a declared-but-unsupported family discriminator (present in the taxonomy, absent from the supported Self::KNOWN_KINDS).

Trait Implementations§

Source§

impl Clone for PoolKind

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for PoolKind

Source§

impl Debug for PoolKind

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Eq for PoolKind

Source§

impl Hash for PoolKind

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for PoolKind

Source§

fn eq(&self, other: &Self) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for PoolKind

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

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

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

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

fn clone_into(&self, target: &mut T)

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

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.