pub(crate) mod account_adjustment;
pub(crate) mod account_adjustment_context;
pub(crate) mod account_control;
pub(crate) mod account_groups;
pub(crate) mod account_key;
pub(crate) mod account_outcome;
pub(crate) mod accounts;
pub(crate) mod configure;
pub(crate) mod engine;
pub(crate) mod engine_builder;
pub(crate) mod engine_trait;
pub(crate) mod execution_report;
pub(crate) mod instrument;
pub(crate) mod mutation;
pub(crate) mod order;
pub(crate) mod request_trait;
pub(crate) mod sync_mode;
mod macros;
pub use account_adjustment::{
AccountAdjustmentAmount, AccountAdjustmentBalanceOperation, AccountAdjustmentBounds,
AccountAdjustmentPositionOperation, WithAccountAdjustmentAmount,
WithAccountAdjustmentBalanceOperation, WithAccountAdjustmentBounds,
WithAccountAdjustmentPositionOperation,
};
pub use account_adjustment_context::AccountAdjustmentContext;
pub(crate) use account_control::BlockedAccounts;
pub use account_control::{AccountBlockError, AccountBlockHandle, AccountControl};
pub use account_groups::AccountGroupError;
pub(crate) use account_groups::{AccountGroups, AccountGroupsHandle, GroupLookup};
pub use account_key::{AccountKey, AccountKeyConstraint};
pub use account_outcome::{
AccountAdjustmentBatchResult, AccountAdjustmentOutcome, AccountOutcomeEntry, OutcomeAmount,
PnlOutcomeAmount,
};
pub(crate) use accounts::AccountCurrencies;
pub use accounts::Accounts;
pub(crate) use configure::{ConfigEntry, ConfigRegistry};
pub use configure::{Configurator, ConfigureError};
pub use engine_trait::{EngineTrait, EngineTraitOf};
pub use execution_report::{
ExecutionReportFillDetails, ExecutionReportOperation, ExecutionReportPositionImpact,
FinancialImpact, WithExecutionReportFillDetails, WithExecutionReportOperation,
WithExecutionReportPositionImpact, WithFinancialImpact,
};
pub use instrument::Instrument;
pub use mutation::{Mutation, Mutations};
pub use order::{
OrderMargin, OrderOperation, OrderPosition, WithOrderMargin, WithOrderOperation,
WithOrderPosition,
};
pub use request_trait::{
HasAccountAdjustmentBalance, HasAccountAdjustmentBalanceAverageEntryPrice,
HasAccountAdjustmentBalanceLowerBound, HasAccountAdjustmentBalanceRealizedPnl,
HasAccountAdjustmentBalanceUpperBound, HasAccountAdjustmentHeld,
HasAccountAdjustmentHeldLowerBound, HasAccountAdjustmentHeldUpperBound,
HasAccountAdjustmentIncoming, HasAccountAdjustmentIncomingLowerBound,
HasAccountAdjustmentIncomingUpperBound, HasAccountAdjustmentPositionLeverage, HasAccountId,
HasAutoBorrow, HasAverageEntryPrice, HasBalanceAsset, HasClosePosition, HasCollateralAsset,
HasExecutionReportIsFinal, HasExecutionReportLastTrade, HasExecutionReportPositionEffect,
HasExecutionReportPositionSide, HasFee, HasInstrument, HasLeavesQuantity,
HasOrderCollateralAsset, HasOrderLeverage, HasOrderPositionSide, HasOrderPrice, HasPnl,
HasPositionInstrument, HasPositionMode, HasPreTradeLock, HasReduceOnly, HasSide,
HasTradeAmount, RequestFieldAccessError,
};
pub use sync_mode::{
AccountSync, AccountSyncHandle, AccountSyncHandleWeak, FullSync, LocalSync, SyncMode,
};
pub const DEFAULT_POLICY_GROUP_ID: PolicyGroupId = PolicyGroupId::new(0);
#[derive(Clone, Copy, Debug, Default, PartialEq, Eq, Hash)]
pub struct PolicyGroupId(u16);
impl PolicyGroupId {
pub const fn new(value: u16) -> Self {
Self(value)
}
pub const fn value(self) -> u16 {
self.0
}
}