#[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
Implementations§
Source§impl PoolKind
impl PoolKind
Sourcepub const KNOWN_KINDS: &'static [(&'static str, Self)]
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.
Sourcepub const DECLARED_UNSUPPORTED_KINDS: &'static [&'static str]
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.
Sourcepub const fn from_u8(val: u8) -> Option<Self>
pub const fn from_u8(val: u8) -> Option<Self>
Convert from the u8 discriminant used at the PyO3 boundary.
Returns None for unknown discriminants.
Sourcepub fn from_kind_str(kind: &str) -> Option<Self>
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.
Sourcepub fn is_declared_unsupported(kind: &str) -> bool
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).