Skip to main content

ExecutionEventEmitter

Struct ExecutionEventEmitter 

Source
pub struct ExecutionEventEmitter { /* private fields */ }
Expand description

Event emitter for live trading - combines event generation with async dispatch.

This struct wraps an OrderEventFactory for event construction and an unbounded channel sender for async dispatch. It provides emit_* convenience methods that generate and send events in a single call.

The sender is set during the adapter’s start() phase via set_sender. Clones share the sender slot and observe later sender installations and replacements.

Implementations§

Source§

impl ExecutionEventEmitter

Source

pub fn new( clock: &'static AtomicTime, trader_id: TraderId, account_id: AccountId, account_type: AccountType, base_currency: Option<Currency>, ) -> Self

Creates a new ExecutionEventEmitter with no sender.

Call set_sender in the adapter’s start() method.

Source

pub fn set_sender(&mut self, sender: UnboundedSender<ExecutionEvent>)

Installs or replaces the sender for this emitter and all its clones.

Call in the adapter’s start() method.

Source

pub fn is_initialized(&self) -> bool

Returns true if the sender is initialized for this emitter and its clones.

Source

pub fn trader_id(&self) -> TraderId

Returns the trader ID.

Source

pub fn account_id(&self) -> AccountId

Returns the account ID.

Source

pub fn set_account_id(&mut self, account_id: AccountId)

Sets the account ID for generated events.

Source

pub fn emit_account_state( &self, balances: Vec<AccountBalance>, margins: Vec<MarginBalance>, reported: bool, ts_event: UnixNanos, info: Option<Params>, )

Generates and emits an account state event.

Source

pub fn try_emit_account_state( &self, balances: Vec<AccountBalance>, margins: Vec<MarginBalance>, reported: bool, ts_event: UnixNanos, info: Option<Params>, ) -> Result<()>

Generates and emits an account state event, reporting dispatch failures.

§Errors

Returns an error if the sender is uninitialized or its receiver is closed.

Source

pub fn emit_order_denied(&self, order: &OrderAny, reason: &str)

Generates and emits an order denied event.

Source

pub fn emit_order_submitted(&self, order: &OrderAny)

Generates and emits an order submitted event.

Source

pub fn emit_order_rejected( &self, order: &OrderAny, reason: &str, ts_event: UnixNanos, due_post_only: bool, )

Generates and emits an order rejected event.

Source

pub fn emit_order_accepted( &self, order: &OrderAny, venue_order_id: VenueOrderId, ts_event: UnixNanos, )

Generates and emits an order accepted event.

Source

pub fn emit_order_modify_rejected( &self, order: &OrderAny, venue_order_id: Option<VenueOrderId>, reason: &str, ts_event: UnixNanos, )

Generates and emits an order modify rejected event.

Source

pub fn emit_order_cancel_rejected( &self, order: &OrderAny, venue_order_id: Option<VenueOrderId>, reason: &str, ts_event: UnixNanos, )

Generates and emits an order cancel rejected event.

Source

pub fn emit_order_updated( &self, order: &OrderAny, venue_order_id: VenueOrderId, quantity: Quantity, price: Option<Price>, trigger_price: Option<Price>, protection_price: Option<Price>, ts_event: UnixNanos, )

Generates and emits an order updated event.

Source

pub fn emit_order_canceled( &self, order: &OrderAny, venue_order_id: Option<VenueOrderId>, ts_event: UnixNanos, )

Generates and emits an order canceled event.

Source

pub fn emit_order_triggered( &self, order: &OrderAny, venue_order_id: Option<VenueOrderId>, ts_event: UnixNanos, )

Generates and emits an order triggered event.

Source

pub fn emit_order_expired( &self, order: &OrderAny, venue_order_id: Option<VenueOrderId>, ts_event: UnixNanos, )

Generates and emits an order expired event.

Source

pub fn emit_order_filled( &self, order: &OrderAny, venue_order_id: VenueOrderId, venue_position_id: Option<PositionId>, trade_id: TradeId, last_qty: Quantity, last_px: Price, quote_currency: Currency, commission: Option<Money>, liquidity_side: LiquiditySide, ts_event: UnixNanos, )

Generates and emits an order filled event.

Source

pub fn emit_order_rejected_event( &self, strategy_id: StrategyId, instrument_id: InstrumentId, client_order_id: ClientOrderId, reason: &str, ts_event: UnixNanos, due_post_only: bool, )

Constructs and emits an order rejected event from raw fields.

Source

pub fn emit_order_modify_rejected_event( &self, strategy_id: StrategyId, instrument_id: InstrumentId, client_order_id: ClientOrderId, venue_order_id: Option<VenueOrderId>, reason: &str, ts_event: UnixNanos, )

Constructs and emits an order modify rejected event from raw fields.

Source

pub fn emit_order_cancel_rejected_event( &self, strategy_id: StrategyId, instrument_id: InstrumentId, client_order_id: ClientOrderId, venue_order_id: Option<VenueOrderId>, reason: &str, ts_event: UnixNanos, )

Constructs and emits an order cancel rejected event from raw fields.

Source

pub fn send_order_event(&self, event: OrderEventAny)

Emits an order event.

Source

pub fn try_send_order_event(&self, event: OrderEventAny) -> Result<()>

Emits an order event and returns any channel error to the caller.

§Errors

Returns an error if the sender is uninitialized or its receiver is closed.

Source

pub fn send_order_submitted_batch(&self, batch: OrderSubmittedBatch)

Emits a batch of order submitted events as a single channel message.

Source

pub fn send_order_accepted_batch(&self, batch: OrderAcceptedBatch)

Emits a batch of order accepted events as a single channel message.

Source

pub fn send_order_canceled_batch(&self, batch: OrderCanceledBatch)

Emits a batch of order canceled events as a single channel message.

Source

pub fn send_account_state(&self, state: AccountState)

Emits an account state event.

Source

pub fn send_execution_report(&self, report: ExecutionReport)

Emits an execution report.

Source

pub fn try_send_execution_report(&self, report: ExecutionReport) -> Result<()>

Emits an execution report and returns any channel error to the caller.

§Errors

Returns an error if the sender is not initialized or the receiving channel is closed.

Source

pub fn send_order_status_report(&self, report: OrderStatusReport)

Emits an order status report.

Source

pub fn send_fill_report(&self, report: FillReport)

Emits a fill report.

Source

pub fn send_order_with_fills( &self, report: OrderStatusReport, fills: Vec<FillReport>, )

Emits an order status report bundled with the fills that produced it.

Source

pub fn send_position_report(&self, report: PositionStatusReport)

Emits a position status report.

Trait Implementations§

Source§

impl Clone for ExecutionEventEmitter

Source§

fn clone(&self) -> ExecutionEventEmitter

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 Debug for ExecutionEventEmitter

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

§

impl<T> Allocation for T
where T: RefUnwindSafe + Send + Sync,

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
§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

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.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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
§

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

§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] only if self and other return Action::Follow. Read more
§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns [Action::Follow] if either self or other returns Action::Follow. Read more
§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
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, <T as TryFrom<U>>::Error>

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.
§

impl<T> Ungil for T
where T: Send,

§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more