Struct diesel::connection::statement_cache::StatementCache

source ·
pub struct StatementCache<DB: Backend, Statement> { /* private fields */ }
Available on crate feature i-implement-a-third-party-backend-and-opt-into-breaking-changes only.
Expand description

A prepared statement cache

Implementations§

source§

impl<DB, Statement> StatementCache<DB, Statement>
where DB: Backend + 'static, Statement: 'static, DB::TypeMetadata: Clone, DB::QueryBuilder: Default, StatementCacheKey<DB>: Hash + Eq,

source

pub fn new() -> Self

Create a new prepared statement cache using CacheSize::Unbounded as caching strategy.

source

pub fn set_cache_size(&mut self, size: CacheSize)

Set caching strategy from predefined implementations

source

pub fn cached_statement<T, F>( &mut self, source: &T, backend: &DB, bind_types: &[DB::TypeMetadata], prepare_fn: F, instrumentation: &mut dyn Instrumentation, ) -> QueryResult<MaybeCached<'_, Statement>>
where T: QueryFragment<DB> + QueryId, F: FnMut(&str, PrepareForCache) -> QueryResult<Statement>,

Prepare a query as prepared statement

This functions returns a prepared statement corresponding to the query passed as source with the bind values passed as bind_types. If the query is already cached inside this prepared statement cache the cached prepared statement will be returned, otherwise prepare_fn will be called to create a new prepared statement for this query source. The first parameter of the callback contains the query string, the second parameter indicates if the constructed prepared statement will be cached or not. See the module documentation for details about which statements are cached and which are not cached.

Auto Trait Implementations§

§

impl<DB, Statement> Freeze for StatementCache<DB, Statement>

§

impl<DB, Statement> !RefUnwindSafe for StatementCache<DB, Statement>

§

impl<DB, Statement> !Send for StatementCache<DB, Statement>

§

impl<DB, Statement> !Sync for StatementCache<DB, Statement>

§

impl<DB, Statement> Unpin for StatementCache<DB, Statement>

§

impl<DB, Statement> !UnwindSafe for StatementCache<DB, Statement>

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> Downcast for T
where T: Any,

source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
source§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
source§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
source§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> IntoSql for T

source§

fn into_sql<T>(self) -> AsExprOf<Self, T>

Convert self to an expression for Diesel’s query builder. Read more
source§

fn as_sql<'a, T>(&'a self) -> AsExprOf<&'a Self, T>
where &'a Self: AsExpression<T>, T: SqlType + TypedExpressionType,

Convert &self to an expression for Diesel’s query builder. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

source§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

source§

fn vzip(self) -> V