sqlx_askama_template/
lib.rs1#![doc = include_str!("../README.md")]
2
3use sqlx_core::{Error, database::Database};
4mod v3;
5pub use askama;
6pub use sqlx_askama_template_macro::*;
7pub use v3::*;
8
9pub trait SqlTemplate<'q, DB>: Sized
13where
14 DB: Database,
15{
16 fn render_sql_with_encode_placeholder_fn(
17 self,
18 f: Option<fn(usize, &mut String)>,
19 sql_buffer: &mut String,
20 ) -> Result<Option<DB::Arguments<'q>>, Error>;
21 fn render_sql(self) -> Result<(String, Option<DB::Arguments<'q>>), Error> {
23 let mut sql_buff = String::new();
24 let arg = self.render_sql_with_encode_placeholder_fn(None, &mut sql_buff)?;
25 Ok((sql_buff, arg))
26 }
27
28 fn render_execute_able(
30 self,
31 sql_buffer: &'q mut String,
32 ) -> Result<SqlTemplateExecute<'q, DB>, Error> {
33 let (sql, arguments) = self.render_sql()?;
34 *sql_buffer = sql;
35 Ok(SqlTemplateExecute {
36 sql: sql_buffer,
37
38 arguments,
39
40 persistent: true,
41 })
42 }
43 fn render_db_adapter_manager(self, sql_buff: &'q mut String) -> DBAdapterManager<'q, DB, Self> {
44 DBAdapterManager::new(self, sql_buff)
45 }
46}