pub struct ConnectionPool {
pub db_path: PathBuf,
pub max_connections: usize,
/* private fields */
}Expand description
Connection pool for database connections.
The pool limits the number of concurrent connections using a semaphore permit system.
§Examples
use forgekit_core::pool::ConnectionPool;
let pool = ConnectionPool::new("/path/to/db.sqlite", 10);
// Acquire a connection
let _permit = pool.acquire().await?;
// Use connection hereFields§
§db_path: PathBufPath to the database file.
max_connections: usizeMaximum number of connections.
Implementations§
Source§impl ConnectionPool
impl ConnectionPool
Sourcepub async fn acquire(&self) -> Result<ConnectionPermit>
pub async fn acquire(&self) -> Result<ConnectionPermit>
Sourcepub fn available_connections(&self) -> usize
pub fn available_connections(&self) -> usize
Returns the current number of available connections.
§Examples
let available = pool.available_connections();
println!("Available connections: {}", available);Sourcepub async fn try_acquire(&self) -> Option<ConnectionPermit>
pub async fn try_acquire(&self) -> Option<ConnectionPermit>
Trait Implementations§
Source§impl Clone for ConnectionPool
impl Clone for ConnectionPool
Source§fn clone(&self) -> ConnectionPool
fn clone(&self) -> ConnectionPool
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl !RefUnwindSafe for ConnectionPool
impl !UnwindSafe for ConnectionPool
impl Freeze for ConnectionPool
impl Send for ConnectionPool
impl Sync for ConnectionPool
impl Unpin for ConnectionPool
impl UnsafeUnpin for ConnectionPool
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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>
Converts
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>
Converts
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 more