#[non_exhaustive]pub enum Protocol {
AaveV3,
UniswapV3,
Pendle,
Raydium,
Kamino,
Wallet,
Native,
Nfts,
}Expand description
A supported DeFi protocol. Identity only — a protocol may have several backend
implementations (see Source); the user picks and configures which.
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.
AaveV3
Aave V3 lending.
UniswapV3
Uniswap V3 concentrated liquidity.
Pendle
Pendle yield tokens.
Raydium
Raydium CLMM (Solana).
Kamino
Kamino lending/liquidity (Solana).
Wallet
Idle wallet token balances (not a protocol; a capability).
Native
The chain’s native coin balance (ETH, BNB, SOL, BTC, …). Separate from Protocol::Wallet
so a single engine can route a native-balance read and a token-balance read independently on
the same chain (both would otherwise share one protocol and the engine would pick the first).
Nfts
Wallet NFTs.
Trait Implementations§
impl Copy for Protocol
impl Eq for Protocol
impl StructuralPartialEq for Protocol
Auto Trait Implementations§
impl Freeze for Protocol
impl RefUnwindSafe for Protocol
impl Send for Protocol
impl Sync for Protocol
impl Unpin for Protocol
impl UnsafeUnpin for Protocol
impl UnwindSafe for Protocol
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more