rust_ef_sqlite/
di_extension.rs1use rust_ef::provider::IDatabaseProvider;
2use std::sync::Arc;
3
4pub trait DbContextOptionsBuilderExt {
5 fn use_sqlite(&mut self, connection_string: &str) -> &mut Self;
6 fn use_sqlite_in_memory(&mut self) -> &mut Self;
7}
8
9impl DbContextOptionsBuilderExt for rust_ef::db_context::DbContextOptionsBuilder {
10 fn use_sqlite(&mut self, connection_string: &str) -> &mut Self {
11 let cs = connection_string.to_string();
12 self.set_provider_factory(
13 "sqlite",
14 &cs,
15 Arc::new(move |cs: &str| {
16 Ok(Arc::new(crate::provider::SqliteProvider::new(cs)?)
17 as Arc<dyn IDatabaseProvider>)
18 }),
19 )
20 }
21
22 fn use_sqlite_in_memory(&mut self) -> &mut Self {
23 self.set_provider_factory(
24 "sqlite",
25 ":memory:",
26 Arc::new(|_cs: &str| {
27 Ok(Arc::new(crate::provider::SqliteProvider::new_in_memory()?)
28 as Arc<dyn IDatabaseProvider>)
29 }),
30 )
31 }
32}