pub struct Capabilities(/* private fields */);Expand description
Efficient bitflags representation of exchange capabilities
Uses 64 bits to store all 46 capabilities, providing:
- Compact storage (8 bytes vs 46+ bytes for booleans)
- Fast set operations (union, intersection, difference)
- Type-safe capability combinations
§Predefined Sets
MARKET_DATA: All public market data capabilitiesTRADING: All trading capabilitiesACCOUNT: All account-related capabilitiesFUNDING: All funding capabilitiesMARGIN: All margin/futures capabilitiesWEBSOCKET: All WebSocket capabilitiesALL: All capabilities enabledNONE: No capabilities
§Example
use ccxt_core::capability::Capabilities;
let caps = Capabilities::MARKET_DATA | Capabilities::TRADING;
assert!(caps.contains(Capabilities::FETCH_TICKER));
assert!(caps.contains(Capabilities::CREATE_ORDER));Implementations§
Source§impl Capabilities
impl Capabilities
pub const FETCH_MARKETS: Self
pub const FETCH_CURRENCIES: Self
pub const FETCH_TICKER: Self
pub const FETCH_TICKERS: Self
pub const FETCH_ORDER_BOOK: Self
pub const FETCH_TRADES: Self
pub const FETCH_OHLCV: Self
pub const FETCH_STATUS: Self
pub const FETCH_TIME: Self
pub const CREATE_ORDER: Self
pub const CREATE_MARKET_ORDER: Self
pub const CREATE_LIMIT_ORDER: Self
pub const CANCEL_ORDER: Self
pub const CANCEL_ALL_ORDERS: Self
pub const EDIT_ORDER: Self
pub const FETCH_ORDER: Self
pub const FETCH_ORDERS: Self
pub const FETCH_OPEN_ORDERS: Self
pub const FETCH_CLOSED_ORDERS: Self
pub const FETCH_CANCELED_ORDERS: Self
pub const FETCH_BALANCE: Self
pub const FETCH_MY_TRADES: Self
pub const FETCH_DEPOSITS: Self
pub const FETCH_WITHDRAWALS: Self
pub const FETCH_TRANSACTIONS: Self
pub const FETCH_LEDGER: Self
pub const FETCH_DEPOSIT_ADDRESS: Self
pub const CREATE_DEPOSIT_ADDRESS: Self
pub const WITHDRAW: Self
pub const TRANSFER: Self
pub const FETCH_BORROW_RATE: Self
pub const FETCH_BORROW_RATES: Self
pub const FETCH_FUNDING_RATE: Self
pub const FETCH_FUNDING_RATES: Self
pub const FETCH_POSITIONS: Self
pub const SET_LEVERAGE: Self
pub const SET_MARGIN_MODE: Self
pub const WEBSOCKET: Self
pub const WATCH_TICKER: Self
pub const WATCH_TICKERS: Self
pub const WATCH_ORDER_BOOK: Self
pub const WATCH_TRADES: Self
pub const WATCH_OHLCV: Self
pub const WATCH_BALANCE: Self
pub const WATCH_ORDERS: Self
pub const WATCH_MY_TRADES: Self
Sourcepub const MARKET_DATA: Self
pub const MARKET_DATA: Self
All public market data capabilities
Sourcepub const WEBSOCKET_ALL: Self
pub const WEBSOCKET_ALL: Self
All WebSocket capabilities
Sourcepub const PUBLIC_ONLY: Self
pub const PUBLIC_ONLY: Self
Public-only capabilities (no authentication required)
Source§impl Capabilities
impl Capabilities
Sourcepub const fn bits(&self) -> u64
pub const fn bits(&self) -> u64
Get the underlying bits value.
The returned value is exactly the bits set in this flags value.
Sourcepub const fn from_bits(bits: u64) -> Option<Self>
pub const fn from_bits(bits: u64) -> Option<Self>
Convert from a bits value.
This method will return None if any unknown bits are set.
Sourcepub const fn from_bits_truncate(bits: u64) -> Self
pub const fn from_bits_truncate(bits: u64) -> Self
Convert from a bits value, unsetting any unknown bits.
Sourcepub const fn from_bits_retain(bits: u64) -> Self
pub const fn from_bits_retain(bits: u64) -> Self
Convert from a bits value exactly.
Sourcepub fn from_name(name: &str) -> Option<Self>
pub fn from_name(name: &str) -> Option<Self>
Get a flags value with the bits of a flag with the given name set.
This method will return None if name is empty or doesn’t
correspond to any named flag.
Sourcepub const fn intersects(&self, other: Self) -> bool
pub const fn intersects(&self, other: Self) -> bool
Whether any set bits in a source flags value are also set in a target flags value.
Sourcepub const fn contains(&self, other: Self) -> bool
pub const fn contains(&self, other: Self) -> bool
Whether all set bits in a source flags value are also set in a target flags value.
Sourcepub fn remove(&mut self, other: Self)
pub fn remove(&mut self, other: Self)
The intersection of a source flags value with the complement of a target flags
value (&!).
This method is not equivalent to self & !other when other has unknown bits set.
remove won’t truncate other, but the ! operator will.
Sourcepub fn toggle(&mut self, other: Self)
pub fn toggle(&mut self, other: Self)
The bitwise exclusive-or (^) of the bits in two flags values.
Sourcepub fn set(&mut self, other: Self, value: bool)
pub fn set(&mut self, other: Self, value: bool)
Call insert when value is true or remove when value is false.
Sourcepub const fn intersection(self, other: Self) -> Self
pub const fn intersection(self, other: Self) -> Self
The bitwise and (&) of the bits in two flags values.
Sourcepub const fn union(self, other: Self) -> Self
pub const fn union(self, other: Self) -> Self
The bitwise or (|) of the bits in two flags values.
Sourcepub const fn difference(self, other: Self) -> Self
pub const fn difference(self, other: Self) -> Self
The intersection of a source flags value with the complement of a target flags
value (&!).
This method is not equivalent to self & !other when other has unknown bits set.
difference won’t truncate other, but the ! operator will.
Sourcepub const fn symmetric_difference(self, other: Self) -> Self
pub const fn symmetric_difference(self, other: Self) -> Self
The bitwise exclusive-or (^) of the bits in two flags values.
Sourcepub const fn complement(self) -> Self
pub const fn complement(self) -> Self
The bitwise negation (!) of the bits in a flags value, truncating the result.
Source§impl Capabilities
impl Capabilities
Sourcepub const fn iter(&self) -> Iter<Capabilities>
pub const fn iter(&self) -> Iter<Capabilities>
Yield a set of contained flags values.
Each yielded flags value will correspond to a defined named flag. Any unknown bits will be yielded together as a final flags value.
Sourcepub const fn iter_names(&self) -> IterNames<Capabilities>
pub const fn iter_names(&self) -> IterNames<Capabilities>
Yield a set of contained named flags values.
This method is like iter, except only yields bits in contained named flags.
Any unknown bits, or bits not corresponding to a contained flag will not be yielded.
Source§impl Capabilities
impl Capabilities
Sourcepub fn has(&self, capability: &str) -> bool
pub fn has(&self, capability: &str) -> bool
Check if a capability is supported by CCXT-style name
§Example
use ccxt_core::capability::Capabilities;
let caps = Capabilities::MARKET_DATA;
assert!(caps.has("fetchTicker"));
assert!(!caps.has("createOrder"));Sourcepub fn supported_capabilities(&self) -> Vec<&'static str>
pub fn supported_capabilities(&self) -> Vec<&'static str>
Get a list of all supported capability names
§Example
use ccxt_core::capability::Capabilities;
let caps = Capabilities::PUBLIC_ONLY;
let names = caps.supported_capabilities();
assert!(names.contains(&"fetchTicker"));Sourcepub fn from_iter<I: IntoIterator<Item = Capability>>(iter: I) -> Self
pub fn from_iter<I: IntoIterator<Item = Capability>>(iter: I) -> Self
Create from an iterator of capabilities
Trait Implementations§
Source§impl Binary for Capabilities
impl Binary for Capabilities
Source§impl BitAnd for Capabilities
impl BitAnd for Capabilities
Source§impl BitAndAssign for Capabilities
impl BitAndAssign for Capabilities
Source§fn bitand_assign(&mut self, other: Self)
fn bitand_assign(&mut self, other: Self)
The bitwise and (&) of the bits in two flags values.
Source§impl BitOr for Capabilities
impl BitOr for Capabilities
Source§fn bitor(self, other: Capabilities) -> Self
fn bitor(self, other: Capabilities) -> Self
The bitwise or (|) of the bits in two flags values.
Source§type Output = Capabilities
type Output = Capabilities
| operator.Source§impl BitOrAssign for Capabilities
impl BitOrAssign for Capabilities
Source§fn bitor_assign(&mut self, other: Self)
fn bitor_assign(&mut self, other: Self)
The bitwise or (|) of the bits in two flags values.
Source§impl BitXor for Capabilities
impl BitXor for Capabilities
Source§impl BitXorAssign for Capabilities
impl BitXorAssign for Capabilities
Source§fn bitxor_assign(&mut self, other: Self)
fn bitxor_assign(&mut self, other: Self)
The bitwise exclusive-or (^) of the bits in two flags values.
Source§impl Clone for Capabilities
impl Clone for Capabilities
Source§fn clone(&self) -> Capabilities
fn clone(&self) -> Capabilities
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for Capabilities
impl Debug for Capabilities
Source§impl Default for Capabilities
impl Default for Capabilities
Source§fn default() -> Capabilities
fn default() -> Capabilities
Source§impl Display for Capabilities
impl Display for Capabilities
Source§impl Extend<Capabilities> for Capabilities
impl Extend<Capabilities> for Capabilities
Source§fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)
fn extend<T: IntoIterator<Item = Self>>(&mut self, iterator: T)
The bitwise or (|) of the bits in each flags value.
Source§fn extend_one(&mut self, item: A)
fn extend_one(&mut self, item: A)
extend_one)Source§fn extend_reserve(&mut self, additional: usize)
fn extend_reserve(&mut self, additional: usize)
extend_one)Source§impl Flags for Capabilities
impl Flags for Capabilities
Source§const FLAGS: &'static [Flag<Capabilities>]
const FLAGS: &'static [Flag<Capabilities>]
Source§fn from_bits_retain(bits: u64) -> Capabilities
fn from_bits_retain(bits: u64) -> Capabilities
Source§fn contains_unknown_bits(&self) -> bool
fn contains_unknown_bits(&self) -> bool
true if any unknown bits are set.Source§fn from_bits_truncate(bits: Self::Bits) -> Self
fn from_bits_truncate(bits: Self::Bits) -> Self
Source§fn from_name(name: &str) -> Option<Self>
fn from_name(name: &str) -> Option<Self>
Source§fn iter_names(&self) -> IterNames<Self>
fn iter_names(&self) -> IterNames<Self>
Source§fn iter_defined_names() -> IterDefinedNames<Self>
fn iter_defined_names() -> IterDefinedNames<Self>
Self::FLAGS.Source§fn intersects(&self, other: Self) -> boolwhere
Self: Sized,
fn intersects(&self, other: Self) -> boolwhere
Self: Sized,
Source§fn contains(&self, other: Self) -> boolwhere
Self: Sized,
fn contains(&self, other: Self) -> boolwhere
Self: Sized,
Source§fn insert(&mut self, other: Self)where
Self: Sized,
fn insert(&mut self, other: Self)where
Self: Sized,
|) of the bits in two flags values.Source§fn remove(&mut self, other: Self)where
Self: Sized,
fn remove(&mut self, other: Self)where
Self: Sized,
&!). Read moreSource§fn toggle(&mut self, other: Self)where
Self: Sized,
fn toggle(&mut self, other: Self)where
Self: Sized,
^) of the bits in two flags values.Source§fn intersection(self, other: Self) -> Self
fn intersection(self, other: Self) -> Self
&) of the bits in two flags values.Source§fn difference(self, other: Self) -> Self
fn difference(self, other: Self) -> Self
&!). Read moreSource§fn symmetric_difference(self, other: Self) -> Self
fn symmetric_difference(self, other: Self) -> Self
^) of the bits in two flags values.Source§fn complement(self) -> Self
fn complement(self) -> Self
!) of the bits in a flags value, truncating the result.Source§impl From<Capabilities> for ExchangeCapabilities
impl From<Capabilities> for ExchangeCapabilities
Source§fn from(caps: Capabilities) -> Self
fn from(caps: Capabilities) -> Self
Source§impl From<Capability> for Capabilities
impl From<Capability> for Capabilities
Source§fn from(cap: Capability) -> Self
fn from(cap: Capability) -> Self
Source§impl FromIterator<Capabilities> for Capabilities
impl FromIterator<Capabilities> for Capabilities
Source§fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self
fn from_iter<T: IntoIterator<Item = Self>>(iterator: T) -> Self
The bitwise or (|) of the bits in each flags value.
Source§impl Hash for Capabilities
impl Hash for Capabilities
Source§impl IntoIterator for Capabilities
impl IntoIterator for Capabilities
Source§impl LowerHex for Capabilities
impl LowerHex for Capabilities
Source§impl Not for Capabilities
impl Not for Capabilities
Source§impl Octal for Capabilities
impl Octal for Capabilities
Source§impl PartialEq for Capabilities
impl PartialEq for Capabilities
Source§impl PublicFlags for Capabilities
impl PublicFlags for Capabilities
Source§impl Sub for Capabilities
impl Sub for Capabilities
Source§fn sub(self, other: Self) -> Self
fn sub(self, other: Self) -> Self
The intersection of a source flags value with the complement of a target flags value (&!).
This method is not equivalent to self & !other when other has unknown bits set.
difference won’t truncate other, but the ! operator will.
Source§type Output = Capabilities
type Output = Capabilities
- operator.Source§impl SubAssign for Capabilities
impl SubAssign for Capabilities
Source§fn sub_assign(&mut self, other: Self)
fn sub_assign(&mut self, other: Self)
The intersection of a source flags value with the complement of a target flags value (&!).
This method is not equivalent to self & !other when other has unknown bits set.
difference won’t truncate other, but the ! operator will.
Source§impl UpperHex for Capabilities
impl UpperHex for Capabilities
impl Copy for Capabilities
impl Eq for Capabilities
impl StructuralPartialEq for Capabilities
Auto Trait Implementations§
impl Freeze for Capabilities
impl RefUnwindSafe for Capabilities
impl Send for Capabilities
impl Sync for Capabilities
impl Unpin for Capabilities
impl UnwindSafe for Capabilities
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> ToStringFallible for Twhere
T: Display,
impl<T> ToStringFallible for Twhere
T: Display,
Source§fn try_to_string(&self) -> Result<String, TryReserveError>
fn try_to_string(&self) -> Result<String, TryReserveError>
ToString::to_string, but without panic on OOM.