pub struct CachedSql<F>{ /* private fields */ }Expand description
A cached lazy SQL that stores previously generated SQL for each database type.
This combines lazy generation with caching, so SQL is only generated once per database type, then reused for subsequent calls.
§Example
use prax_query::sql::{CachedSql, DatabaseType};
let cached = CachedSql::new(|db_type| {
format!("SELECT * FROM users WHERE active = {}", db_type.placeholder(1))
});
// First call generates and caches
let sql1 = cached.get(DatabaseType::PostgreSQL);
// Second call returns cached value (no regeneration)
let sql2 = cached.get(DatabaseType::PostgreSQL);
assert_eq!(sql1, sql2);Implementations§
Auto Trait Implementations§
impl<F> !Freeze for CachedSql<F>
impl<F> RefUnwindSafe for CachedSql<F>where
F: RefUnwindSafe,
impl<F> Send for CachedSql<F>where
F: Send,
impl<F> Sync for CachedSql<F>where
F: Sync,
impl<F> Unpin for CachedSql<F>where
F: Unpin,
impl<F> UnwindSafe for CachedSql<F>where
F: UnwindSafe,
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
Mutably borrows from an owned value. Read more