1#![warn(rustc::all)]
49#![warn(clippy::pedantic)]
50#![deny(unsafe_code)]
51#![deny(unsafe_op_in_unsafe_fn)]
52#![deny(nonstandard_style)]
53#![deny(missing_debug_implementations)]
54#![deny(clippy::missing_errors_doc)]
55#![deny(clippy::missing_panics_doc)]
56#![deny(rustdoc::broken_intra_doc_links)]
57#![allow(
58 clippy::similar_names,
59 reason = "data domain terms such as ts_event/ts_init are intentionally parallel"
60)]
61#![allow(
62 clippy::cast_lossless,
63 clippy::cast_possible_truncation,
64 clippy::cast_possible_wrap,
65 clippy::cast_precision_loss,
66 clippy::cast_sign_loss,
67 reason = "data math casts between i64/u64/usize/f64 with values bounded by domain ranges"
68)]
69#![allow(
70 clippy::must_use_candidate,
71 reason = "data accessors are pervasive; #[must_use] noise is not warranted"
72)]
73#![allow(
74 clippy::unused_self,
75 reason = "engine helpers take &self for method-style organization"
76)]
77#![allow(
78 clippy::large_types_passed_by_value,
79 reason = "command and request value types are intentionally moved through dispatch"
80)]
81#![allow(
82 clippy::unsafe_derive_deserialize,
83 reason = "config types deserialize plain field values; unrelated unsafe impls are sound"
84)]
85#![allow(
86 clippy::missing_fields_in_debug,
87 reason = "manual Debug impls intentionally omit verbose internal state"
88)]
89#![allow(
90 clippy::struct_excessive_bools,
91 reason = "config structs mirror existing Python configuration surfaces"
92)]
93#![allow(
94 clippy::too_many_lines,
95 reason = "engine and aggregation dispatch functions exceed the default threshold by design"
96)]
97#![allow(
98 clippy::inline_always,
99 reason = "hot-path helpers in aggregation are intentionally always inlined"
100)]
101#![allow(
102 clippy::match_same_arms,
103 reason = "explicit per-variant arms document data dispatch even when bodies coincide"
104)]
105#![allow(
106 clippy::match_wildcard_for_single_variants,
107 reason = "wildcard arms guard against future enum variants in command dispatch"
108)]
109#![allow(
110 clippy::single_match_else,
111 reason = "two-arm matches are consistent with surrounding command and event dispatch"
112)]
113#![allow(
114 clippy::assert_is_empty,
115 reason = "`assert!(x.is_empty())` is clearer than comparing against an empty value"
116)]
117#![cfg_attr(
118 test,
119 allow(
120 clippy::float_cmp,
121 clippy::should_panic_without_expect,
122 clippy::unreadable_literal,
123 clippy::used_underscore_binding,
124 reason = "data tests assert exact float outputs and use loose patterns for fixture setup"
125 )
126)]
127
128pub mod aggregation;
129pub mod client;
130pub mod engine;
131pub mod option_chains;
132
133#[cfg(feature = "python")]
134pub mod python;
135
136#[cfg(feature = "defi")]
137pub mod defi;
138
139pub use aggregation::{
141 FixedTickSchemeRounder, MapVegaProvider, SpreadPriceRounder, SpreadQuoteAggregator,
142 VegaProvider,
143};
144pub use client::DataClientAdapter;