pub struct Fill {Show 18 fields
pub step: u32,
pub ts_ns: i64,
pub strategy_run_id: String,
pub trade_id: u64,
pub position_id: u64,
pub order_id: u64,
pub fill_seq: u32,
pub underlying: String,
pub expiration_ns: i64,
pub contract_id: String,
pub strike_cents: u64,
pub style: OptionStyle,
pub side: PositionSide,
pub quantity: u32,
pub price_cents: u64,
pub fees_cents: u64,
pub slippage_cents: i64,
pub mode: ExecMode,
}Expand description
fills.parquet — one row per executed fill. A realistic order walking N price
levels emits N rows; a naive order emits 1. UNIQUE and sort key
(step, order_id, fill_seq) (docs/04-replay-mode.md §2.2).
The unsigned-domain fields (step, quantity, and the cents u64s) are the
reader types; the checked try_from narrowing from the signed Parquet
wire (a negative is BundleError::Invariant, never an as cast) is #31/#32.
Fields§
§step: u32The engine step this fill belongs to.
ts_ns: i64Event time — nanoseconds since the Unix epoch, UTC.
strategy_run_id: StringProducer run identity — equals BundleManifest::run_id (opaque).
trade_id: u64The trade this fill is part of.
position_id: u64The position (leg) this fill is against.
order_id: u64The order this fill is part of.
fill_seq: u320-based fill index within the order (a realistic order emits several).
underlying: StringUnderlying ticker — matches CONTRACT_ID_UNDERLYING_PATTERN
(upper-case, colon-free).
expiration_ns: i64The leg’s expiry as the resolved absolute UTC instant (nanoseconds since epoch) — never a relative offset; the reader never re-resolves it.
contract_id: StringVersioned join key (CONTRACT_ID_FORMAT).
strike_cents: u64Strike price in integer cents (>= 0).
style: OptionStyleCall or put. Wire strings call / put.
side: PositionSideLong or short.
quantity: u32Contract quantity (> 0).
price_cents: u64Fill price in integer cents (>= 0).
fees_cents: u64Fees in integer cents — always >= 0, subtracted in P&L.
slippage_cents: i64Slippage in integer cents — signed; positive = adverse vs
decision_mid.
mode: ExecModeWhich fill model produced this row.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Fill
impl<'de> Deserialize<'de> for Fill
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl StructuralPartialEq for Fill
Auto Trait Implementations§
impl Freeze for Fill
impl RefUnwindSafe for Fill
impl Send for Fill
impl Sync for Fill
impl Unpin for Fill
impl UnsafeUnpin for Fill
impl UnwindSafe for Fill
Blanket Implementations§
impl<T> Allocation for T
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
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> 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> ⓘ
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> ⓘ
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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
impl<T> Scalar for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.