pub struct OrderMatchingEngine { /* private fields */ }Expand description
Order matching engine kernel.
High-performance price-time priority matching engine with sub-10μs latency.
Implementations§
Source§impl OrderMatchingEngine
impl OrderMatchingEngine
Sourcepub fn with_config(config: EngineConfig) -> Self
pub fn with_config(config: EngineConfig) -> Self
Create with custom configuration.
Sourcepub fn submit_order(&mut self, order: Order) -> MatchResult
pub fn submit_order(&mut self, order: Order) -> MatchResult
Submit a new order.
Sourcepub fn cancel_order(&mut self, order_id: u64) -> Option<Order>
pub fn cancel_order(&mut self, order_id: u64) -> Option<Order>
Cancel an order.
Sourcepub fn modify_order(
&mut self,
order_id: u64,
new_price: Option<Price>,
new_quantity: Option<Quantity>,
) -> Option<MatchResult>
pub fn modify_order( &mut self, order_id: u64, new_price: Option<Price>, new_quantity: Option<Quantity>, ) -> Option<MatchResult>
Modify an order (cancel and replace).
Sourcepub fn get_snapshot(&self, symbol_id: u32, depth: usize) -> Option<L2Snapshot>
pub fn get_snapshot(&self, symbol_id: u32, depth: usize) -> Option<L2Snapshot>
Get order book snapshot.
Sourcepub fn process_batch(&mut self, orders: Vec<Order>) -> Vec<MatchResult>
pub fn process_batch(&mut self, orders: Vec<Order>) -> Vec<MatchResult>
Process a batch of orders.
Trait Implementations§
Source§impl BatchKernel<BatchOrderInput, BatchOrderOutput> for OrderMatchingEngine
impl BatchKernel<BatchOrderInput, BatchOrderOutput> for OrderMatchingEngine
Source§fn execute<'life0, 'async_trait>(
&'life0 self,
input: BatchOrderInput,
) -> Pin<Box<dyn Future<Output = KernelResult<BatchOrderOutput>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn execute<'life0, 'async_trait>(
&'life0 self,
input: BatchOrderInput,
) -> Pin<Box<dyn Future<Output = KernelResult<BatchOrderOutput>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Execute the kernel with the given input. Read more
Source§fn validate_input(&self, _input: &I) -> Result<(), KernelError>
fn validate_input(&self, _input: &I) -> Result<(), KernelError>
Validate the input before execution. Read more
Source§fn execute_with_context<'life0, 'life1, 'async_trait>(
&'life0 self,
ctx: &'life1 ExecutionContext,
input: I,
) -> Pin<Box<dyn Future<Output = Result<O, KernelError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
I: 'async_trait,
Self: Sync + 'async_trait,
fn execute_with_context<'life0, 'life1, 'async_trait>(
&'life0 self,
ctx: &'life1 ExecutionContext,
input: I,
) -> Pin<Box<dyn Future<Output = Result<O, KernelError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
I: 'async_trait,
Self: Sync + 'async_trait,
Execute the kernel with execution context. Read more
Source§impl BatchKernel<CancelOrderInput, CancelOrderOutput> for OrderMatchingEngine
impl BatchKernel<CancelOrderInput, CancelOrderOutput> for OrderMatchingEngine
Source§fn execute<'life0, 'async_trait>(
&'life0 self,
input: CancelOrderInput,
) -> Pin<Box<dyn Future<Output = KernelResult<CancelOrderOutput>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn execute<'life0, 'async_trait>(
&'life0 self,
input: CancelOrderInput,
) -> Pin<Box<dyn Future<Output = KernelResult<CancelOrderOutput>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Execute the kernel with the given input. Read more
Source§fn validate_input(&self, _input: &I) -> Result<(), KernelError>
fn validate_input(&self, _input: &I) -> Result<(), KernelError>
Validate the input before execution. Read more
Source§fn execute_with_context<'life0, 'life1, 'async_trait>(
&'life0 self,
ctx: &'life1 ExecutionContext,
input: I,
) -> Pin<Box<dyn Future<Output = Result<O, KernelError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
I: 'async_trait,
Self: Sync + 'async_trait,
fn execute_with_context<'life0, 'life1, 'async_trait>(
&'life0 self,
ctx: &'life1 ExecutionContext,
input: I,
) -> Pin<Box<dyn Future<Output = Result<O, KernelError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
I: 'async_trait,
Self: Sync + 'async_trait,
Execute the kernel with execution context. Read more
Source§impl BatchKernel<GetSnapshotInput, GetSnapshotOutput> for OrderMatchingEngine
impl BatchKernel<GetSnapshotInput, GetSnapshotOutput> for OrderMatchingEngine
Source§fn execute<'life0, 'async_trait>(
&'life0 self,
input: GetSnapshotInput,
) -> Pin<Box<dyn Future<Output = KernelResult<GetSnapshotOutput>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn execute<'life0, 'async_trait>(
&'life0 self,
input: GetSnapshotInput,
) -> Pin<Box<dyn Future<Output = KernelResult<GetSnapshotOutput>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Execute the kernel with the given input. Read more
Source§fn validate_input(&self, _input: &I) -> Result<(), KernelError>
fn validate_input(&self, _input: &I) -> Result<(), KernelError>
Validate the input before execution. Read more
Source§fn execute_with_context<'life0, 'life1, 'async_trait>(
&'life0 self,
ctx: &'life1 ExecutionContext,
input: I,
) -> Pin<Box<dyn Future<Output = Result<O, KernelError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
I: 'async_trait,
Self: Sync + 'async_trait,
fn execute_with_context<'life0, 'life1, 'async_trait>(
&'life0 self,
ctx: &'life1 ExecutionContext,
input: I,
) -> Pin<Box<dyn Future<Output = Result<O, KernelError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
I: 'async_trait,
Self: Sync + 'async_trait,
Execute the kernel with execution context. Read more
Source§impl BatchKernel<ModifyOrderInput, ModifyOrderOutput> for OrderMatchingEngine
impl BatchKernel<ModifyOrderInput, ModifyOrderOutput> for OrderMatchingEngine
Source§fn execute<'life0, 'async_trait>(
&'life0 self,
input: ModifyOrderInput,
) -> Pin<Box<dyn Future<Output = KernelResult<ModifyOrderOutput>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn execute<'life0, 'async_trait>(
&'life0 self,
input: ModifyOrderInput,
) -> Pin<Box<dyn Future<Output = KernelResult<ModifyOrderOutput>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Execute the kernel with the given input. Read more
Source§fn validate_input(&self, _input: &I) -> Result<(), KernelError>
fn validate_input(&self, _input: &I) -> Result<(), KernelError>
Validate the input before execution. Read more
Source§fn execute_with_context<'life0, 'life1, 'async_trait>(
&'life0 self,
ctx: &'life1 ExecutionContext,
input: I,
) -> Pin<Box<dyn Future<Output = Result<O, KernelError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
I: 'async_trait,
Self: Sync + 'async_trait,
fn execute_with_context<'life0, 'life1, 'async_trait>(
&'life0 self,
ctx: &'life1 ExecutionContext,
input: I,
) -> Pin<Box<dyn Future<Output = Result<O, KernelError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
I: 'async_trait,
Self: Sync + 'async_trait,
Execute the kernel with execution context. Read more
Source§impl BatchKernel<SubmitOrderInput, SubmitOrderOutput> for OrderMatchingEngine
impl BatchKernel<SubmitOrderInput, SubmitOrderOutput> for OrderMatchingEngine
Source§fn execute<'life0, 'async_trait>(
&'life0 self,
input: SubmitOrderInput,
) -> Pin<Box<dyn Future<Output = KernelResult<SubmitOrderOutput>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn execute<'life0, 'async_trait>(
&'life0 self,
input: SubmitOrderInput,
) -> Pin<Box<dyn Future<Output = KernelResult<SubmitOrderOutput>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Execute the kernel with the given input. Read more
Source§fn validate_input(&self, _input: &I) -> Result<(), KernelError>
fn validate_input(&self, _input: &I) -> Result<(), KernelError>
Validate the input before execution. Read more
Source§fn execute_with_context<'life0, 'life1, 'async_trait>(
&'life0 self,
ctx: &'life1 ExecutionContext,
input: I,
) -> Pin<Box<dyn Future<Output = Result<O, KernelError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
I: 'async_trait,
Self: Sync + 'async_trait,
fn execute_with_context<'life0, 'life1, 'async_trait>(
&'life0 self,
ctx: &'life1 ExecutionContext,
input: I,
) -> Pin<Box<dyn Future<Output = Result<O, KernelError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
I: 'async_trait,
Self: Sync + 'async_trait,
Execute the kernel with execution context. Read more
Source§impl Clone for OrderMatchingEngine
impl Clone for OrderMatchingEngine
Source§impl Debug for OrderMatchingEngine
impl Debug for OrderMatchingEngine
Source§impl Default for OrderMatchingEngine
impl Default for OrderMatchingEngine
Source§impl GpuKernel for OrderMatchingEngine
impl GpuKernel for OrderMatchingEngine
Source§fn metadata(&self) -> &KernelMetadata
fn metadata(&self) -> &KernelMetadata
Returns the kernel metadata.
Source§fn requires_gpu_native(&self) -> bool
fn requires_gpu_native(&self) -> bool
Returns true if this kernel requires GPU-native execution.
Source§fn health_check(&self) -> HealthStatus
fn health_check(&self) -> HealthStatus
Perform a health check on this kernel. Read more
Source§fn refresh_config(&mut self, _config: &KernelConfig) -> Result<(), KernelError>
fn refresh_config(&mut self, _config: &KernelConfig) -> Result<(), KernelError>
Refresh kernel configuration at runtime. Read more
Source§impl RingKernelHandler<CancelOrderRing, CancelOrderResponse> for OrderMatchingEngine
Ring kernel handler for order cancellation.
impl RingKernelHandler<CancelOrderRing, CancelOrderResponse> for OrderMatchingEngine
Ring kernel handler for order cancellation.
Source§fn handle<'life0, 'life1, 'async_trait>(
&'life0 self,
_ctx: &'life1 mut RingContext<'_>,
msg: CancelOrderRing,
) -> Pin<Box<dyn Future<Output = KernelResult<CancelOrderResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn handle<'life0, 'life1, 'async_trait>(
&'life0 self,
_ctx: &'life1 mut RingContext<'_>,
msg: CancelOrderRing,
) -> Pin<Box<dyn Future<Output = KernelResult<CancelOrderResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Handle an incoming message. Read more
Source§fn initialize<'life0, 'life1, 'async_trait>(
&'life0 self,
_ctx: &'life1 mut RingContext<'_>,
) -> Pin<Box<dyn Future<Output = Result<(), KernelError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: Sync + 'async_trait,
fn initialize<'life0, 'life1, 'async_trait>(
&'life0 self,
_ctx: &'life1 mut RingContext<'_>,
) -> Pin<Box<dyn Future<Output = Result<(), KernelError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: Sync + 'async_trait,
Initialize the kernel state. Read more
Source§fn ring_shutdown<'life0, 'life1, 'async_trait>(
&'life0 self,
_ctx: &'life1 mut RingContext<'_>,
) -> Pin<Box<dyn Future<Output = Result<(), KernelError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: Sync + 'async_trait,
fn ring_shutdown<'life0, 'life1, 'async_trait>(
&'life0 self,
_ctx: &'life1 mut RingContext<'_>,
) -> Pin<Box<dyn Future<Output = Result<(), KernelError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: Sync + 'async_trait,
Called when the kernel is being shut down. Read more
Source§fn handle_secure<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
ctx: &'life1 mut SecureRingContext<'life2, 'life3>,
msg: M,
) -> Pin<Box<dyn Future<Output = Result<R, KernelError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
M: 'async_trait,
R: 'async_trait,
Self: Sync + 'async_trait,
fn handle_secure<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
ctx: &'life1 mut SecureRingContext<'life2, 'life3>,
msg: M,
) -> Pin<Box<dyn Future<Output = Result<R, KernelError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
M: 'async_trait,
R: 'async_trait,
Self: Sync + 'async_trait,
Handle a message with security context. Read more
Source§impl RingKernelHandler<QueryBookRing, QueryBookResponse> for OrderMatchingEngine
Ring kernel handler for book queries.
impl RingKernelHandler<QueryBookRing, QueryBookResponse> for OrderMatchingEngine
Ring kernel handler for book queries.
Source§fn handle<'life0, 'life1, 'async_trait>(
&'life0 self,
_ctx: &'life1 mut RingContext<'_>,
msg: QueryBookRing,
) -> Pin<Box<dyn Future<Output = KernelResult<QueryBookResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn handle<'life0, 'life1, 'async_trait>(
&'life0 self,
_ctx: &'life1 mut RingContext<'_>,
msg: QueryBookRing,
) -> Pin<Box<dyn Future<Output = KernelResult<QueryBookResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Handle an incoming message. Read more
Source§fn initialize<'life0, 'life1, 'async_trait>(
&'life0 self,
_ctx: &'life1 mut RingContext<'_>,
) -> Pin<Box<dyn Future<Output = Result<(), KernelError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: Sync + 'async_trait,
fn initialize<'life0, 'life1, 'async_trait>(
&'life0 self,
_ctx: &'life1 mut RingContext<'_>,
) -> Pin<Box<dyn Future<Output = Result<(), KernelError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: Sync + 'async_trait,
Initialize the kernel state. Read more
Source§fn ring_shutdown<'life0, 'life1, 'async_trait>(
&'life0 self,
_ctx: &'life1 mut RingContext<'_>,
) -> Pin<Box<dyn Future<Output = Result<(), KernelError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: Sync + 'async_trait,
fn ring_shutdown<'life0, 'life1, 'async_trait>(
&'life0 self,
_ctx: &'life1 mut RingContext<'_>,
) -> Pin<Box<dyn Future<Output = Result<(), KernelError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: Sync + 'async_trait,
Called when the kernel is being shut down. Read more
Source§fn handle_secure<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
ctx: &'life1 mut SecureRingContext<'life2, 'life3>,
msg: M,
) -> Pin<Box<dyn Future<Output = Result<R, KernelError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
M: 'async_trait,
R: 'async_trait,
Self: Sync + 'async_trait,
fn handle_secure<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
ctx: &'life1 mut SecureRingContext<'life2, 'life3>,
msg: M,
) -> Pin<Box<dyn Future<Output = Result<R, KernelError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
M: 'async_trait,
R: 'async_trait,
Self: Sync + 'async_trait,
Handle a message with security context. Read more
Source§impl RingKernelHandler<SubmitOrderRing, SubmitOrderResponse> for OrderMatchingEngine
Ring kernel handler for ultra-low latency order submission.
impl RingKernelHandler<SubmitOrderRing, SubmitOrderResponse> for OrderMatchingEngine
Ring kernel handler for ultra-low latency order submission.
Source§fn handle<'life0, 'life1, 'async_trait>(
&'life0 self,
_ctx: &'life1 mut RingContext<'_>,
msg: SubmitOrderRing,
) -> Pin<Box<dyn Future<Output = KernelResult<SubmitOrderResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn handle<'life0, 'life1, 'async_trait>(
&'life0 self,
_ctx: &'life1 mut RingContext<'_>,
msg: SubmitOrderRing,
) -> Pin<Box<dyn Future<Output = KernelResult<SubmitOrderResponse>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Handle an incoming message. Read more
Source§fn initialize<'life0, 'life1, 'async_trait>(
&'life0 self,
_ctx: &'life1 mut RingContext<'_>,
) -> Pin<Box<dyn Future<Output = Result<(), KernelError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: Sync + 'async_trait,
fn initialize<'life0, 'life1, 'async_trait>(
&'life0 self,
_ctx: &'life1 mut RingContext<'_>,
) -> Pin<Box<dyn Future<Output = Result<(), KernelError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: Sync + 'async_trait,
Initialize the kernel state. Read more
Source§fn ring_shutdown<'life0, 'life1, 'async_trait>(
&'life0 self,
_ctx: &'life1 mut RingContext<'_>,
) -> Pin<Box<dyn Future<Output = Result<(), KernelError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: Sync + 'async_trait,
fn ring_shutdown<'life0, 'life1, 'async_trait>(
&'life0 self,
_ctx: &'life1 mut RingContext<'_>,
) -> Pin<Box<dyn Future<Output = Result<(), KernelError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
Self: Sync + 'async_trait,
Called when the kernel is being shut down. Read more
Source§fn handle_secure<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
ctx: &'life1 mut SecureRingContext<'life2, 'life3>,
msg: M,
) -> Pin<Box<dyn Future<Output = Result<R, KernelError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
M: 'async_trait,
R: 'async_trait,
Self: Sync + 'async_trait,
fn handle_secure<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
ctx: &'life1 mut SecureRingContext<'life2, 'life3>,
msg: M,
) -> Pin<Box<dyn Future<Output = Result<R, KernelError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
M: 'async_trait,
R: 'async_trait,
Self: Sync + 'async_trait,
Handle a message with security context. Read more
Auto Trait Implementations§
impl Freeze for OrderMatchingEngine
impl RefUnwindSafe for OrderMatchingEngine
impl Send for OrderMatchingEngine
impl Sync for OrderMatchingEngine
impl Unpin for OrderMatchingEngine
impl UnwindSafe for OrderMatchingEngine
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
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,
Source§impl<F, W, T, D> Deserialize<With<T, W>, D> for F
impl<F, W, T, D> Deserialize<With<T, W>, D> for F
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> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Gets the layout of the type.