Skip to main content

InstanceCache

Struct InstanceCache 

Source
pub struct InstanceCache { /* private fields */ }
Expand description

An owned duckdb_instance_cache (destroyed once on drop).

Deliberately !Send + !Sync: DuckDB gives no concurrency guarantee for a shared instance cache, so a handle must stay on the thread that created it.

Implementations§

Source§

impl InstanceCache

Source

pub fn new() -> InstanceCache

Creates a new, empty instance cache.

Source

pub fn get_or_create<P: AsRef<Path>>( &self, path: P, config: Config, ) -> Result<Database>

Opens the database at path through this cache: if a database for path already exists in the cache it is returned (sharing the same instance), otherwise a new one is created and cached. :memory: and an empty path both mean an in-memory database.

The returned Database closes independently; the cache keeps its own reference until dropped.

§Errors

Returns an error if the path contains an interior NUL or DuckDB fails to open the database (its error message is surfaced).

Trait Implementations§

Source§

impl Default for InstanceCache

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl Drop for InstanceCache

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

fn pin_drop(self: Pin<&mut Self>)

🔬This is a nightly-only experimental API. (pin_ergonomics)
Execute the destructor for this type, but different to Drop::drop, it requires self to be pinned. Read more

Auto Trait Implementations§

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> 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, 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.