pub struct ConnectionPool(/* private fields */);Expand description
Access to the builder’s DB connection pool and DB-access-related methods.
The handle is safe to clone and share between threads.
Implementations§
Source§impl ConnectionPool
impl ConnectionPool
Sourcepub fn new(conf: &Config) -> Result<Self>
pub fn new(conf: &Config) -> Result<Self>
Create the connection pool from the given configuration.
Sourcepub fn with_tables(conf: &Config) -> Result<Self>
pub fn with_tables(conf: &Config) -> Result<Self>
Create the connection pool from the given configuration and ensure the DB tables have been created if they do not already exist before returning.
Sourcepub async fn acquire(&self) -> Result<ConnectionHandle, AcquireError>
pub async fn acquire(&self) -> Result<ConnectionHandle, AcquireError>
Acquire a temporary database ConnectionHandle from the inner pool.
In the case that all connections are busy, waits for the first available connection.
Sourcepub fn try_acquire(&self) -> Result<ConnectionHandle, TryAcquireError>
pub fn try_acquire(&self) -> Result<ConnectionHandle, TryAcquireError>
Attempt to synchronously acquire a temporary database ConnectionHandle
from the inner pool.
Returns Err in the case that all database connections are busy or if
the builder has been closed.
Sourcepub fn close(&self) -> Result<(), ConnectionCloseErrors>
pub fn close(&self) -> Result<(), ConnectionCloseErrors>
Close a connection pool, returning a ConnectionCloseErrors in the case of any errors.
Source§impl ConnectionPool
Short-hand methods for async DB access.
impl ConnectionPool
Short-hand methods for async DB access.
Sourcepub async fn acquire_then<F, T, E>(
&self,
f: F,
) -> Result<T, AcquireThenError<E>>
pub async fn acquire_then<F, T, E>( &self, f: F, ) -> Result<T, AcquireThenError<E>>
Asynchronous access to the builder’s DB via the given function.
Requests and awaits a connection from the connection pool, then spawns a blocking task for the given function providing access to the connection handle.
Sourcepub async fn create_tables(&self) -> Result<(), AcquireThenRusqliteError>
pub async fn create_tables(&self) -> Result<(), AcquireThenRusqliteError>
Acquire a connection and call crate::create_tables.
Sourcepub async fn insert_solution_set_submission(
&self,
solution_set: Arc<SolutionSet>,
timestamp: Duration,
) -> Result<ContentAddress, AcquireThenRusqliteError>
pub async fn insert_solution_set_submission( &self, solution_set: Arc<SolutionSet>, timestamp: Duration, ) -> Result<ContentAddress, AcquireThenRusqliteError>
Acquire a connection and call crate::insert_solution_set_submission.
Sourcepub async fn insert_solution_set_failure(
&self,
solution_set_ca: ContentAddress,
failure: SolutionSetFailure<'static>,
) -> Result<(), AcquireThenRusqliteError>
pub async fn insert_solution_set_failure( &self, solution_set_ca: ContentAddress, failure: SolutionSetFailure<'static>, ) -> Result<(), AcquireThenRusqliteError>
Acquire a connection and call crate::insert_solution_set_failure.
Sourcepub async fn get_solution_set(
&self,
ca: ContentAddress,
) -> Result<Option<SolutionSet>, AcquireThenQueryError>
pub async fn get_solution_set( &self, ca: ContentAddress, ) -> Result<Option<SolutionSet>, AcquireThenQueryError>
Acquire a connection and call crate::get_solution_set.
Sourcepub async fn list_solution_sets(
&self,
time_range: Range<Duration>,
limit: i64,
) -> Result<Vec<(ContentAddress, SolutionSet, Duration)>, AcquireThenQueryError>
pub async fn list_solution_sets( &self, time_range: Range<Duration>, limit: i64, ) -> Result<Vec<(ContentAddress, SolutionSet, Duration)>, AcquireThenQueryError>
Acquire a connection and call crate::list_solution_sets.
Sourcepub async fn list_submissions(
&self,
time_range: Range<Duration>,
limit: i64,
) -> Result<Vec<(ContentAddress, Duration)>, AcquireThenRusqliteError>
pub async fn list_submissions( &self, time_range: Range<Duration>, limit: i64, ) -> Result<Vec<(ContentAddress, Duration)>, AcquireThenRusqliteError>
Acquire a connection and call crate::list_submissions.
Sourcepub async fn latest_solution_set_failures(
&self,
solution_set_ca: ContentAddress,
limit: u32,
) -> Result<Vec<SolutionSetFailure<'static>>, AcquireThenRusqliteError>
pub async fn latest_solution_set_failures( &self, solution_set_ca: ContentAddress, limit: u32, ) -> Result<Vec<SolutionSetFailure<'static>>, AcquireThenRusqliteError>
Acquire a connection and call crate::latest_solution_set_failures.
Sourcepub async fn list_solution_set_failures(
&self,
offset: u32,
limit: u32,
) -> Result<Vec<SolutionSetFailure<'static>>, AcquireThenRusqliteError>
pub async fn list_solution_set_failures( &self, offset: u32, limit: u32, ) -> Result<Vec<SolutionSetFailure<'static>>, AcquireThenRusqliteError>
Acquire a connection and call crate::list_solution_set_failures.
Sourcepub async fn delete_solution_set(
&self,
ca: ContentAddress,
) -> Result<(), AcquireThenRusqliteError>
pub async fn delete_solution_set( &self, ca: ContentAddress, ) -> Result<(), AcquireThenRusqliteError>
Acquire a connection and call crate::delete_solution_set.
Sourcepub async fn delete_solution_sets(
&self,
cas: impl 'static + IntoIterator<Item = ContentAddress> + Send,
) -> Result<(), AcquireThenRusqliteError>
pub async fn delete_solution_sets( &self, cas: impl 'static + IntoIterator<Item = ContentAddress> + Send, ) -> Result<(), AcquireThenRusqliteError>
Delete the given set of solution sets in a single transaction.
Sourcepub async fn delete_oldest_solution_set_failures(
&self,
keep_limit: u32,
) -> Result<(), AcquireThenRusqliteError>
pub async fn delete_oldest_solution_set_failures( &self, keep_limit: u32, ) -> Result<(), AcquireThenRusqliteError>
Acquire a connection and call crate::delete_oldest_solution_set_failures.
Trait Implementations§
Source§impl Clone for ConnectionPool
impl Clone for ConnectionPool
Source§fn clone(&self) -> ConnectionPool
fn clone(&self) -> ConnectionPool
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more