pub struct GreeksCache {
instruments: Arc<RwLock<HashMap<String, Market>>>,
oracles: HashMap<String, Arc<HyperliquidMarkPriceOracle>>,
risk_free_rate: f64,
quote_provider: Arc<dyn QuoteProvider>,
sync_status: Arc<SyncStatus>,
theoretical_iv_overrides: Arc<RwLock<HashMap<String, f64>>>,
vol_oracle: RwLock<Option<SharedVolOracle>>,
}Fields§
§instruments: Arc<RwLock<HashMap<String, Market>>>§oracles: HashMap<String, Arc<HyperliquidMarkPriceOracle>>§risk_free_rate: f64§quote_provider: Arc<dyn QuoteProvider>§sync_status: Arc<SyncStatus>§theoretical_iv_overrides: Arc<RwLock<HashMap<String, f64>>>§vol_oracle: RwLock<Option<SharedVolOracle>>Implementations§
Source§impl GreeksCache
impl GreeksCache
Sourcepub fn configured_underlyings(&self) -> Vec<String>
pub fn configured_underlyings(&self) -> Vec<String>
Underlying symbols with configured mark-price oracles.
Sourcepub fn risk_free_rate(&self) -> f64
pub fn risk_free_rate(&self) -> f64
Get the configured risk-free rate used for API-side option repricing.
fn normalize_expiry_timestamp(underlying: &str, raw_expiry: i64) -> Result<u64>
Sourcepub async fn new(
diesel_db: &dyn BootstrapReader,
event_bus: Arc<dyn EventBusTrait>,
oracles: HashMap<String, Arc<HyperliquidMarkPriceOracle>>,
shutdown_rx: Receiver<()>,
quote_provider: Arc<dyn QuoteProvider>,
) -> Result<Arc<Self>>
pub async fn new( diesel_db: &dyn BootstrapReader, event_bus: Arc<dyn EventBusTrait>, oracles: HashMap<String, Arc<HyperliquidMarkPriceOracle>>, shutdown_rx: Receiver<()>, quote_provider: Arc<dyn QuoteProvider>, ) -> Result<Arc<Self>>
Create a new GreeksCache that reads mid prices from the engine snapshot.
Only subscribes to market-updates for instrument add/remove events. Sets readiness to Ready once all oracles have spot prices.
Sourcepub async fn set_vol_oracle(&self, oracle: SharedVolOracle)
pub async fn set_vol_oracle(&self, oracle: SharedVolOracle)
Set the canonical vol surface oracle used for theoretical IV lookups.
Sourcepub fn sync_status(&self) -> Arc<SyncStatus>
pub fn sync_status(&self) -> Arc<SyncStatus>
Get the sync status for readiness checks.
async fn load_instruments_from_db( &self, diesel_db: &dyn BootstrapReader, ) -> Result<()>
Sourceasync fn start_market_updates_listener(
self: Arc<Self>,
event_bus: Arc<dyn EventBusTrait>,
shutdown_rx: Receiver<()>,
) -> Result<()>
async fn start_market_updates_listener( self: Arc<Self>, event_bus: Arc<dyn EventBusTrait>, shutdown_rx: Receiver<()>, ) -> Result<()>
Subscribe to market-updates only (for instrument add/remove events).
async fn handle_market_update(&self, market_msg: MarketUpdateMessage)
Sourceasync fn get_pricing_context(&self, symbol: &str) -> Result<PricingContext>
async fn get_pricing_context(&self, symbol: &str) -> Result<PricingContext>
Extract pricing context for an option symbol: expiry, strike, option type, spot price, forward price, and risk-free rate.
fn time_to_expiry_years(expiry_timestamp: u64) -> Result<f64>
async fn resolve_theoretical_iv( &self, symbol: &str, context: &PricingContext, ) -> Result<TheoreticalIv>
fn compute_quote_iv_from_market_price( context: &PricingContext, time_to_expiry: f64, market_price: f64, initial_vol: Option<f64>, ) -> Option<f64>
async fn compute_theoretical_greeks(&self, symbol: &str) -> Result<Greeks>
Sourcepub async fn get_greeks(&self, symbol: &str) -> Result<Greeks>
pub async fn get_greeks(&self, symbol: &str) -> Result<Greeks>
Calculate Greeks for an option using forward price from mark price oracle.
Uses forward price = spot × e^(rt) instead of spot price, which accounts for the cost of carry to expiry.
Sourcepub async fn get_theoretical_price(&self, symbol: &str) -> Result<f64>
pub async fn get_theoretical_price(&self, symbol: &str) -> Result<f64>
Reprice a single option using the current forward price and theoretical IV.
Sourcepub async fn get_theoretical_mark(&self, symbol: &str) -> Result<f64>
pub async fn get_theoretical_mark(&self, symbol: &str) -> Result<f64>
Resolve the canonical theoretical mark for an option, perp, or underlying symbol.
Sourcepub async fn get_iv(&self, symbol: &str) -> Result<f64>
pub async fn get_iv(&self, symbol: &str) -> Result<f64>
Get theoretical implied volatility for a symbol.
Sourcepub async fn get_bulk_iv(&self, symbols: &[String]) -> HashMap<String, f64>
pub async fn get_bulk_iv(&self, symbols: &[String]) -> HashMap<String, f64>
Bulk implied volatility lookup for option chains.
Returns IV values for symbols that can be computed successfully.
Sourcepub async fn get_all_iv_snapshot(&self) -> HashMap<String, f64>
pub async fn get_all_iv_snapshot(&self) -> HashMap<String, f64>
Snapshot of all theoretical implied volatilities keyed by symbol.
Sourcepub async fn get_quote_side_ivs_from_prices(
&self,
symbol: &str,
best_bid: Option<f64>,
best_ask: Option<f64>,
) -> Result<(Option<f64>, Option<f64>)>
pub async fn get_quote_side_ivs_from_prices( &self, symbol: &str, best_bid: Option<f64>, best_ask: Option<f64>, ) -> Result<(Option<f64>, Option<f64>)>
Compute quote-side IVs from explicit bid and ask prices, when those sides exist.
Sourcepub async fn get_quote_side_ivs(
&self,
symbol: &str,
) -> Result<(Option<f64>, Option<f64>)>
pub async fn get_quote_side_ivs( &self, symbol: &str, ) -> Result<(Option<f64>, Option<f64>)>
Compute quote-side IVs from the live bid and ask, when those sides exist.
Sourcepub async fn get_all_spot_prices_snapshot(&self) -> HashMap<String, f64>
pub async fn get_all_spot_prices_snapshot(&self) -> HashMap<String, f64>
Snapshot of current spot prices for configured underlyings.
Sourcepub async fn get_all_prev_day_prices_snapshot(&self) -> HashMap<String, f64>
pub async fn get_all_prev_day_prices_snapshot(&self) -> HashMap<String, f64>
Snapshot of previous day prices for configured underlyings.
Sourcepub async fn get_spot_price(&self, underlying: &str) -> Option<f64>
pub async fn get_spot_price(&self, underlying: &str) -> Option<f64>
Get current spot price for an underlying from the oracle.
Sourcepub async fn get_forward_price_quote(
&self,
underlying: &str,
expiry_timestamp: i64,
) -> Option<(f64, f64)>
pub async fn get_forward_price_quote( &self, underlying: &str, expiry_timestamp: i64, ) -> Option<(f64, f64)>
Get forward price and risk-free rate for an underlying at a specific expiry.
Sourcepub async fn get_forward_price(
&self,
underlying: &str,
expiry_timestamp: i64,
) -> Option<f64>
pub async fn get_forward_price( &self, underlying: &str, expiry_timestamp: i64, ) -> Option<f64>
Get forward price for an underlying at a specific expiry.
Sourcepub async fn get_settlement_price(
&self,
underlying: &str,
expiry_timestamp: i64,
) -> Option<f64>
pub async fn get_settlement_price( &self, underlying: &str, expiry_timestamp: i64, ) -> Option<f64>
Get finalized settlement price for an underlying at a specific expiry.
Sourcepub async fn get_cached_symbols(&self) -> Vec<String>
pub async fn get_cached_symbols(&self) -> Vec<String>
Get all cached active option symbols.
Sourcepub async fn has_symbol(&self, symbol: &str) -> bool
pub async fn has_symbol(&self, symbol: &str) -> bool
Check if a symbol is cached.
Sourcepub fn get_configured_underlyings(&self) -> Vec<String>
pub fn get_configured_underlyings(&self) -> Vec<String>
Get all configured underlying symbols.
Sourcepub async fn get_spot_price_staleness(&self) -> HashMap<String, Option<f64>>
pub async fn get_spot_price_staleness(&self) -> HashMap<String, Option<f64>>
Get staleness of spot prices for all configured underlyings. Returns a map of underlying -> staleness in seconds. If an oracle hasn’t fetched yet, it returns None for that underlying.
Sourcepub async fn get_unhealthy_oracles(&self) -> Vec<String>
pub async fn get_unhealthy_oracles(&self) -> Vec<String>
Check if any spot price oracle is unhealthy.
Sourcepub fn new_empty_for_testing(
quote_provider: Arc<dyn QuoteProvider>,
) -> Arc<Self>
pub fn new_empty_for_testing( quote_provider: Arc<dyn QuoteProvider>, ) -> Arc<Self>
Create an empty GreeksCache for tests that do not need real instrument data. Skips the DB bootstrap and event bus subscription.
Sourcepub async fn set_spot_price_for_testing(
&self,
underlying: &str,
price: f64,
) -> bool
pub async fn set_spot_price_for_testing( &self, underlying: &str, price: f64, ) -> bool
Set spot price for an underlying (for testing only).
This method allows tests to inject spot prices without making network requests. ONLY use this in testnet mode.
Sourcepub async fn set_theoretical_iv_for_testing(&self, symbol: &str, iv: f64)
pub async fn set_theoretical_iv_for_testing(&self, symbol: &str, iv: f64)
Set theoretical IV override for an option symbol (for testing only).
This allows test environments to decouple theoretical repricing from orderbook quotes.
Trait Implementations§
Source§impl GreeksCacheReader for GreeksCache
impl GreeksCacheReader for GreeksCache
fn get_greeks<'life0, 'life1, 'async_trait>(
&'life0 self,
symbol: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Greeks>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_theoretical_price<'life0, 'life1, 'async_trait>(
&'life0 self,
symbol: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<f64>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_theoretical_mark<'life0, 'life1, 'async_trait>(
&'life0 self,
symbol: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<f64>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_iv<'life0, 'life1, 'async_trait>(
&'life0 self,
symbol: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<f64>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_bulk_iv<'life0, 'life1, 'async_trait>(
&'life0 self,
symbols: &'life1 [String],
) -> Pin<Box<dyn Future<Output = HashMap<String, f64>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_all_iv_snapshot<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = HashMap<String, f64>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_all_spot_prices_snapshot<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = HashMap<String, f64>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_all_prev_day_prices_snapshot<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = HashMap<String, f64>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_spot_price<'life0, 'life1, 'async_trait>(
&'life0 self,
underlying: &'life1 str,
) -> Pin<Box<dyn Future<Output = Option<f64>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_settlement_price<'life0, 'life1, 'async_trait>(
&'life0 self,
underlying: &'life1 str,
expiry_timestamp: i64,
) -> Pin<Box<dyn Future<Output = Option<f64>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_quote_side_ivs_from_prices<'life0, 'life1, 'async_trait>(
&'life0 self,
symbol: &'life1 str,
best_bid: Option<f64>,
best_ask: Option<f64>,
) -> Pin<Box<dyn Future<Output = Result<(Option<f64>, Option<f64>)>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn has_symbol<'life0, 'life1, 'async_trait>(
&'life0 self,
symbol: &'life1 str,
) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_configured_underlyings(&self) -> Vec<String>
fn get_spot_price_staleness<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = HashMap<String, Option<f64>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get_unhealthy_oracles<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Vec<String>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn set_spot_price_for_testing<'life0, 'life1, 'async_trait>(
&'life0 self,
underlying: &'life1 str,
price: f64,
) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn set_theoretical_iv_for_testing<'life0, 'life1, 'async_trait>(
&'life0 self,
symbol: &'life1 str,
iv: f64,
) -> Pin<Box<dyn Future<Output = ()> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§impl SpotPriceSource for GreeksCache
impl SpotPriceSource for GreeksCache
Auto Trait Implementations§
impl !Freeze for GreeksCache
impl !RefUnwindSafe for GreeksCache
impl Send for GreeksCache
impl Sync for GreeksCache
impl Unpin for GreeksCache
impl UnsafeUnpin for GreeksCache
impl !UnwindSafe for GreeksCache
Blanket Implementations§
§impl<T> AggregateExpressionMethods for T
impl<T> AggregateExpressionMethods for T
§fn aggregate_distinct(self) -> Self::Outputwhere
Self: DistinctDsl,
fn aggregate_distinct(self) -> Self::Outputwhere
Self: DistinctDsl,
DISTINCT modifier for aggregate functions Read more§fn aggregate_all(self) -> Self::Outputwhere
Self: AllDsl,
fn aggregate_all(self) -> Self::Outputwhere
Self: AllDsl,
ALL modifier for aggregate functions Read more§fn aggregate_filter<P>(self, f: P) -> Self::Outputwhere
P: AsExpression<Bool>,
Self: FilterDsl<<P as AsExpression<Bool>>::Expression>,
fn aggregate_filter<P>(self, f: P) -> Self::Outputwhere
P: AsExpression<Bool>,
Self: FilterDsl<<P as AsExpression<Bool>>::Expression>,
§fn aggregate_order<O>(self, o: O) -> Self::Outputwhere
Self: OrderAggregateDsl<O>,
fn aggregate_order<O>(self, o: O) -> Self::Outputwhere
Self: OrderAggregateDsl<O>,
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<T> Conv for T
impl<T> Conv for T
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.§impl<T> DowncastSend for T
impl<T> DowncastSend for T
§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§impl<T> FmtForward for T
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self to use its Binary implementation when Debug-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self to use its Display implementation when
Debug-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self to use its LowerExp implementation when
Debug-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self to use its LowerHex implementation when
Debug-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self to use its Octal implementation when Debug-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self to use its Pointer implementation when
Debug-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self to use its UpperExp implementation when
Debug-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self to use its UpperHex implementation when
Debug-formatted.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request§impl<T> IntoSql for T
impl<T> IntoSql for T
§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self, then passes self.as_ref() into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self, then passes self.as_mut() into the pipe
function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§impl<T, Conn> RunQueryDsl<Conn> for T
impl<T, Conn> RunQueryDsl<Conn> for T
§fn execute<'conn, 'query>(
self,
conn: &'conn mut Conn,
) -> <Conn as AsyncConnectionCore>::ExecuteFuture<'conn, 'query>where
Conn: AsyncConnectionCore + Send,
Self: ExecuteDsl<Conn> + 'query,
fn execute<'conn, 'query>(
self,
conn: &'conn mut Conn,
) -> <Conn as AsyncConnectionCore>::ExecuteFuture<'conn, 'query>where
Conn: AsyncConnectionCore + Send,
Self: ExecuteDsl<Conn> + 'query,
§fn load<'query, 'conn, U>(
self,
conn: &'conn mut Conn,
) -> AndThen<Self::LoadFuture<'conn>, TryCollect<Self::Stream<'conn>, Vec<U>>>where
U: Send,
Conn: AsyncConnectionCore,
Self: LoadQuery<'query, Conn, U> + 'query,
fn load<'query, 'conn, U>(
self,
conn: &'conn mut Conn,
) -> AndThen<Self::LoadFuture<'conn>, TryCollect<Self::Stream<'conn>, Vec<U>>>where
U: Send,
Conn: AsyncConnectionCore,
Self: LoadQuery<'query, Conn, U> + 'query,
§fn load_stream<'conn, 'query, U>(
self,
conn: &'conn mut Conn,
) -> Self::LoadFuture<'conn>where
Conn: AsyncConnectionCore,
U: 'conn,
Self: LoadQuery<'query, Conn, U> + 'query,
fn load_stream<'conn, 'query, U>(
self,
conn: &'conn mut Conn,
) -> Self::LoadFuture<'conn>where
Conn: AsyncConnectionCore,
U: 'conn,
Self: LoadQuery<'query, Conn, U> + 'query,
Stream] with the returned rows. Read more§fn get_result<'query, 'conn, U>(
self,
conn: &'conn mut Conn,
) -> AndThen<Self::LoadFuture<'conn>, LoadNext<Pin<Box<Self::Stream<'conn>>>>>where
U: Send + 'conn,
Conn: AsyncConnectionCore,
Self: LoadQuery<'query, Conn, U> + 'query,
fn get_result<'query, 'conn, U>(
self,
conn: &'conn mut Conn,
) -> AndThen<Self::LoadFuture<'conn>, LoadNext<Pin<Box<Self::Stream<'conn>>>>>where
U: Send + 'conn,
Conn: AsyncConnectionCore,
Self: LoadQuery<'query, Conn, U> + 'query,
§fn get_results<'query, 'conn, U>(
self,
conn: &'conn mut Conn,
) -> AndThen<Self::LoadFuture<'conn>, TryCollect<Self::Stream<'conn>, Vec<U>>>where
U: Send,
Conn: AsyncConnectionCore,
Self: LoadQuery<'query, Conn, U> + 'query,
fn get_results<'query, 'conn, U>(
self,
conn: &'conn mut Conn,
) -> AndThen<Self::LoadFuture<'conn>, TryCollect<Self::Stream<'conn>, Vec<U>>>where
U: Send,
Conn: AsyncConnectionCore,
Self: LoadQuery<'query, Conn, U> + 'query,
Vec with the affected rows. Read more§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B> of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B> of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R> view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R> view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow() only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut() only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref() only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut() only in debug builds, and is erased in release
builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref() only in debug builds, and is erased in release
builds.