Skip to main content

postgres_static_analyzer_reflect_queries/client/
async_.rs

1// This file was generated with `clorinde`. Do not modify.
2
3pub use generic_client::GenericClient;
4#[cfg(feature = "deadpool")]
5mod deadpool;
6mod generic_client;
7use tokio_postgres::{
8    Error, Row, RowStream, Statement,
9    types::{BorrowToSql, ToSql},
10};
11/// This trait allows you to bind parameters to a query using a single
12/// struct, rather than passing each bind parameter as a function parameter.
13pub trait Params<'c, 'a, 's, P, O, C> {
14    fn params(&'s self, client: &'c C, params: &'a P) -> O;
15}
16pub async fn one<C: GenericClient>(
17    client: &C,
18    query: &str,
19    params: &[&(dyn ToSql + Sync)],
20    cached: Option<&Statement>,
21) -> Result<Row, Error> {
22    if let Some(cached) = cached {
23        client.query_one(cached, params).await
24    } else if C::stmt_cache() {
25        let cached = client.prepare(query).await?;
26        client.query_one(&cached, params).await
27    } else {
28        client.query_one(query, params).await
29    }
30}
31pub async fn opt<C: GenericClient>(
32    client: &C,
33    query: &str,
34    params: &[&(dyn ToSql + Sync)],
35    cached: Option<&Statement>,
36) -> Result<Option<Row>, Error> {
37    if let Some(cached) = cached {
38        client.query_opt(cached, params).await
39    } else if C::stmt_cache() {
40        let cached = client.prepare(query).await?;
41        client.query_opt(&cached, params).await
42    } else {
43        client.query_opt(query, params).await
44    }
45}
46pub async fn raw<C: GenericClient, P, I>(
47    client: &C,
48    query: &str,
49    params: I,
50    cached: Option<&Statement>,
51) -> Result<RowStream, Error>
52where
53    P: BorrowToSql,
54    I: IntoIterator<Item = P> + Sync + Send,
55    I::IntoIter: ExactSizeIterator,
56{
57    if let Some(cached) = cached {
58        client.query_raw(cached, params).await
59    } else if C::stmt_cache() {
60        let cached = client.prepare(query).await?;
61        client.query_raw(&cached, params).await
62    } else {
63        client.query_raw(query, params).await
64    }
65}