pub struct RerouteStatsReport {Show 15 fields
pub swaps_detected: u64,
pub swaps_filtered: u64,
pub swaps_rerouted: u64,
pub swaps_simulated: u64,
pub swaps_succeeded: u64,
pub requote_failures: u64,
pub override_setup_failures: u64,
pub metis_unavailable_blocks: u64,
pub quote_attempts_unavailable: u64,
pub direct_fill_matched: u64,
pub direct_fill_built: u64,
pub direct_fill_rejections: BTreeMap<String, u64>,
pub direct_fill_outcomes: BTreeMap<String, u64>,
pub direct_fill_scored: u64,
pub direct_fill_bps_total: i64,
}Expand description
High-level funnel for a reroute-order-flow session: how many detected swaps made it from
re-quoting through simulation to a non-reverting execution, and — for a run carrying a
DirectFillParams book — how many hops it priced against a candidate venue. Per-swap
economics and latency are session-internal and land in the analysis DB.
Fields§
§swaps_detected: u64Requotable swaps detected in the replayed range, across the admitted aggregators.
swaps_filtered: u64Detected swaps excluded before quoting — an unadmitted aggregator, an arbitrage cycle, a mint
pair the filter does not name. Without it the gap between swaps_detected and
swaps_rerouted reads as routing failures.
swaps_rerouted: u64Swaps re-quoted through metis and queued for simulation.
swaps_simulated: u64Swaps whose routed transaction was simulated.
swaps_succeeded: u64Simulated swaps whose routed transaction executed without reverting.
requote_failures: u64Detected swaps metis could not route; nothing was simulated for them.
override_setup_failures: u64Computed override actions that failed and therefore contributed no state.
Blocks replayed unchanged because the metis client was unavailable.
Quote attempts that could not be made because the metis client was unavailable, summed over every swap left queued by each such block. Each one is retried on the next block, so this counts retries forced rather than swaps lost.
direct_fill_matched: u64Hops whose pair the direct-fill book named. Zero when no book was configured.
direct_fill_built: u64Of those, the ones a venue could build. Zero while no aggregator implements the builder.
direct_fill_rejections: BTreeMap<String, u64>Why the rest were not built, keyed by the venue’s own rejection reason. A run with a book and no encoder reports every matched hop here under one key, which is what separates “nothing matched” from “nothing could be built”.
direct_fill_outcomes: BTreeMap<String, u64>Simulated probes by outcome — filled, reverted, unattributed, unsimulatable.
direct_fill_scored: u64Probes whose fill could be compared against the hop they replace.
direct_fill_bps_total: i64Sum of (probe fill - historical fill) / historical fill in basis points over
direct_fill_scored probes — divide by that count for the mean. Positive means the
candidate venue beat the one that traded.
Trait Implementations§
Source§impl Clone for RerouteStatsReport
impl Clone for RerouteStatsReport
Source§fn clone(&self) -> RerouteStatsReport
fn clone(&self) -> RerouteStatsReport
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for RerouteStatsReport
impl Debug for RerouteStatsReport
Source§impl Default for RerouteStatsReport
impl Default for RerouteStatsReport
Source§fn default() -> RerouteStatsReport
fn default() -> RerouteStatsReport
Source§impl<'de> Deserialize<'de> for RerouteStatsReport
impl<'de> Deserialize<'de> for RerouteStatsReport
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 Eq for RerouteStatsReport
Source§impl PartialEq for RerouteStatsReport
impl PartialEq for RerouteStatsReport
Source§impl Serialize for RerouteStatsReport
impl Serialize for RerouteStatsReport
impl StructuralPartialEq for RerouteStatsReport
Auto Trait Implementations§
impl Freeze for RerouteStatsReport
impl RefUnwindSafe for RerouteStatsReport
impl Send for RerouteStatsReport
impl Sync for RerouteStatsReport
impl Unpin for RerouteStatsReport
impl UnsafeUnpin for RerouteStatsReport
impl UnwindSafe for RerouteStatsReport
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
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> 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 more