pub struct ExecutionClientCore {
pub trader_id: TraderId,
pub client_id: ClientId,
pub venue: Venue,
pub oms_type: OmsType,
pub account_id: AccountId,
pub account_type: AccountType,
pub base_currency: Option<Currency>,
pub is_connected: bool,
/* private fields */
}
Expand description
Base implementation for execution clients providing common functionality.
This struct provides the foundation for all execution clients, handling account state generation, order event creation, and message routing. Execution clients can inherit this base functionality and extend it with venue-specific implementations.
Fields§
§trader_id: TraderId
§client_id: ClientId
§venue: Venue
§oms_type: OmsType
§account_id: AccountId
§account_type: AccountType
§base_currency: Option<Currency>
§is_connected: bool
Implementations§
Source§impl ExecutionClientCore
impl ExecutionClientCore
Sourcepub const fn new(
trader_id: TraderId,
client_id: ClientId,
venue: Venue,
oms_type: OmsType,
account_id: AccountId,
account_type: AccountType,
base_currency: Option<Currency>,
clock: Rc<RefCell<dyn Clock>>,
cache: Rc<RefCell<Cache>>,
) -> Self
pub const fn new( trader_id: TraderId, client_id: ClientId, venue: Venue, oms_type: OmsType, account_id: AccountId, account_type: AccountType, base_currency: Option<Currency>, clock: Rc<RefCell<dyn Clock>>, cache: Rc<RefCell<Cache>>, ) -> Self
Creates a new ExecutionClientCore
instance.
Sourcepub const fn set_connected(&mut self, is_connected: bool)
pub const fn set_connected(&mut self, is_connected: bool)
Sets the connection status of the execution client.
Sourcepub const fn set_account_id(&mut self, account_id: AccountId)
pub const fn set_account_id(&mut self, account_id: AccountId)
Sets the account identifier for the execution client.
Sourcepub fn get_account(&self) -> Option<AccountAny>
pub fn get_account(&self) -> Option<AccountAny>
Returns the account associated with this execution client.
Sourcepub fn generate_account_state(
&self,
balances: Vec<AccountBalance>,
margins: Vec<MarginBalance>,
reported: bool,
ts_event: UnixNanos,
) -> Result<()>
pub fn generate_account_state( &self, balances: Vec<AccountBalance>, margins: Vec<MarginBalance>, reported: bool, ts_event: UnixNanos, ) -> Result<()>
Generates and publishes the account state event.
§Errors
Returns an error if constructing or sending the account state fails.
pub fn generate_order_denied( &self, strategy_id: StrategyId, instrument_id: InstrumentId, client_order_id: ClientOrderId, reason: &str, ts_event: UnixNanos, )
pub fn generate_order_submitted( &self, strategy_id: StrategyId, instrument_id: InstrumentId, client_order_id: ClientOrderId, ts_event: UnixNanos, )
pub fn generate_order_rejected( &self, strategy_id: StrategyId, instrument_id: InstrumentId, client_order_id: ClientOrderId, reason: &str, ts_event: UnixNanos, due_post_only: bool, )
pub fn generate_order_accepted( &self, strategy_id: StrategyId, instrument_id: InstrumentId, client_order_id: ClientOrderId, venue_order_id: VenueOrderId, ts_event: UnixNanos, )
pub fn generate_order_modify_rejected( &self, strategy_id: StrategyId, instrument_id: InstrumentId, client_order_id: ClientOrderId, venue_order_id: VenueOrderId, reason: &str, ts_event: UnixNanos, )
pub fn generate_order_cancel_rejected( &self, strategy_id: StrategyId, instrument_id: InstrumentId, client_order_id: ClientOrderId, venue_order_id: VenueOrderId, reason: &str, ts_event: UnixNanos, )
pub fn generate_order_updated( &self, strategy_id: StrategyId, instrument_id: InstrumentId, client_order_id: ClientOrderId, venue_order_id: VenueOrderId, quantity: Quantity, price: Price, trigger_price: Option<Price>, ts_event: UnixNanos, venue_order_id_modified: bool, )
pub fn generate_order_canceled( &self, strategy_id: StrategyId, instrument_id: InstrumentId, client_order_id: ClientOrderId, venue_order_id: VenueOrderId, ts_event: UnixNanos, )
pub fn generate_order_triggered( &self, strategy_id: StrategyId, instrument_id: InstrumentId, client_order_id: ClientOrderId, venue_order_id: VenueOrderId, ts_event: UnixNanos, )
pub fn generate_order_expired( &self, strategy_id: StrategyId, instrument_id: InstrumentId, client_order_id: ClientOrderId, venue_order_id: VenueOrderId, ts_event: UnixNanos, )
pub fn generate_order_filled( &self, strategy_id: StrategyId, instrument_id: InstrumentId, client_order_id: ClientOrderId, venue_order_id: VenueOrderId, venue_position_id: PositionId, trade_id: TradeId, order_side: OrderSide, order_type: OrderType, last_qty: Quantity, last_px: Price, quote_currency: Currency, commission: Money, liquidity_side: LiquiditySide, ts_event: UnixNanos, )
Trait Implementations§
Source§impl Clone for ExecutionClientCore
impl Clone for ExecutionClientCore
Source§fn clone(&self) -> ExecutionClientCore
fn clone(&self) -> ExecutionClientCore
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreAuto Trait Implementations§
impl Freeze for ExecutionClientCore
impl !RefUnwindSafe for ExecutionClientCore
impl !Send for ExecutionClientCore
impl !Sync for ExecutionClientCore
impl Unpin for ExecutionClientCore
impl !UnwindSafe for ExecutionClientCore
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more