tag2upload_service_manager/
bsql.rs

1//! Support for db fragments with bound variables
2
3use std::any::Any;
4use std::fmt::{self, Debug, Display, Write as _};
5use std::iter;
6use std::ops::Add;
7use std::str;
8use std::time::Duration;
9
10use anyhow::anyhow;
11use derive_deftly::define_derive_deftly;
12use derive_more::{Deref, DerefMut};
13use easy_ext::ext;
14use itertools::{chain, izip, Itertools as _};
15use paste::paste;
16use rusqlite::{OptionalExtension as _};
17use serde::Deserialize;
18use thiserror::Error;
19use tracing::{debug, error, trace};
20use void::Void;
21
22use anyhow::Error as AE;
23
24use crate::prelude::InternalError;
25use crate::error::IntoInternalResult;
26use InternalError as IE;
27
28#[macro_use]
29mod bsql_anyerror;
30#[macro_use]
31mod bsql_builder;
32#[macro_use]
33mod bsql_rows;
34#[macro_use]
35mod bsql_queries;
36#[macro_use]
37mod bsql_types;
38
39pub mod bsql_coverage;
40
41mod bsql_error;
42mod bsql_transaction;
43
44pub use bsql_anyerror::*;
45pub use bsql_builder::*;
46pub use bsql_error::*;
47pub use bsql_rows::*;
48pub use bsql_queries::*;
49pub use bsql_transaction::*;
50pub use bsql_types::*;
51
52pub type RowId = i64;
53
54#[doc(hidden)]
55pub mod macro_prelude {
56    pub extern crate rusqlite;
57    pub use rusqlite::types::{FromSql, FromSqlError, FromSqlResult, ValueRef};
58    pub use rusqlite::types::{ToSql, ToSqlOutput};
59    extern crate linkme;
60    pub use linkme::distributed_slice;
61    pub use super::*;
62    pub use bsql_coverage::*;
63}
64use macro_prelude::*;
65
66#[cfg(test)]
67mod bsql_test;