1use proc_macro2::TokenStream;
2use syn::DeriveInput;
3
4struct ConnectionVariant<'a> {
5 ty: &'a syn::Type,
6 name: &'a syn::Ident,
7}
8
9pub fn derive(item: DeriveInput) -> TokenStream {
10 let helper = MultiHelper::from_derive_input(&item);
11 if let syn::Data::Enum(e) = item.data {
12 let connection_types = e
13 .variants
14 .iter()
15 .map(|v| match &v.fields {
16 syn::Fields::Unnamed(f) if f.unnamed.len() == 1 => ConnectionVariant {
17 ty: &f.unnamed.first().unwrap().ty,
18 name: &v.ident,
19 },
20 _ => {
::core::panicking::panic_fmt(format_args!("Only enums with one field per variant are supported"));
}panic!("Only enums with one field per variant are supported"),
21 })
22 .collect::<Vec<_>>();
23 let backend = generate_backend(&connection_types, &helper);
24 let query_builder = generate_querybuilder(&connection_types, &helper);
25 let bind_collector = generate_bind_collector(&connection_types, &helper);
26 let row = generate_row(&connection_types, &helper);
27 let connection = generate_connection_impl(&connection_types, &item.ident, &helper);
28
29 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "mod");
::quote::__private::push_ident(&mut _s, "multi_connection_impl");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "use");
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_star(&mut _s);
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "mod");
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "use");
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_star(&mut _s);
::quote::__private::push_semi(&mut _s);
::quote::ToTokens::to_tokens(&backend, &mut _s);
_s
});
::quote::__private::push_ident(&mut _s, "mod");
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "use");
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_star(&mut _s);
::quote::__private::push_semi(&mut _s);
::quote::ToTokens::to_tokens(&query_builder, &mut _s);
_s
});
::quote::__private::push_ident(&mut _s, "mod");
::quote::__private::push_ident(&mut _s, "bind_collector");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "use");
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_star(&mut _s);
::quote::__private::push_semi(&mut _s);
::quote::ToTokens::to_tokens(&bind_collector, &mut _s);
_s
});
::quote::__private::push_ident(&mut _s, "mod");
::quote::__private::push_ident(&mut _s, "row");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "use");
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_star(&mut _s);
::quote::__private::push_semi(&mut _s);
::quote::ToTokens::to_tokens(&row, &mut _s);
_s
});
::quote::__private::push_ident(&mut _s, "mod");
::quote::__private::push_ident(&mut _s, "connection");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "use");
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_star(&mut _s);
::quote::__private::push_semi(&mut _s);
::quote::ToTokens::to_tokens(&connection, &mut _s);
_s
});
::quote::__private::push_ident(&mut _s, "pub");
::quote::__private::push_ident(&mut _s, "use");
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiRawValue");
_s
});
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "pub");
::quote::__private::push_ident(&mut _s, "use");
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "row");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "MultiRow");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiField");
_s
});
::quote::__private::push_semi(&mut _s);
_s
});
::quote::__private::push_ident(&mut _s, "pub");
::quote::__private::push_ident(&mut _s, "use");
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multi_connection_impl");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiRow");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiRawValue");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiField");
_s
});
::quote::__private::push_semi(&mut _s);
_s
}quote::quote! {
30 mod multi_connection_impl {
31 use super::*;
32
33 mod backend {
34 use super::*;
35 #backend
36 }
37
38 mod query_builder {
39 use super::*;
40 #query_builder
41 }
42
43 mod bind_collector {
44 use super::*;
45 #bind_collector
46 }
47
48 mod row {
49 use super::*;
50 #row
51 }
52
53 mod connection {
54 use super::*;
55 #connection
56 }
57
58 pub use self::backend::{MultiBackend, MultiRawValue};
59 pub use self::row::{MultiRow, MultiField};
60 }
61
62 pub use self::multi_connection_impl::{MultiBackend, MultiRow, MultiRawValue, MultiField};
63 }
64 } else {
65 {
::core::panicking::panic_fmt(format_args!("Only enums are supported as multiconnection type"));
};panic!("Only enums are supported as multiconnection type");
66 }
67}
68
69struct MultiHelper {
71 is_async: bool,
72 conn: TokenStream,
74 conn_backend: TokenStream,
76 conn_load: TokenStream,
78 multi_conn_helper: TokenStream,
80 simple_connection: TokenStream,
82 transaction_manager: TokenStream,
84 await_token: Option<TokenStream>,
86 async_token: Option<TokenStream>,
88}
89
90impl MultiHelper {
91 fn new(is_async: bool) -> Self {
92 let conn = if is_async {
93 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel_async");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "AsyncConnection");
_s
}quote::quote! { diesel_async::AsyncConnection }
94 } else {
95 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "connection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Connection");
_s
}quote::quote! { diesel::connection::Connection }
96 };
97
98 let conn_backend = if is_async {
99 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel_async");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "AsyncConnectionCore");
_s
}quote::quote! { diesel_async::AsyncConnectionCore }
100 } else {
101 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "connection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Connection");
_s
}quote::quote! { diesel::connection::Connection }
102 };
103
104 let conn_load = if is_async {
105 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel_async");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "AsyncConnectionCore");
_s
}quote::quote! { diesel_async::AsyncConnectionCore }
106 } else {
107 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "connection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "LoadConnection");
_s
}quote::quote! { diesel::connection::LoadConnection }
108 };
109
110 let multi_conn_helper = if is_async {
111 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel_async");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "AsyncMultiConnectionHelper");
_s
}quote::quote! { diesel_async::AsyncMultiConnectionHelper }
112 } else {
113 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "derives");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multiconnection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiConnectionHelper");
_s
}quote::quote! { diesel::internal::derives::multiconnection::MultiConnectionHelper }
114 };
115
116 let await_token = if is_async {
117 Some({
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "await");
_s
}quote::quote! { .await })
118 } else {
119 None
120 };
121
122 let async_token = if is_async {
123 Some({
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "async");
_s
}quote::quote! { async })
124 } else {
125 None
126 };
127
128 let simple_connection = if is_async {
129 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel_async");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "SimpleAsyncConnection");
_s
}quote::quote! { diesel_async::SimpleAsyncConnection }
130 } else {
131 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "connection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "SimpleConnection");
_s
}quote::quote! { diesel::connection::SimpleConnection }
132 };
133
134 let transaction_manager = if is_async {
135 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel_async");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "TransactionManager");
_s
}quote::quote! { diesel_async::TransactionManager }
136 } else {
137 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "connection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "TransactionManager");
_s
}quote::quote! { diesel::connection::TransactionManager }
138 };
139
140 Self {
141 is_async,
142 conn,
143 conn_load,
144 conn_backend,
145 multi_conn_helper,
146 await_token,
147 async_token,
148 simple_connection,
149 transaction_manager,
150 }
151 }
152
153 fn from_derive_input(item: &DeriveInput) -> MultiHelper {
154 let is_async = item
155 .attrs
156 .iter()
157 .any(|a| #[allow(non_exhaustive_omitted_patterns)] match &a.meta {
syn::Meta::Path(ident) if ident.is_ident("diesel_async") => true,
_ => false,
}matches!(&a.meta, syn::Meta::Path(ident) if ident.is_ident("diesel_async")));
158 Self::new(is_async)
159 }
160}
161
162fn generate_connection_impl(
163 connection_types: &[ConnectionVariant],
164 ident: &syn::Ident,
165 helper: &MultiHelper,
166) -> TokenStream {
167 let MultiHelper {
168 is_async,
169 conn,
170 conn_backend,
171 multi_conn_helper,
172 await_token,
173 async_token,
174 conn_load,
175 simple_connection,
176 transaction_manager,
177 ..
178 } = helper;
179 let is_async = *is_async;
180
181 let batch_execute_impl = connection_types.iter().map(|c| {
182 let ident = c.name;
183 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::ToTokens::to_tokens(&ident, &mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "conn");
_s
});
::quote::__private::push_fat_arrow(&mut _s);
::quote::__private::push_ident(&mut _s, "conn");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "batch_execute");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "query");
_s
});
::quote::ToTokens::to_tokens(&await_token, &mut _s);
_s
}quote::quote! {
184 Self::#ident(conn) => conn.batch_execute(query)#await_token
185 }
186 });
187
188 let conn_backend_impl = if is_async {
189 None
190 } else {
191 Some({
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "type");
::quote::__private::push_ident(&mut _s, "Backend");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_semi(&mut _s);
_s
}quote::quote! { type Backend = super::MultiBackend; })
192 };
193
194 let execute_returning_count_var = connection_types.iter().map(|c| {
195 let ident = c.name;
196 let ty = c.ty;
197 let ref_token = (!is_async).then_some({
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_and(&mut _s);
_s
}quote::quote! { & });
198 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::ToTokens::to_tokens(&ident, &mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "conn");
_s
});
::quote::__private::push_fat_arrow(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "let");
::quote::__private::push_ident(&mut _s, "query");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "SerializedQuery");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "inner");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "source");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_colon2(&mut _s);
::quote::ToTokens::to_tokens(&ident, &mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "Default");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "default");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
_s
});
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s,
"MultiQueryBuilder");
::quote::__private::push_colon2(&mut _s);
::quote::ToTokens::to_tokens(&ident, &mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "Default");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "default");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
_s
});
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "p");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "std");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "marker");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "PhantomData");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_lt(&mut _s);
::quote::ToTokens::to_tokens(&ty, &mut _s);
::quote::__private::push_gt(&mut _s);
::quote::__private::push_comma(&mut _s);
_s
});
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "conn");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s,
"execute_returning_count");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::ToTokens::to_tokens(&ref_token, &mut _s);
::quote::__private::push_ident(&mut _s, "query");
_s
});
_s
});
_s
}quote::quote! {
199 Self::#ident(conn) => {
200 let query = SerializedQuery {
201 inner: source,
202 backend: MultiBackend::#ident(Default::default()),
203 query_builder: super::query_builder::MultiQueryBuilder::#ident(Default::default()),
204 p: std::marker::PhantomData::<#ty>,
205 };
206 conn.execute_returning_count(#ref_token query)
207 }
208 }
209 }).collect::<Vec<_>>();
210
211 let impl_execute_returning_count_async = if is_async {
212 Some({
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "fn");
::quote::__private::push_ident(&mut _s, "execute_returning_count");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'conn");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'query");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "T");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_and(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'conn");
::quote::__private::push_ident(&mut _s, "mut");
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "source");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "T");
::quote::__private::push_comma(&mut _s);
_s
});
::quote::__private::push_rarrow(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "ExecuteFuture");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'conn");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'query");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "where");
::quote::__private::push_ident(&mut _s, "T");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryFragment");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Backend");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_add(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryId");
::quote::__private::push_add(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'query");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "match");
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
{
use ::quote::__private::ext::*;
let has_iter = ::quote::__private::HasIterator::<false>;
#[allow(unused_mut)]
let (mut execute_returning_count_var, i) =
execute_returning_count_var.quote_into_iter();
let has_iter = has_iter | i;
<_ as
::quote::__private::CheckHasIterator<true>>::check(has_iter);
while true {
let execute_returning_count_var =
match execute_returning_count_var.next() {
Some(_x) => ::quote::__private::RepInterp(_x),
None => break,
};
::quote::ToTokens::to_tokens(&execute_returning_count_var,
&mut _s);
::quote::__private::push_comma(&mut _s);
}
}
_s
});
_s
});
_s
}quote::quote! {
213 fn execute_returning_count<'conn, 'query, T>(
214 &'conn mut self,
215 source: T,
216 ) -> Self::ExecuteFuture<'conn, 'query>
217 where
218 T: diesel::query_builder::QueryFragment<Self::Backend> + diesel::query_builder::QueryId + 'query,
219 {
220 match self {
221 #(#execute_returning_count_var,)*
222 }
223 }
224 })
225 } else {
226 None
227 };
228 let inner_query = if is_async {
229 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "source");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "as_query");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
_s
}quote::quote!(source.as_query())
230 } else {
231 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "source");
_s
}quote::quote!(source)
232 };
233
234 let load_query = |ty, variant_ident| {
235 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "let");
::quote::__private::push_ident(&mut _s, "query");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "SerializedQuery");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "inner");
::quote::__private::push_colon(&mut _s);
::quote::ToTokens::to_tokens(&inner_query, &mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_colon2(&mut _s);
::quote::ToTokens::to_tokens(&variant_ident, &mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "Default");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "default");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
_s
});
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiQueryBuilder");
::quote::__private::push_colon2(&mut _s);
::quote::ToTokens::to_tokens(&variant_ident, &mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "Default");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "default");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
_s
});
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "p");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "std");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "marker");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "PhantomData");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_lt(&mut _s);
::quote::ToTokens::to_tokens(&ty, &mut _s);
::quote::__private::push_gt(&mut _s);
::quote::__private::push_comma(&mut _s);
_s
});
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "let");
::quote::__private::push_ident(&mut _s, "r");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_lt(&mut _s);
::quote::ToTokens::to_tokens(&ty, &mut _s);
::quote::__private::push_ident(&mut _s, "as");
::quote::ToTokens::to_tokens(&conn_load, &mut _s);
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "load");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "conn");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "query");
_s
});
::quote::ToTokens::to_tokens(&await_token, &mut _s);
::quote::__private::push_question(&mut _s);
::quote::__private::push_semi(&mut _s);
_s
}quote::quote! {
236 let query = SerializedQuery {
237 inner: #inner_query,
238 backend: MultiBackend::#variant_ident(Default::default()),
239 query_builder: super::query_builder::MultiQueryBuilder::#variant_ident(Default::default()),
240 p: std::marker::PhantomData::<#ty>,
241 };
242 let r = <#ty as #conn_load>::load(conn, query)#await_token?;
243 }
244 };
245
246 let impl_execute_returning_count = if is_async {
247 None
248 } else {
249 Some({
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "fn");
::quote::__private::push_ident(&mut _s, "execute_returning_count");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "T");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "mut");
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "source");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "T");
_s
});
::quote::__private::push_rarrow(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "result");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryResult");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "usize");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "where");
::quote::__private::push_ident(&mut _s, "T");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryFragment");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Backend");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_add(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryId");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "match");
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
{
use ::quote::__private::ext::*;
let has_iter = ::quote::__private::HasIterator::<false>;
#[allow(unused_mut)]
let (mut execute_returning_count_var, i) =
execute_returning_count_var.quote_into_iter();
let has_iter = has_iter | i;
<_ as
::quote::__private::CheckHasIterator<true>>::check(has_iter);
while true {
let execute_returning_count_var =
match execute_returning_count_var.next() {
Some(_x) => ::quote::__private::RepInterp(_x),
None => break,
};
::quote::ToTokens::to_tokens(&execute_returning_count_var,
&mut _s);
::quote::__private::push_comma(&mut _s);
}
}
_s
});
_s
});
_s
}quote::quote! {
250 fn execute_returning_count<T>(&mut self, source: &T) -> diesel::result::QueryResult<usize>
251 where
252 T: diesel::query_builder::QueryFragment<Self::Backend> + diesel::query_builder::QueryId,
253 {
254 match self {
255 #(#execute_returning_count_var,)*
256 }
257 }
258 })
259 };
260
261 let load_impl = if is_async {
262 let load_var_impl = connection_types.iter().map(|c| {
263 let variant_ident = c.name;
264 let ty = &c.ty;
265 let load_query = load_query(ty, variant_ident);
266 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::ToTokens::to_tokens(&variant_ident, &mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "conn");
_s
});
::quote::__private::push_fat_arrow(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::ToTokens::to_tokens(&load_query, &mut _s);
::quote::__private::push_ident(&mut _s, "Box");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "pin");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "async");
::quote::__private::push_ident(&mut _s, "move");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "Ok");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "Box");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "pin");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "futures_util");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "StreamExt");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "map");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "r");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_or(&mut _s);
::quote::__private::push_ident(&mut _s, "result");
::quote::__private::push_or(&mut _s);
::quote::__private::push_ident(&mut _s, "result");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "map");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "row");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiRow");
::quote::__private::push_colon2(&mut _s);
::quote::ToTokens::to_tokens(&variant_ident, &mut _s);
_s
});
_s
});
_s
});
::quote::__private::push_ident(&mut _s, "as");
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Stream");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'conn");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'query");
::quote::__private::push_gt(&mut _s);
_s
});
_s
});
_s
});
_s
});
_s
}quote::quote! {
267 Self::#variant_ident(conn) => {
268 #load_query
269 Box::pin(async move {
270 Ok(Box::pin(
271 futures_util::StreamExt::map(r, |result| result.map(super::row::MultiRow::#variant_ident))
272 ) as Self::Stream<'conn, 'query>)
273 })
274 }
275 }
276 });
277 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "impl");
::quote::ToTokens::to_tokens(&conn_load, &mut _s);
::quote::__private::push_ident(&mut _s, "for");
::quote::__private::push_ident(&mut _s, "MultiConnection");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "type");
::quote::__private::push_ident(&mut _s, "LoadFuture");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'conn");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'query");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "futures_util");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "future");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "BoxFuture");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'conn");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryResult");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Stream");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'conn");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'query");
::quote::__private::push_shr(&mut _s);
::quote::__private::push_gt(&mut _s);
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "type");
::quote::__private::push_ident(&mut _s, "ExecuteFuture");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'conn");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'query");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "futures_util");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "future");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "BoxFuture");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'conn");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryResult");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "usize");
::quote::__private::push_shr(&mut _s);
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "type");
::quote::__private::push_ident(&mut _s, "Stream");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'conn");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'query");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "futures_util");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "stream");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "BoxStream");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'conn");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryResult");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Row");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'conn");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'query");
::quote::__private::push_shr(&mut _s);
::quote::__private::push_gt(&mut _s);
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "type");
::quote::__private::push_ident(&mut _s, "Row");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'conn");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'query");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiRow");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'conn");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'query");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "type");
::quote::__private::push_ident(&mut _s, "Backend");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "fn");
::quote::__private::push_ident(&mut _s, "load");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'conn");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'query");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "T");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_and(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'conn");
::quote::__private::push_ident(&mut _s, "mut");
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "source");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "T");
::quote::__private::push_comma(&mut _s);
_s
});
::quote::__private::push_rarrow(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "LoadFuture");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'conn");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'query");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "where");
::quote::__private::push_ident(&mut _s, "T");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "AsQuery");
::quote::__private::push_add(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'query");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "T");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Query");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryFragment");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Backend");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_add(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryId");
::quote::__private::push_add(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'query");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "match");
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
{
use ::quote::__private::ext::*;
let has_iter = ::quote::__private::HasIterator::<false>;
#[allow(unused_mut)]
let (mut load_var_impl, i) =
load_var_impl.quote_into_iter();
let has_iter = has_iter | i;
<_ as
::quote::__private::CheckHasIterator<true>>::check(has_iter);
while true {
let load_var_impl =
match load_var_impl.next() {
Some(_x) => ::quote::__private::RepInterp(_x),
None => break,
};
::quote::ToTokens::to_tokens(&load_var_impl, &mut _s);
::quote::__private::push_comma(&mut _s);
}
}
_s
});
_s
});
::quote::ToTokens::to_tokens(&impl_execute_returning_count_async,
&mut _s);
_s
});
_s
}quote::quote! {
278 impl #conn_load for MultiConnection {
279 type LoadFuture<'conn, 'query> = futures_util::future::BoxFuture<'conn, diesel::QueryResult<Self::Stream<'conn, 'query>>>;
280 type ExecuteFuture<'conn, 'query> = futures_util::future::BoxFuture<'conn, diesel::QueryResult<usize>>;
281 type Stream<'conn, 'query> = futures_util::stream::BoxStream<'conn, diesel::QueryResult<Self::Row<'conn, 'query>>>;
282 type Row<'conn, 'query> = super::MultiRow<'conn, 'query>;
283
284 type Backend = super::MultiBackend;
285
286 fn load<'conn, 'query, T>(
287 &'conn mut self,
288 source: T,
289 ) -> Self::LoadFuture<'conn, 'query>
290 where
291 T: diesel::query_builder::AsQuery + 'query,
292 T::Query: diesel::query_builder::QueryFragment<Self::Backend> + diesel::query_builder::QueryId + 'query,
293 {
294 match self {
295 #(#load_var_impl,)*
296 }
297 }
298
299 #impl_execute_returning_count_async
300 }
301 }
302 } else {
303 let load_var_impl = connection_types.iter().map(|c| {
304 let variant_ident = c.name;
305 let ty = &c.ty;
306 let load_query = load_query(ty, variant_ident);
307 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::ToTokens::to_tokens(&variant_ident, &mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "conn");
_s
});
::quote::__private::push_fat_arrow(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::ToTokens::to_tokens(&load_query, &mut _s);
::quote::__private::push_ident(&mut _s, "Ok");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "row");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiCursor");
::quote::__private::push_colon2(&mut _s);
::quote::ToTokens::to_tokens(&variant_ident, &mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "r");
_s
});
_s
});
_s
});
_s
}quote::quote! {
308 Self::#variant_ident(conn) => {
309 #load_query
310 Ok(super::row::MultiCursor::#variant_ident(r))
311 }
312 }
313 });
314 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "impl");
::quote::ToTokens::to_tokens(&conn_load, &mut _s);
::quote::__private::push_ident(&mut _s, "for");
::quote::__private::push_ident(&mut _s, "MultiConnection");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "type");
::quote::__private::push_ident(&mut _s, "Cursor");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'conn");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'query");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "row");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiCursor");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'conn");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'query");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "type");
::quote::__private::push_ident(&mut _s, "Row");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'conn");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'query");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiRow");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'conn");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'query");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "fn");
::quote::__private::push_ident(&mut _s, "load");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'conn");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'query");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "T");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_and(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'conn");
::quote::__private::push_ident(&mut _s, "mut");
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "source");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "T");
::quote::__private::push_comma(&mut _s);
_s
});
::quote::__private::push_rarrow(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "result");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryResult");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Cursor");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'conn");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'query");
::quote::__private::push_shr(&mut _s);
::quote::__private::push_ident(&mut _s, "where");
::quote::__private::push_ident(&mut _s, "T");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Query");
::quote::__private::push_add(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryFragment");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Backend");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_add(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryId");
::quote::__private::push_add(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'query");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Backend");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "expression");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryMetadata");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "T");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "SqlType");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "match");
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
{
use ::quote::__private::ext::*;
let has_iter = ::quote::__private::HasIterator::<false>;
#[allow(unused_mut)]
let (mut load_var_impl, i) =
load_var_impl.quote_into_iter();
let has_iter = has_iter | i;
<_ as
::quote::__private::CheckHasIterator<true>>::check(has_iter);
while true {
let load_var_impl =
match load_var_impl.next() {
Some(_x) => ::quote::__private::RepInterp(_x),
None => break,
};
::quote::ToTokens::to_tokens(&load_var_impl, &mut _s);
::quote::__private::push_comma(&mut _s);
}
}
_s
});
_s
});
_s
});
_s
}quote::quote! {
315 impl #conn_load for MultiConnection
316 {
317 type Cursor<'conn, 'query> = super::row::MultiCursor<'conn, 'query>;
318 type Row<'conn, 'query> = super::MultiRow<'conn, 'query>;
319
320 fn load<'conn, 'query, T>(
321 &'conn mut self,
322 source: T,
323 ) -> diesel::result::QueryResult<Self::Cursor<'conn, 'query>>
324 where
325 T: diesel::query_builder::Query + diesel::query_builder::QueryFragment<Self::Backend> + diesel::query_builder::QueryId + 'query,
326 Self::Backend: diesel::expression::QueryMetadata<T::SqlType>,
327 {
328 match self {
329 #(#load_var_impl,)*
330 }
331 }
332 }
333 }
334 };
335
336 let instrumentation_impl = connection_types.iter().map(|c| {
337 let variant_ident = c.name;
338 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::ToTokens::to_tokens(&variant_ident, &mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "conn");
_s
});
::quote::__private::push_fat_arrow(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::ToTokens::to_tokens(&conn, &mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "set_instrumentation");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "conn");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "instrumentation");
_s
});
::quote::__private::push_semi(&mut _s);
_s
});
_s
}quote::quote! {
339 Self::#variant_ident(conn) => {
340 #conn::set_instrumentation(conn, instrumentation);
341 }
342 }
343 });
344
345 let set_cache_impl = connection_types.iter().map(|c| {
346 let variant_ident = c.name;
347 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::ToTokens::to_tokens(&variant_ident, &mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "conn");
_s
});
::quote::__private::push_fat_arrow(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::ToTokens::to_tokens(&conn, &mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s,
"set_prepared_statement_cache_size");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "conn");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "size");
_s
});
::quote::__private::push_semi(&mut _s);
_s
});
_s
}quote::quote! {
348 Self::#variant_ident(conn) => {
349 #conn::set_prepared_statement_cache_size(conn, size);
350 }
351 }
352 });
353
354 let get_instrumentation_impl = connection_types.iter().map(|c| {
355 let variant_ident = c.name;
356 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::ToTokens::to_tokens(&variant_ident, &mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "conn");
_s
});
::quote::__private::push_fat_arrow(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::ToTokens::to_tokens(&conn, &mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "instrumentation");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "conn");
_s
});
_s
});
_s
}quote::quote! {
357 Self::#variant_ident(conn) => {
358 #conn::instrumentation(conn)
359 }
360 }
361 });
362
363 let establish_impls = connection_types.iter().map(|c| {
364 let ident = c.name;
365 let ty = c.ty;
366 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "if");
::quote::__private::push_ident(&mut _s, "let");
::quote::__private::push_ident(&mut _s, "Ok");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "conn");
_s
});
::quote::__private::push_eq(&mut _s);
::quote::ToTokens::to_tokens(&ty, &mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "establish");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "database_url");
_s
});
::quote::ToTokens::to_tokens(&await_token, &mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "return");
::quote::__private::push_ident(&mut _s, "Ok");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::ToTokens::to_tokens(&ident, &mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "conn");
_s
});
_s
});
::quote::__private::push_semi(&mut _s);
_s
});
_s
}quote::quote! {
367 if let Ok(conn) = #ty::establish(database_url)#await_token {
368 return Ok(Self::#ident(conn));
369 }
370 }
371 });
372
373 let begin_transaction_impl = connection_types.iter().map(|c| {
374 let ident = c.name;
375 let ty = c.ty;
376 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::ToTokens::to_tokens(&ident, &mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "conn");
_s
});
::quote::__private::push_fat_arrow(&mut _s);
::quote::__private::push_lt(&mut _s);
::quote::ToTokens::to_tokens(&ty, &mut _s);
::quote::__private::push_ident(&mut _s, "as");
::quote::ToTokens::to_tokens(&conn, &mut _s);
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "TransactionManager");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "begin_transaction");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "conn");
_s
});
::quote::ToTokens::to_tokens(&await_token, &mut _s);
_s
}quote::quote! {
377 Self::#ident(conn) => <#ty as #conn>::TransactionManager::begin_transaction(conn)#await_token
378 }
379 });
380
381 let commit_transaction_impl = connection_types.iter().map(|c| {
382 let ident = c.name;
383 let ty = c.ty;
384 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::ToTokens::to_tokens(&ident, &mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "conn");
_s
});
::quote::__private::push_fat_arrow(&mut _s);
::quote::__private::push_lt(&mut _s);
::quote::ToTokens::to_tokens(&ty, &mut _s);
::quote::__private::push_ident(&mut _s, "as");
::quote::ToTokens::to_tokens(&conn, &mut _s);
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "TransactionManager");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "commit_transaction");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "conn");
_s
});
::quote::ToTokens::to_tokens(&await_token, &mut _s);
_s
}quote::quote! {
385 Self::#ident(conn) => <#ty as #conn>::TransactionManager::commit_transaction(conn)#await_token
386 }
387 });
388
389 let rollback_transaction_impl = connection_types.iter().map(|c| {
390 let ident = c.name;
391 let ty = c.ty;
392 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::ToTokens::to_tokens(&ident, &mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "conn");
_s
});
::quote::__private::push_fat_arrow(&mut _s);
::quote::__private::push_lt(&mut _s);
::quote::ToTokens::to_tokens(&ty, &mut _s);
::quote::__private::push_ident(&mut _s, "as");
::quote::ToTokens::to_tokens(&conn, &mut _s);
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "TransactionManager");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "rollback_transaction");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "conn");
_s
});
::quote::ToTokens::to_tokens(&await_token, &mut _s);
_s
}quote::quote! {
393 Self::#ident(conn) => <#ty as #conn>::TransactionManager::rollback_transaction(conn)#await_token
394 }
395 });
396
397 let is_broken_transaction_manager_impl = connection_types.iter().map(|c| {
398 let ident = c.name;
399 let ty = c.ty;
400 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::ToTokens::to_tokens(&ident, &mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "conn");
_s
});
::quote::__private::push_fat_arrow(&mut _s);
::quote::__private::push_lt(&mut _s);
::quote::ToTokens::to_tokens(&ty, &mut _s);
::quote::__private::push_ident(&mut _s, "as");
::quote::ToTokens::to_tokens(&conn, &mut _s);
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "TransactionManager");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "is_broken_transaction_manager");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "conn");
_s
});
_s
}quote::quote! {
401 Self::#ident(conn) => <#ty as #conn>::TransactionManager::is_broken_transaction_manager(conn)
402 }
403 });
404
405 let transaction_manager_status_mut_impl = connection_types.iter().map(|c| {
406 let ident = c.name;
407 let ty = c.ty;
408 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::ToTokens::to_tokens(&ident, &mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "conn");
_s
});
::quote::__private::push_fat_arrow(&mut _s);
::quote::__private::push_lt(&mut _s);
::quote::ToTokens::to_tokens(&ty, &mut _s);
::quote::__private::push_ident(&mut _s, "as");
::quote::ToTokens::to_tokens(&conn, &mut _s);
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "TransactionManager");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "transaction_manager_status_mut");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "conn");
_s
});
_s
}quote::quote! {
409 Self::#ident(conn) => <#ty as #conn>::TransactionManager::transaction_manager_status_mut(conn)
410 }
411 });
412
413 let bind_param_helper_impl = connection_types.iter().map(|c| {
414 let ident = c.name;
415 let ty = c.ty;
416 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_ident(&mut _s, "BindParamHelper");
::quote::__private::push_ident(&mut _s, "for");
::quote::ToTokens::to_tokens(&ty, &mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "fn");
::quote::__private::push_ident(&mut _s, "handle_inner_pass");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'a");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'b");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'a");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "outer_collector");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "mut");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Backend");
::quote::__private::push_ident(&mut _s, "as");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Backend");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "BindCollector");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'a");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "lookup");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "mut");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Backend");
::quote::__private::push_ident(&mut _s, "as");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "sql_types");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "TypeMetadata");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MetadataLookup");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_and(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'b");
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "q");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_and(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'b");
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryFragment");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_comma(&mut _s);
_s
});
::quote::__private::push_rarrow(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryResult");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "use");
::quote::ToTokens::to_tokens(&multi_conn_helper, &mut _s);
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "let");
::quote::__private::push_ident(&mut _s, "mut");
::quote::__private::push_ident(&mut _s, "collector");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "bind_collector");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s,
"MultiBindCollector");
::quote::__private::push_colon2(&mut _s);
::quote::ToTokens::to_tokens(&ident, &mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "Default");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "default");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
_s
});
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "let");
::quote::__private::push_ident(&mut _s, "lookup");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "to_any");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "lookup");
_s
});
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "q");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "collect_binds");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "mut");
::quote::__private::push_ident(&mut _s, "collector");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "lookup");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
_s
});
::quote::__private::push_question(&mut _s);
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "if");
::quote::__private::push_ident(&mut _s, "let");
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "bind_collector");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s,
"MultiBindCollector");
::quote::__private::push_colon2(&mut _s);
::quote::ToTokens::to_tokens(&ident, &mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "collector");
_s
});
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "collector");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_star(&mut _s);
::quote::__private::push_ident(&mut _s, "outer_collector");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "collector");
::quote::__private::push_semi(&mut _s);
_s
});
::quote::__private::push_ident(&mut _s, "Ok");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
_s
});
_s
});
_s
});
_s
}quote::quote! {
417 impl BindParamHelper for #ty {
418 fn handle_inner_pass<'a, 'b: 'a>(
419 outer_collector: &mut <Self::Backend as diesel::backend::Backend>::BindCollector<'a>,
420 lookup: &mut <Self::Backend as diesel::sql_types::TypeMetadata>::MetadataLookup,
421 backend: &'b MultiBackend,
422 q: &'b impl diesel::query_builder::QueryFragment<MultiBackend>,
423 ) -> diesel::QueryResult<()> {
424 use #multi_conn_helper;
425
426 let mut collector = super::bind_collector::MultiBindCollector::#ident(Default::default());
427 let lookup = Self::to_any(lookup);
428 q.collect_binds(&mut collector, lookup, backend)?;
429 if let super::bind_collector::MultiBindCollector::#ident(collector) = collector {
430 *outer_collector = collector;
431 }
432 Ok(())
433 }
434 }
435 }
436 });
437
438 let migration_connection_impl = if is_async {
439 None
440 } else {
441 let impl_migration_connection_setup = connection_types.iter().map(|c| {
442 let ident = c.name;
443 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::ToTokens::to_tokens(&ident, &mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "conn");
_s
});
::quote::__private::push_fat_arrow(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "use");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "migration");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MigrationConnection");
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "conn");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "setup");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
_s
});
_s
}quote::quote! {
444 Self::#ident(conn) => {
445 use diesel::migration::MigrationConnection;
446 conn.setup()
447 }
448 }
449 });
450 let impl_migration_connection_read = connection_types.iter().map(|c| {
451 let ident = c.name;
452 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::ToTokens::to_tokens(&ident, &mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "conn");
_s
});
::quote::__private::push_fat_arrow(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "use");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "migration");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MigrationConnection");
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "conn");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "read_search_path");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
_s
});
_s
}quote::quote! {
453 Self::#ident(conn) => {
454 use diesel::migration::MigrationConnection;
455 conn.read_search_path()
456 }
457 }
458 });
459
460 let impl_migration_connection_set = connection_types.iter().map(|c| {
461 let ident = c.name;
462 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::ToTokens::to_tokens(&ident, &mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "conn");
_s
});
::quote::__private::push_fat_arrow(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "use");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "migration");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MigrationConnection");
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "conn");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "set_search_path");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "search_path");
_s
});
_s
});
_s
}quote::quote! {
463 Self::#ident(conn) => {
464 use diesel::migration::MigrationConnection;
465 conn.set_search_path(search_path)
466 }
467 }
468 });
469 Some({
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "migration");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MigrationConnection");
::quote::__private::push_ident(&mut _s, "for");
::quote::__private::push_ident(&mut _s, "MultiConnection");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "fn");
::quote::__private::push_ident(&mut _s, "setup");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "mut");
::quote::__private::push_ident(&mut _s, "self");
_s
});
::quote::__private::push_rarrow(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryResult");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "usize");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "match");
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
{
use ::quote::__private::ext::*;
let has_iter = ::quote::__private::HasIterator::<false>;
#[allow(unused_mut)]
let (mut impl_migration_connection_setup, i) =
impl_migration_connection_setup.quote_into_iter();
let has_iter = has_iter | i;
<_ as
::quote::__private::CheckHasIterator<true>>::check(has_iter);
while true {
let impl_migration_connection_setup =
match impl_migration_connection_setup.next() {
Some(_x) => ::quote::__private::RepInterp(_x),
None => break,
};
::quote::ToTokens::to_tokens(&impl_migration_connection_setup,
&mut _s);
::quote::__private::push_comma(&mut _s);
}
}
_s
});
_s
});
::quote::__private::push_ident(&mut _s, "fn");
::quote::__private::push_ident(&mut _s, "read_search_path");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "mut");
::quote::__private::push_ident(&mut _s, "self");
_s
});
::quote::__private::push_rarrow(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryResult");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "Option");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "String");
::quote::__private::push_shr(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "match");
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
{
use ::quote::__private::ext::*;
let has_iter = ::quote::__private::HasIterator::<false>;
#[allow(unused_mut)]
let (mut impl_migration_connection_read, i) =
impl_migration_connection_read.quote_into_iter();
let has_iter = has_iter | i;
<_ as
::quote::__private::CheckHasIterator<true>>::check(has_iter);
while true {
let impl_migration_connection_read =
match impl_migration_connection_read.next() {
Some(_x) => ::quote::__private::RepInterp(_x),
None => break,
};
::quote::ToTokens::to_tokens(&impl_migration_connection_read,
&mut _s);
::quote::__private::push_comma(&mut _s);
}
}
_s
});
_s
});
::quote::__private::push_ident(&mut _s, "fn");
::quote::__private::push_ident(&mut _s, "set_search_path");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "mut");
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "search_path");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "str");
_s
});
::quote::__private::push_rarrow(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryResult");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "match");
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
{
use ::quote::__private::ext::*;
let has_iter = ::quote::__private::HasIterator::<false>;
#[allow(unused_mut)]
let (mut impl_migration_connection_set, i) =
impl_migration_connection_set.quote_into_iter();
let has_iter = has_iter | i;
<_ as
::quote::__private::CheckHasIterator<true>>::check(has_iter);
while true {
let impl_migration_connection_set =
match impl_migration_connection_set.next() {
Some(_x) => ::quote::__private::RepInterp(_x),
None => break,
};
::quote::ToTokens::to_tokens(&impl_migration_connection_set,
&mut _s);
::quote::__private::push_comma(&mut _s);
}
}
_s
});
_s
});
_s
});
_s
}quote::quote! {
470 impl diesel::migration::MigrationConnection for MultiConnection {
471 fn setup(&mut self) -> diesel::QueryResult<usize> {
472 match self {
473 #(#impl_migration_connection_setup,)*
474 }
475 }
476 fn read_search_path(&mut self) -> diesel::QueryResult<Option<String>> {
477 match self {
478 #(#impl_migration_connection_read,)*
479 }
480 }
481
482 fn set_search_path(&mut self, search_path: &str) -> diesel::QueryResult<()> {
483 match self {
484 #(#impl_migration_connection_set,)*
485 }
486 }
487 }
488 })
489 };
490
491 let impl_begin_test_transaction = connection_types.iter().map(|c| {
492 let ident = c.name;
493 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::ToTokens::to_tokens(&ident, &mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "conn");
_s
});
::quote::__private::push_fat_arrow(&mut _s);
::quote::__private::push_ident(&mut _s, "conn");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "begin_test_transaction");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
::quote::ToTokens::to_tokens(&await_token, &mut _s);
_s
}quote::quote! {
494 Self::#ident(conn) => conn.begin_test_transaction()#await_token
495 }
496 });
497
498 let r2d2_impl = if is_async {
499 None
500 } else {
501 let impl_ping_r2d2 = connection_types.iter().map(|c| {
502 let ident = c.name;
503 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::ToTokens::to_tokens(&ident, &mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "conn");
_s
});
::quote::__private::push_fat_arrow(&mut _s);
::quote::__private::push_ident(&mut _s, "conn");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "ping");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
_s
}quote::quote! {
504 Self::#ident(conn) => conn.ping()
505 }
506 });
507
508 let impl_is_broken_r2d2 = connection_types.iter().map(|c| {
509 let ident = c.name;
510 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::ToTokens::to_tokens(&ident, &mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "conn");
_s
});
::quote::__private::push_fat_arrow(&mut _s);
::quote::__private::push_ident(&mut _s, "conn");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "is_broken");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
_s
}quote::quote! {
511 Self::#ident(conn) => conn.is_broken()
512 }
513 });
514 Some({
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "derives");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multiconnection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "expand_r2d2");
::quote::__private::push_bang(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "r2d2");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "R2D2Connection");
::quote::__private::push_ident(&mut _s, "for");
::quote::__private::push_ident(&mut _s, "MultiConnection");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "fn");
::quote::__private::push_ident(&mut _s, "ping");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "mut");
::quote::__private::push_ident(&mut _s, "self");
_s
});
::quote::__private::push_rarrow(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryResult");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "use");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "r2d2");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "R2D2Connection");
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "match");
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
{
use ::quote::__private::ext::*;
let has_iter = ::quote::__private::HasIterator::<false>;
#[allow(unused_mut)]
let (mut impl_ping_r2d2, i) =
impl_ping_r2d2.quote_into_iter();
let has_iter = has_iter | i;
<_ as
::quote::__private::CheckHasIterator<true>>::check(has_iter);
while true {
let impl_ping_r2d2 =
match impl_ping_r2d2.next() {
Some(_x) => ::quote::__private::RepInterp(_x),
None => break,
};
::quote::ToTokens::to_tokens(&impl_ping_r2d2, &mut _s);
::quote::__private::push_comma(&mut _s);
}
}
_s
});
_s
});
::quote::__private::push_ident(&mut _s, "fn");
::quote::__private::push_ident(&mut _s, "is_broken");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "mut");
::quote::__private::push_ident(&mut _s, "self");
_s
});
::quote::__private::push_rarrow(&mut _s);
::quote::__private::push_ident(&mut _s, "bool");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "use");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "r2d2");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "R2D2Connection");
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "match");
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
{
use ::quote::__private::ext::*;
let has_iter = ::quote::__private::HasIterator::<false>;
#[allow(unused_mut)]
let (mut impl_is_broken_r2d2, i) =
impl_is_broken_r2d2.quote_into_iter();
let has_iter = has_iter | i;
<_ as
::quote::__private::CheckHasIterator<true>>::check(has_iter);
while true {
let impl_is_broken_r2d2 =
match impl_is_broken_r2d2.next() {
Some(_x) => ::quote::__private::RepInterp(_x),
None => break,
};
::quote::ToTokens::to_tokens(&impl_is_broken_r2d2, &mut _s);
::quote::__private::push_comma(&mut _s);
}
}
_s
});
_s
});
_s
});
_s
});
_s
}quote::quote! {
515 diesel::internal::derives::multiconnection::expand_r2d2! {
516 impl diesel::r2d2::R2D2Connection for MultiConnection {
517 fn ping(&mut self) -> diesel::QueryResult<()> {
518 use diesel::r2d2::R2D2Connection;
519 match self {
520 #(#impl_ping_r2d2,)*
521 }
522 }
523
524 fn is_broken(&mut self) -> bool {
525 use diesel::r2d2::R2D2Connection;
526 match self {
527 #(#impl_is_broken_r2d2,)*
528 }
529 }
530 }
531 }
532 })
533 };
534
535 let simple_impls = if is_async {
536 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel_async");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "expand_pool");
::quote::__private::push_bang(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_ident(&mut _s, "diesel_async");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "pooled_connection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "PoolableConnection");
::quote::__private::push_ident(&mut _s, "for");
::quote::__private::push_ident(&mut _s, "MultiConnection");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
::quote::__private::TokenStream::new());
_s
});
_s
}quote::quote! { diesel_async::expand_pool! { impl diesel_async::pooled_connection::PoolableConnection for MultiConnection {} } }
537 } else {
538 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "derives");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multiconnection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "ConnectionSealed");
::quote::__private::push_ident(&mut _s, "for");
::quote::__private::push_ident(&mut _s, "MultiConnection");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
::quote::__private::TokenStream::new());
_s
}quote::quote! { impl diesel::internal::derives::multiconnection::ConnectionSealed for MultiConnection {} }
539 };
540
541 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "pub");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "super");
_s
});
::quote::__private::push_ident(&mut _s, "use");
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::ToTokens::to_tokens(&ident, &mut _s);
::quote::__private::push_ident(&mut _s, "as");
::quote::__private::push_ident(&mut _s, "MultiConnection");
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "impl");
::quote::ToTokens::to_tokens(&simple_connection, &mut _s);
::quote::__private::push_ident(&mut _s, "for");
::quote::__private::push_ident(&mut _s, "MultiConnection");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::ToTokens::to_tokens(&async_token, &mut _s);
::quote::__private::push_ident(&mut _s, "fn");
::quote::__private::push_ident(&mut _s, "batch_execute");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "mut");
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "query");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "str");
_s
});
::quote::__private::push_rarrow(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "result");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryResult");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "match");
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
{
use ::quote::__private::ext::*;
let has_iter = ::quote::__private::HasIterator::<false>;
#[allow(unused_mut)]
let (mut batch_execute_impl, i) =
batch_execute_impl.quote_into_iter();
let has_iter = has_iter | i;
<_ as
::quote::__private::CheckHasIterator<true>>::check(has_iter);
while true {
let batch_execute_impl =
match batch_execute_impl.next() {
Some(_x) => ::quote::__private::RepInterp(_x),
None => break,
};
::quote::ToTokens::to_tokens(&batch_execute_impl, &mut _s);
::quote::__private::push_comma(&mut _s);
}
}
_s
});
_s
});
_s
});
::quote::ToTokens::to_tokens(&simple_impls, &mut _s);
::quote::__private::push_ident(&mut _s, "struct");
::quote::__private::push_ident(&mut _s, "SerializedQuery");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "T");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "C");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "inner");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "T");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiQueryBuilder");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "p");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "std");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "marker");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "PhantomData");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "C");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_comma(&mut _s);
_s
});
::quote::__private::push_ident(&mut _s, "trait");
::quote::__private::push_ident(&mut _s, "BindParamHelper");
::quote::__private::push_colon(&mut _s);
::quote::ToTokens::to_tokens(&conn, &mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "fn");
::quote::__private::push_ident(&mut _s, "handle_inner_pass");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'a");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'b");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'a");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "collector");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "mut");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Backend");
::quote::__private::push_ident(&mut _s, "as");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Backend");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "BindCollector");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'a");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "lookup");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "mut");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Backend");
::quote::__private::push_ident(&mut _s, "as");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "sql_types");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "TypeMetadata");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MetadataLookup");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_and(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'b");
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "q");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_and(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'b");
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryFragment");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_comma(&mut _s);
_s
});
::quote::__private::push_rarrow(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryResult");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
::quote::__private::push_gt(&mut _s);
::quote::__private::push_semi(&mut _s);
_s
});
{
use ::quote::__private::ext::*;
let has_iter = ::quote::__private::HasIterator::<false>;
#[allow(unused_mut)]
let (mut bind_param_helper_impl, i) =
bind_param_helper_impl.quote_into_iter();
let has_iter = has_iter | i;
<_ as ::quote::__private::CheckHasIterator<true>>::check(has_iter);
while true {
let bind_param_helper_impl =
match bind_param_helper_impl.next() {
Some(_x) => ::quote::__private::RepInterp(_x),
None => break,
};
::quote::ToTokens::to_tokens(&bind_param_helper_impl, &mut _s);
}
}
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "T");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "DB");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "C");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryFragment");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "DB");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "for");
::quote::__private::push_ident(&mut _s, "SerializedQuery");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "T");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "C");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "where");
::quote::__private::push_ident(&mut _s, "DB");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Backend");
::quote::__private::push_add(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'static");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "T");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryFragment");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "C");
::quote::__private::push_colon(&mut _s);
::quote::ToTokens::to_tokens(&conn_backend, &mut _s);
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "Backend");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "DB");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_add(&mut _s);
::quote::__private::push_ident(&mut _s, "BindParamHelper");
::quote::__private::push_add(&mut _s);
::quote::ToTokens::to_tokens(&multi_conn_helper, &mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "fn");
::quote::__private::push_ident(&mut _s, "walk_ast");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'b");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_and(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'b");
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "mut");
::quote::__private::push_ident(&mut _s, "pass");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "AstPass");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'_");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'b");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "DB");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_comma(&mut _s);
_s
});
::quote::__private::push_rarrow(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryResult");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "use");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryBuilder");
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "use");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "derives");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multiconnection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "AstPassHelper");
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "let");
::quote::__private::push_ident(&mut _s, "mut");
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "duplicate");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "inner");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "to_sql");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "mut");
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
_s
});
::quote::__private::push_question(&mut _s);
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "pass");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "push_sql");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "finish");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
_s
});
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "if");
::quote::__private::push_bang(&mut _s);
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "inner");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s,
"is_safe_to_cache_prepared");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
_s
});
::quote::__private::push_question(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "pass");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s,
"unsafe_to_cache_prepared");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
::quote::__private::push_semi(&mut _s);
_s
});
::quote::__private::push_ident(&mut _s, "if");
::quote::__private::push_ident(&mut _s, "let");
::quote::__private::push_ident(&mut _s, "Some");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "outer_collector");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "lookup");
_s
});
_s
});
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "pass");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "bind_collector");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "C");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s,
"handle_inner_pass");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "outer_collector");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "lookup");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "inner");
_s
});
::quote::__private::push_question(&mut _s);
::quote::__private::push_semi(&mut _s);
_s
});
::quote::__private::push_ident(&mut _s, "if");
::quote::__private::push_ident(&mut _s, "let");
::quote::__private::push_ident(&mut _s, "Some");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "formatter");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "_backend");
_s
});
_s
});
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "pass");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "debug_binds");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "let");
::quote::__private::push_ident(&mut _s, "pass");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "AstPass");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s,
"collect_debug_binds_pass");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "formatter");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
_s
});
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "inner");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "walk_ast");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "pass");
_s
});
::quote::__private::push_question(&mut _s);
::quote::__private::push_semi(&mut _s);
_s
});
::quote::__private::push_ident(&mut _s, "Ok");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
_s
});
_s
});
_s
});
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "T");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "C");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryId");
::quote::__private::push_ident(&mut _s, "for");
::quote::__private::push_ident(&mut _s, "SerializedQuery");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "T");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "C");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "where");
::quote::__private::push_ident(&mut _s, "T");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryId");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "type");
::quote::__private::push_ident(&mut _s, "QueryId");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "T");
::quote::__private::push_ident(&mut _s, "as");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryId");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryId");
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "const");
::quote::__private::push_ident(&mut _s, "HAS_STATIC_QUERY_ID");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "bool");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "T");
::quote::__private::push_ident(&mut _s, "as");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryId");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "HAS_STATIC_QUERY_ID");
::quote::__private::push_semi(&mut _s);
_s
});
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "T");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "C");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Query");
::quote::__private::push_ident(&mut _s, "for");
::quote::__private::push_ident(&mut _s, "SerializedQuery");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "T");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "C");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "where");
::quote::__private::push_ident(&mut _s, "T");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Query");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "type");
::quote::__private::push_ident(&mut _s, "SqlType");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "sql_types");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Untyped");
::quote::__private::push_semi(&mut _s);
_s
});
::quote::__private::push_ident(&mut _s, "impl");
::quote::ToTokens::to_tokens(&conn, &mut _s);
::quote::__private::push_ident(&mut _s, "for");
::quote::__private::push_ident(&mut _s, "MultiConnection");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::ToTokens::to_tokens(&conn_backend_impl, &mut _s);
::quote::__private::push_ident(&mut _s, "type");
::quote::__private::push_ident(&mut _s, "TransactionManager");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_semi(&mut _s);
::quote::ToTokens::to_tokens(&async_token, &mut _s);
::quote::__private::push_ident(&mut _s, "fn");
::quote::__private::push_ident(&mut _s, "establish");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "database_url");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "str");
_s
});
::quote::__private::push_rarrow(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "ConnectionResult");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
{
use ::quote::__private::ext::*;
let has_iter = ::quote::__private::HasIterator::<false>;
#[allow(unused_mut)]
let (mut establish_impls, i) =
establish_impls.quote_into_iter();
let has_iter = has_iter | i;
<_ as
::quote::__private::CheckHasIterator<true>>::check(has_iter);
while true {
let establish_impls =
match establish_impls.next() {
Some(_x) => ::quote::__private::RepInterp(_x),
None => break,
};
::quote::ToTokens::to_tokens(&establish_impls, &mut _s);
}
}
::quote::__private::push_ident(&mut _s, "Err");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "ConnectionError");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "BadConnection");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::parse(&mut _s,
"\"Invalid connection url for multiconnection\"");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "into");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
_s
});
_s
});
_s
});
::quote::ToTokens::to_tokens(&impl_execute_returning_count,
&mut _s);
::quote::__private::push_ident(&mut _s, "fn");
::quote::__private::push_ident(&mut _s, "transaction_state");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "mut");
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_comma(&mut _s);
_s
});
::quote::__private::push_rarrow(&mut _s);
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "mut");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "TransactionManager");
::quote::__private::push_ident(&mut _s, "as");
::quote::ToTokens::to_tokens(&transaction_manager, &mut _s);
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_shr(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "TransactionStateData");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "self");
_s
});
::quote::__private::push_ident(&mut _s, "fn");
::quote::__private::push_ident(&mut _s, "instrumentation");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "mut");
::quote::__private::push_ident(&mut _s, "self");
_s
});
::quote::__private::push_rarrow(&mut _s);
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "mut");
::quote::__private::push_ident(&mut _s, "dyn");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "connection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Instrumentation");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "match");
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
{
use ::quote::__private::ext::*;
let has_iter = ::quote::__private::HasIterator::<false>;
#[allow(unused_mut)]
let (mut get_instrumentation_impl, i) =
get_instrumentation_impl.quote_into_iter();
let has_iter = has_iter | i;
<_ as
::quote::__private::CheckHasIterator<true>>::check(has_iter);
while true {
let get_instrumentation_impl =
match get_instrumentation_impl.next() {
Some(_x) => ::quote::__private::RepInterp(_x),
None => break,
};
::quote::ToTokens::to_tokens(&get_instrumentation_impl,
&mut _s);
::quote::__private::push_comma(&mut _s);
}
}
_s
});
_s
});
::quote::__private::push_ident(&mut _s, "fn");
::quote::__private::push_ident(&mut _s, "set_instrumentation");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "mut");
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "instrumentation");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "connection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Instrumentation");
_s
});
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "match");
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
{
use ::quote::__private::ext::*;
let has_iter = ::quote::__private::HasIterator::<false>;
#[allow(unused_mut)]
let (mut instrumentation_impl, i) =
instrumentation_impl.quote_into_iter();
let has_iter = has_iter | i;
<_ as
::quote::__private::CheckHasIterator<true>>::check(has_iter);
while true {
let instrumentation_impl =
match instrumentation_impl.next() {
Some(_x) => ::quote::__private::RepInterp(_x),
None => break,
};
::quote::ToTokens::to_tokens(&instrumentation_impl,
&mut _s);
::quote::__private::push_comma(&mut _s);
}
}
_s
});
_s
});
::quote::__private::push_ident(&mut _s, "fn");
::quote::__private::push_ident(&mut _s,
"set_prepared_statement_cache_size");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "mut");
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "size");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "connection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "CacheSize");
_s
});
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "match");
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
{
use ::quote::__private::ext::*;
let has_iter = ::quote::__private::HasIterator::<false>;
#[allow(unused_mut)]
let (mut set_cache_impl, i) =
set_cache_impl.quote_into_iter();
let has_iter = has_iter | i;
<_ as
::quote::__private::CheckHasIterator<true>>::check(has_iter);
while true {
let set_cache_impl =
match set_cache_impl.next() {
Some(_x) => ::quote::__private::RepInterp(_x),
None => break,
};
::quote::ToTokens::to_tokens(&set_cache_impl, &mut _s);
::quote::__private::push_comma(&mut _s);
}
}
_s
});
_s
});
::quote::ToTokens::to_tokens(&async_token, &mut _s);
::quote::__private::push_ident(&mut _s, "fn");
::quote::__private::push_ident(&mut _s, "begin_test_transaction");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "mut");
::quote::__private::push_ident(&mut _s, "self");
_s
});
::quote::__private::push_rarrow(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryResult");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "match");
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
{
use ::quote::__private::ext::*;
let has_iter = ::quote::__private::HasIterator::<false>;
#[allow(unused_mut)]
let (mut impl_begin_test_transaction, i) =
impl_begin_test_transaction.quote_into_iter();
let has_iter = has_iter | i;
<_ as
::quote::__private::CheckHasIterator<true>>::check(has_iter);
while true {
let impl_begin_test_transaction =
match impl_begin_test_transaction.next() {
Some(_x) => ::quote::__private::RepInterp(_x),
None => break,
};
::quote::ToTokens::to_tokens(&impl_begin_test_transaction,
&mut _s);
::quote::__private::push_comma(&mut _s);
}
}
_s
});
_s
});
_s
});
::quote::ToTokens::to_tokens(&load_impl, &mut _s);
::quote::__private::push_ident(&mut _s, "impl");
::quote::ToTokens::to_tokens(&transaction_manager, &mut _s);
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiConnection");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "for");
::quote::__private::push_ident(&mut _s, "MultiConnection");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "type");
::quote::__private::push_ident(&mut _s, "TransactionStateData");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_semi(&mut _s);
::quote::ToTokens::to_tokens(&async_token, &mut _s);
::quote::__private::push_ident(&mut _s, "fn");
::quote::__private::push_ident(&mut _s, "begin_transaction");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "conn");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "mut");
::quote::__private::push_ident(&mut _s, "MultiConnection");
_s
});
::quote::__private::push_rarrow(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryResult");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "match");
::quote::__private::push_ident(&mut _s, "conn");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
{
use ::quote::__private::ext::*;
let has_iter = ::quote::__private::HasIterator::<false>;
#[allow(unused_mut)]
let (mut begin_transaction_impl, i) =
begin_transaction_impl.quote_into_iter();
let has_iter = has_iter | i;
<_ as
::quote::__private::CheckHasIterator<true>>::check(has_iter);
while true {
let begin_transaction_impl =
match begin_transaction_impl.next() {
Some(_x) => ::quote::__private::RepInterp(_x),
None => break,
};
::quote::ToTokens::to_tokens(&begin_transaction_impl,
&mut _s);
::quote::__private::push_comma(&mut _s);
}
}
_s
});
_s
});
::quote::ToTokens::to_tokens(&async_token, &mut _s);
::quote::__private::push_ident(&mut _s, "fn");
::quote::__private::push_ident(&mut _s, "rollback_transaction");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "conn");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "mut");
::quote::__private::push_ident(&mut _s, "MultiConnection");
_s
});
::quote::__private::push_rarrow(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryResult");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "match");
::quote::__private::push_ident(&mut _s, "conn");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
{
use ::quote::__private::ext::*;
let has_iter = ::quote::__private::HasIterator::<false>;
#[allow(unused_mut)]
let (mut rollback_transaction_impl, i) =
rollback_transaction_impl.quote_into_iter();
let has_iter = has_iter | i;
<_ as
::quote::__private::CheckHasIterator<true>>::check(has_iter);
while true {
let rollback_transaction_impl =
match rollback_transaction_impl.next() {
Some(_x) => ::quote::__private::RepInterp(_x),
None => break,
};
::quote::ToTokens::to_tokens(&rollback_transaction_impl,
&mut _s);
::quote::__private::push_comma(&mut _s);
}
}
_s
});
_s
});
::quote::ToTokens::to_tokens(&async_token, &mut _s);
::quote::__private::push_ident(&mut _s, "fn");
::quote::__private::push_ident(&mut _s, "commit_transaction");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "conn");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "mut");
::quote::__private::push_ident(&mut _s, "MultiConnection");
_s
});
::quote::__private::push_rarrow(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryResult");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "match");
::quote::__private::push_ident(&mut _s, "conn");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
{
use ::quote::__private::ext::*;
let has_iter = ::quote::__private::HasIterator::<false>;
#[allow(unused_mut)]
let (mut commit_transaction_impl, i) =
commit_transaction_impl.quote_into_iter();
let has_iter = has_iter | i;
<_ as
::quote::__private::CheckHasIterator<true>>::check(has_iter);
while true {
let commit_transaction_impl =
match commit_transaction_impl.next() {
Some(_x) => ::quote::__private::RepInterp(_x),
None => break,
};
::quote::ToTokens::to_tokens(&commit_transaction_impl,
&mut _s);
::quote::__private::push_comma(&mut _s);
}
}
_s
});
_s
});
::quote::__private::push_ident(&mut _s, "fn");
::quote::__private::push_ident(&mut _s,
"transaction_manager_status_mut");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "conn");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "mut");
::quote::__private::push_ident(&mut _s, "MultiConnection");
_s
});
::quote::__private::push_rarrow(&mut _s);
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "mut");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "connection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s,
"TransactionManagerStatus");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "match");
::quote::__private::push_ident(&mut _s, "conn");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
{
use ::quote::__private::ext::*;
let has_iter = ::quote::__private::HasIterator::<false>;
#[allow(unused_mut)]
let (mut transaction_manager_status_mut_impl, i) =
transaction_manager_status_mut_impl.quote_into_iter();
let has_iter = has_iter | i;
<_ as
::quote::__private::CheckHasIterator<true>>::check(has_iter);
while true {
let transaction_manager_status_mut_impl =
match transaction_manager_status_mut_impl.next() {
Some(_x) => ::quote::__private::RepInterp(_x),
None => break,
};
::quote::ToTokens::to_tokens(&transaction_manager_status_mut_impl,
&mut _s);
::quote::__private::push_comma(&mut _s);
}
}
_s
});
_s
});
::quote::__private::push_ident(&mut _s, "fn");
::quote::__private::push_ident(&mut _s,
"is_broken_transaction_manager");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "conn");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "mut");
::quote::__private::push_ident(&mut _s, "MultiConnection");
_s
});
::quote::__private::push_rarrow(&mut _s);
::quote::__private::push_ident(&mut _s, "bool");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "match");
::quote::__private::push_ident(&mut _s, "conn");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
{
use ::quote::__private::ext::*;
let has_iter = ::quote::__private::HasIterator::<false>;
#[allow(unused_mut)]
let (mut is_broken_transaction_manager_impl, i) =
is_broken_transaction_manager_impl.quote_into_iter();
let has_iter = has_iter | i;
<_ as
::quote::__private::CheckHasIterator<true>>::check(has_iter);
while true {
let is_broken_transaction_manager_impl =
match is_broken_transaction_manager_impl.next() {
Some(_x) => ::quote::__private::RepInterp(_x),
None => break,
};
::quote::ToTokens::to_tokens(&is_broken_transaction_manager_impl,
&mut _s);
::quote::__private::push_comma(&mut _s);
}
}
_s
});
_s
});
_s
});
::quote::ToTokens::to_tokens(&migration_connection_impl, &mut _s);
::quote::ToTokens::to_tokens(&r2d2_impl, &mut _s);
_s
}quote::quote! {
542 pub(super) use super::#ident as MultiConnection;
543
544 impl #simple_connection for MultiConnection {
545 #async_token fn batch_execute(&mut self, query: &str) -> diesel::result::QueryResult<()> {
546 match self {
547 #(#batch_execute_impl,)*
548 }
549 }
550 }
551
552 #simple_impls
553
554 struct SerializedQuery<T, C> {
555 inner: T,
556 backend: MultiBackend,
557 query_builder: super::query_builder::MultiQueryBuilder,
558 p: std::marker::PhantomData<C>,
559 }
560
561 trait BindParamHelper: #conn {
562 fn handle_inner_pass<'a, 'b: 'a>(
563 collector: &mut <Self::Backend as diesel::backend::Backend>::BindCollector<'a>,
564 lookup: &mut <Self::Backend as diesel::sql_types::TypeMetadata>::MetadataLookup,
565 backend: &'b MultiBackend,
566 q: &'b impl diesel::query_builder::QueryFragment<MultiBackend>,
567 ) -> diesel::QueryResult<()>;
568 }
569
570 #(#bind_param_helper_impl)*
571
572 impl<T, DB, C> diesel::query_builder::QueryFragment<DB> for SerializedQuery<T, C>
573 where
574 DB: diesel::backend::Backend + 'static,
575 T: diesel::query_builder::QueryFragment<MultiBackend>,
576 C: #conn_backend<Backend = DB> + BindParamHelper + #multi_conn_helper,
577 {
578 fn walk_ast<'b>(
579 &'b self,
580 mut pass: diesel::query_builder::AstPass<'_, 'b, DB>,
581 ) -> diesel::QueryResult<()> {
582 use diesel::query_builder::QueryBuilder;
583 use diesel::internal::derives::multiconnection::AstPassHelper;
584
585 let mut query_builder = self.query_builder.duplicate();
586 self.inner.to_sql(&mut query_builder, &self.backend)?;
587 pass.push_sql(&query_builder.finish());
588 if !self.inner.is_safe_to_cache_prepared(&self.backend)? {
589 pass.unsafe_to_cache_prepared();
590 }
591 if let Some((outer_collector, lookup)) = pass.bind_collector() {
592 C::handle_inner_pass(outer_collector, lookup, &self.backend, &self.inner)?;
593 }
594 if let Some((formatter, _backend)) = pass.debug_binds() {
595 let pass = diesel::query_builder::AstPass::<MultiBackend>::collect_debug_binds_pass(formatter, &self.backend);
596 self.inner.walk_ast(pass)?;
597 }
598 Ok(())
599 }
600 }
601
602 impl<T, C> diesel::query_builder::QueryId for SerializedQuery<T, C>
603 where
604 T: diesel::query_builder::QueryId,
605 {
606 type QueryId = <T as diesel::query_builder::QueryId>::QueryId;
607
608 const HAS_STATIC_QUERY_ID: bool = <T as diesel::query_builder::QueryId>::HAS_STATIC_QUERY_ID;
609 }
610
611 impl<T, C> diesel::query_builder::Query for SerializedQuery<T, C>
612 where
613 T: diesel::query_builder::Query
614 {
615 type SqlType = diesel::sql_types::Untyped;
618 }
619
620 impl #conn for MultiConnection {
621 #conn_backend_impl
622
623 type TransactionManager = Self;
624
625 #async_token fn establish(database_url: &str) -> diesel::ConnectionResult<Self> {
626 #(#establish_impls)*
627 Err(diesel::ConnectionError::BadConnection("Invalid connection url for multiconnection".into()))
628 }
629 #impl_execute_returning_count
630
631 fn transaction_state(
632 &mut self,
633 ) -> &mut <Self::TransactionManager as #transaction_manager<Self>>::TransactionStateData {
634 self
635 }
636
637 fn instrumentation(&mut self) -> &mut dyn diesel::connection::Instrumentation {
638 match self {
639 #(#get_instrumentation_impl,)*
640 }
641 }
642
643 fn set_instrumentation(&mut self, instrumentation: impl diesel::connection::Instrumentation) {
644 match self {
645 #(#instrumentation_impl,)*
646 }
647 }
648
649 fn set_prepared_statement_cache_size(&mut self, size: diesel::connection::CacheSize) {
650 match self {
651 #(#set_cache_impl,)*
652 }
653 }
654
655 #async_token fn begin_test_transaction(&mut self) -> diesel::QueryResult<()> {
656 match self {
657 #(#impl_begin_test_transaction,)*
658 }
659 }
660 }
661
662 #load_impl
663
664 impl #transaction_manager<MultiConnection> for MultiConnection {
665 type TransactionStateData = Self;
666
667 #async_token fn begin_transaction(conn: &mut MultiConnection) -> diesel::QueryResult<()> {
668 match conn {
669 #(#begin_transaction_impl,)*
670 }
671 }
672
673 #async_token fn rollback_transaction(conn: &mut MultiConnection) -> diesel::QueryResult<()> {
674 match conn {
675 #(#rollback_transaction_impl,)*
676 }
677 }
678
679 #async_token fn commit_transaction(conn: &mut MultiConnection) -> diesel::QueryResult<()> {
680 match conn {
681 #(#commit_transaction_impl,)*
682 }
683 }
684
685 fn transaction_manager_status_mut(conn: &mut MultiConnection) -> &mut diesel::connection::TransactionManagerStatus {
686 match conn {
687 #(#transaction_manager_status_mut_impl,)*
688 }
689 }
690
691 fn is_broken_transaction_manager(conn: &mut MultiConnection) -> bool {
692 match conn {
693 #(#is_broken_transaction_manager_impl,)*
694 }
695 }
696 }
697
698 #migration_connection_impl
699
700 #r2d2_impl
701 }
702}
703
704fn generate_row(connection_types: &[ConnectionVariant], helper: &MultiHelper) -> TokenStream {
705 let MultiHelper {
706 is_async,
707 conn_load,
708 conn_backend,
709 ..
710 } = helper;
711 let is_async = *is_async;
712 let row_variants = connection_types.iter().map(|c| {
713 let ident = c.name;
714 let ty = c.ty;
715 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::ToTokens::to_tokens(&ident, &mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_lt(&mut _s);
::quote::ToTokens::to_tokens(&ty, &mut _s);
::quote::__private::push_ident(&mut _s, "as");
::quote::ToTokens::to_tokens(&conn_load, &mut _s);
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Row");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'conn");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'query");
::quote::__private::push_gt(&mut _s);
_s
});
_s
}quote::quote! {
716 #ident(<#ty as #conn_load>::Row<'conn, 'query>)
717 }
718 });
719
720 let field_variants = connection_types.iter().map(|c| {
721 let ident = c.name;
722 let ty = c.ty;
723 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::ToTokens::to_tokens(&ident, &mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_shl(&mut _s);
::quote::ToTokens::to_tokens(&ty, &mut _s);
::quote::__private::push_ident(&mut _s, "as");
::quote::ToTokens::to_tokens(&conn_load, &mut _s);
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Row");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'conn");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'query");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "as");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "row");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Row");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'conn");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_lt(&mut _s);
::quote::ToTokens::to_tokens(&ty, &mut _s);
::quote::__private::push_ident(&mut _s, "as");
::quote::ToTokens::to_tokens(&conn_backend, &mut _s);
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Backend");
::quote::__private::push_shr(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Field");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'query");
::quote::__private::push_gt(&mut _s);
_s
});
_s
}quote::quote! {
724 #ident(<<#ty as #conn_load>::Row<'conn, 'query> as diesel::row::Row<'conn, <#ty as #conn_backend>::Backend>>::Field<'query>)
725 }
726 });
727
728 let field_name_impl = connection_types.iter().map(|c| {
729 let ident = c.name;
730 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::ToTokens::to_tokens(&ident, &mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "f");
_s
});
::quote::__private::push_fat_arrow(&mut _s);
::quote::__private::push_ident(&mut _s, "f");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "field_name");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
_s
}quote::quote! {
731 Self::#ident(f) => f.field_name()
732 }
733 });
734
735 let field_value_impl = connection_types.iter().map(|c| {
736 let ident = c.name;
737 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::ToTokens::to_tokens(&ident, &mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "f");
_s
});
::quote::__private::push_fat_arrow(&mut _s);
::quote::__private::push_ident(&mut _s, "f");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "value");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "map");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiRawValue");
::quote::__private::push_colon2(&mut _s);
::quote::ToTokens::to_tokens(&ident, &mut _s);
_s
});
_s
}quote::quote! {
738 Self::#ident(f) => f.value().map(super::MultiRawValue::#ident)
739 }
740 });
741
742 let row_index_impl = connection_types
743 .iter()
744 .map(|c| {
745 let ident = c.name;
746 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::ToTokens::to_tokens(&ident, &mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "r");
_s
});
::quote::__private::push_fat_arrow(&mut _s);
::quote::__private::push_ident(&mut _s, "r");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "idx");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "idx");
_s
});
_s
}quote::quote! {
747 Self::#ident(r) => r.idx(idx)
748 }
749 })
750 .collect::<Vec<_>>();
751 let row_index_impl = &row_index_impl;
752
753 let cursor_impl = if is_async {
754 None
755 } else {
756 let cursor_variants = connection_types.iter().map(|c| {
757 let ident = c.name;
758 let ty = c.ty;
759 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::ToTokens::to_tokens(&ident, &mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_lt(&mut _s);
::quote::ToTokens::to_tokens(&ty, &mut _s);
::quote::__private::push_ident(&mut _s, "as");
::quote::ToTokens::to_tokens(&conn_load, &mut _s);
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Cursor");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'conn");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'query");
::quote::__private::push_gt(&mut _s);
_s
});
_s
}quote::quote! {
760 #ident(<#ty as #conn_load>::Cursor<'conn, 'query>)
761 }
762 });
763 let iterator_impl = connection_types.iter().map(|c| {
764 let ident = c.name;
765 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::ToTokens::to_tokens(&ident, &mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "r");
_s
});
::quote::__private::push_fat_arrow(&mut _s);
::quote::__private::push_ident(&mut _s, "Some");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "r");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "next");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
::quote::__private::push_question(&mut _s);
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "map");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "MultiRow");
::quote::__private::push_colon2(&mut _s);
::quote::ToTokens::to_tokens(&ident, &mut _s);
_s
});
_s
});
_s
}quote::quote! {
766 Self::#ident(r) => Some(r.next()?.map(MultiRow::#ident))
767 }
768 });
769
770 Some({
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "pub");
::quote::__private::push_ident(&mut _s, "enum");
::quote::__private::push_ident(&mut _s, "MultiCursor");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'conn");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'query");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
{
use ::quote::__private::ext::*;
let has_iter = ::quote::__private::HasIterator::<false>;
#[allow(unused_mut)]
let (mut cursor_variants, i) =
cursor_variants.quote_into_iter();
let has_iter = has_iter | i;
<_ as
::quote::__private::CheckHasIterator<true>>::check(has_iter);
while true {
let cursor_variants =
match cursor_variants.next() {
Some(_x) => ::quote::__private::RepInterp(_x),
None => break,
};
::quote::ToTokens::to_tokens(&cursor_variants, &mut _s);
::quote::__private::push_comma(&mut _s);
}
}
_s
});
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'conn");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'query");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "Iterator");
::quote::__private::push_ident(&mut _s, "for");
::quote::__private::push_ident(&mut _s, "MultiCursor");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'conn");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'query");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "type");
::quote::__private::push_ident(&mut _s, "Item");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryResult");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiRow");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'conn");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'query");
::quote::__private::push_shr(&mut _s);
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "fn");
::quote::__private::push_ident(&mut _s, "next");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "mut");
::quote::__private::push_ident(&mut _s, "self");
_s
});
::quote::__private::push_rarrow(&mut _s);
::quote::__private::push_ident(&mut _s, "Option");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Item");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "match");
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
{
use ::quote::__private::ext::*;
let has_iter = ::quote::__private::HasIterator::<false>;
#[allow(unused_mut)]
let (mut iterator_impl, i) =
iterator_impl.quote_into_iter();
let has_iter = has_iter | i;
<_ as
::quote::__private::CheckHasIterator<true>>::check(has_iter);
while true {
let iterator_impl =
match iterator_impl.next() {
Some(_x) => ::quote::__private::RepInterp(_x),
None => break,
};
::quote::ToTokens::to_tokens(&iterator_impl, &mut _s);
::quote::__private::push_comma(&mut _s);
}
}
_s
});
_s
});
_s
});
_s
}quote::quote! {
771 pub enum MultiCursor<'conn, 'query> {
772 #(#cursor_variants,)*
773 }
774
775 impl<'conn, 'query> Iterator for MultiCursor<'conn, 'query> {
776 type Item = diesel::QueryResult<MultiRow<'conn, 'query>>;
777
778 fn next(&mut self) -> Option<Self::Item> {
779 match self {
780 #(#iterator_impl,)*
781 }
782 }
783 }
784 })
785 };
786
787 let field_count_impl = connection_types.iter().map(|c| {
788 let ident = c.name;
789 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::ToTokens::to_tokens(&ident, &mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "r");
_s
});
::quote::__private::push_fat_arrow(&mut _s);
::quote::__private::push_ident(&mut _s, "r");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "field_count");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
_s
}quote::quote! {
790 Self::#ident(r) => r.field_count()
791 }
792 });
793
794 let get_field_impl = connection_types.iter().map(|c| {
795 let ident = c.name;
796 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::ToTokens::to_tokens(&ident, &mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "r");
_s
});
::quote::__private::push_fat_arrow(&mut _s);
::quote::__private::push_ident(&mut _s, "r");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "get");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "idx");
_s
});
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "map");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "MultiField");
::quote::__private::push_colon2(&mut _s);
::quote::ToTokens::to_tokens(&ident, &mut _s);
_s
});
_s
}quote::quote! {
797 Self::#ident(r) => r.get(idx).map(MultiField::#ident)
798 }
799 });
800
801 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "pub");
::quote::__private::push_ident(&mut _s, "enum");
::quote::__private::push_ident(&mut _s, "MultiRow");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'conn");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'query");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
{
use ::quote::__private::ext::*;
let has_iter = ::quote::__private::HasIterator::<false>;
#[allow(unused_mut)]
let (mut row_variants, i) = row_variants.quote_into_iter();
let has_iter = has_iter | i;
<_ as
::quote::__private::CheckHasIterator<true>>::check(has_iter);
while true {
let row_variants =
match row_variants.next() {
Some(_x) => ::quote::__private::RepInterp(_x),
None => break,
};
::quote::ToTokens::to_tokens(&row_variants, &mut _s);
::quote::__private::push_comma(&mut _s);
}
}
_s
});
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'conn");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'query");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "derives");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multiconnection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "RowSealed");
::quote::__private::push_ident(&mut _s, "for");
::quote::__private::push_ident(&mut _s, "MultiRow");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'conn");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'query");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
::quote::__private::TokenStream::new());
::quote::__private::push_ident(&mut _s, "pub");
::quote::__private::push_ident(&mut _s, "enum");
::quote::__private::push_ident(&mut _s, "MultiField");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'conn");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'query");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'query");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
{
use ::quote::__private::ext::*;
let has_iter = ::quote::__private::HasIterator::<false>;
#[allow(unused_mut)]
let (mut field_variants, i) =
field_variants.quote_into_iter();
let has_iter = has_iter | i;
<_ as
::quote::__private::CheckHasIterator<true>>::check(has_iter);
while true {
let field_variants =
match field_variants.next() {
Some(_x) => ::quote::__private::RepInterp(_x),
None => break,
};
::quote::ToTokens::to_tokens(&field_variants, &mut _s);
::quote::__private::push_comma(&mut _s);
}
}
_s
});
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'conn");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'query");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "row");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Field");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'conn");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "for");
::quote::__private::push_ident(&mut _s, "MultiField");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'conn");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'query");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "fn");
::quote::__private::push_ident(&mut _s, "field_name");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "self");
_s
});
::quote::__private::push_rarrow(&mut _s);
::quote::__private::push_ident(&mut _s, "Option");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "str");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "use");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "row");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Field");
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "match");
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
{
use ::quote::__private::ext::*;
let has_iter = ::quote::__private::HasIterator::<false>;
#[allow(unused_mut)]
let (mut field_name_impl, i) =
field_name_impl.quote_into_iter();
let has_iter = has_iter | i;
<_ as
::quote::__private::CheckHasIterator<true>>::check(has_iter);
while true {
let field_name_impl =
match field_name_impl.next() {
Some(_x) => ::quote::__private::RepInterp(_x),
None => break,
};
::quote::ToTokens::to_tokens(&field_name_impl, &mut _s);
::quote::__private::push_comma(&mut _s);
}
}
_s
});
_s
});
::quote::__private::push_ident(&mut _s, "fn");
::quote::__private::push_ident(&mut _s, "value");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "self");
_s
});
::quote::__private::push_rarrow(&mut _s);
::quote::__private::push_ident(&mut _s, "Option");
::quote::__private::push_shl(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_ident(&mut _s, "as");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Backend");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "RawValue");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'_");
::quote::__private::push_shr(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "use");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "row");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Field");
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "match");
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
{
use ::quote::__private::ext::*;
let has_iter = ::quote::__private::HasIterator::<false>;
#[allow(unused_mut)]
let (mut field_value_impl, i) =
field_value_impl.quote_into_iter();
let has_iter = has_iter | i;
<_ as
::quote::__private::CheckHasIterator<true>>::check(has_iter);
while true {
let field_value_impl =
match field_value_impl.next() {
Some(_x) => ::quote::__private::RepInterp(_x),
None => break,
};
::quote::ToTokens::to_tokens(&field_value_impl, &mut _s);
::quote::__private::push_comma(&mut _s);
}
}
_s
});
_s
});
_s
});
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'conn");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'query");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'c");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "row");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "RowIndex");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_and(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'c");
::quote::__private::push_ident(&mut _s, "str");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "for");
::quote::__private::push_ident(&mut _s, "MultiRow");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'conn");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'query");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "fn");
::quote::__private::push_ident(&mut _s, "idx");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "idx");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_and(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'c");
::quote::__private::push_ident(&mut _s, "str");
_s
});
::quote::__private::push_rarrow(&mut _s);
::quote::__private::push_ident(&mut _s, "Option");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "usize");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "use");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "row");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "RowIndex");
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "match");
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
{
use ::quote::__private::ext::*;
let has_iter = ::quote::__private::HasIterator::<false>;
#[allow(unused_mut)]
let (mut row_index_impl, i) =
row_index_impl.quote_into_iter();
let has_iter = has_iter | i;
<_ as
::quote::__private::CheckHasIterator<true>>::check(has_iter);
while true {
let row_index_impl =
match row_index_impl.next() {
Some(_x) => ::quote::__private::RepInterp(_x),
None => break,
};
::quote::ToTokens::to_tokens(&row_index_impl, &mut _s);
::quote::__private::push_comma(&mut _s);
}
}
_s
});
_s
});
_s
});
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'conn");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'query");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "row");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "RowIndex");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "usize");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "for");
::quote::__private::push_ident(&mut _s, "MultiRow");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'conn");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'query");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "fn");
::quote::__private::push_ident(&mut _s, "idx");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "idx");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "usize");
_s
});
::quote::__private::push_rarrow(&mut _s);
::quote::__private::push_ident(&mut _s, "Option");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "usize");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "use");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "row");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "RowIndex");
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "match");
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
{
use ::quote::__private::ext::*;
let has_iter = ::quote::__private::HasIterator::<false>;
#[allow(unused_mut)]
let (mut row_index_impl, i) =
row_index_impl.quote_into_iter();
let has_iter = has_iter | i;
<_ as
::quote::__private::CheckHasIterator<true>>::check(has_iter);
while true {
let row_index_impl =
match row_index_impl.next() {
Some(_x) => ::quote::__private::RepInterp(_x),
None => break,
};
::quote::ToTokens::to_tokens(&row_index_impl, &mut _s);
::quote::__private::push_comma(&mut _s);
}
}
_s
});
_s
});
_s
});
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'conn");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'query");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "row");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Row");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'conn");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "for");
::quote::__private::push_ident(&mut _s, "MultiRow");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'conn");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'query");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "type");
::quote::__private::push_ident(&mut _s, "Field");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'a");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiField");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'a");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'a");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "where");
::quote::__private::push_lifetime(&mut _s, "\'conn");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'a");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'a");
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "type");
::quote::__private::push_ident(&mut _s, "InnerPartialRow");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "fn");
::quote::__private::push_ident(&mut _s, "field_count");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "self");
_s
});
::quote::__private::push_rarrow(&mut _s);
::quote::__private::push_ident(&mut _s, "usize");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "use");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "row");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Row");
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "match");
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
{
use ::quote::__private::ext::*;
let has_iter = ::quote::__private::HasIterator::<false>;
#[allow(unused_mut)]
let (mut field_count_impl, i) =
field_count_impl.quote_into_iter();
let has_iter = has_iter | i;
<_ as
::quote::__private::CheckHasIterator<true>>::check(has_iter);
while true {
let field_count_impl =
match field_count_impl.next() {
Some(_x) => ::quote::__private::RepInterp(_x),
None => break,
};
::quote::ToTokens::to_tokens(&field_count_impl, &mut _s);
::quote::__private::push_comma(&mut _s);
}
}
_s
});
_s
});
::quote::__private::push_ident(&mut _s, "fn");
::quote::__private::push_ident(&mut _s, "get");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'b");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "I");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_and(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'b");
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "idx");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "I");
_s
});
::quote::__private::push_rarrow(&mut _s);
::quote::__private::push_ident(&mut _s, "Option");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Field");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'b");
::quote::__private::push_shr(&mut _s);
::quote::__private::push_ident(&mut _s, "where");
::quote::__private::push_lifetime(&mut _s, "\'conn");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'b");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "row");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "RowIndex");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "I");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "use");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "row");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "RowIndex");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "Row");
_s
});
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "let");
::quote::__private::push_ident(&mut _s, "idx");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "idx");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "idx");
_s
});
::quote::__private::push_question(&mut _s);
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "match");
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
{
use ::quote::__private::ext::*;
let has_iter = ::quote::__private::HasIterator::<false>;
#[allow(unused_mut)]
let (mut get_field_impl, i) =
get_field_impl.quote_into_iter();
let has_iter = has_iter | i;
<_ as
::quote::__private::CheckHasIterator<true>>::check(has_iter);
while true {
let get_field_impl =
match get_field_impl.next() {
Some(_x) => ::quote::__private::RepInterp(_x),
None => break,
};
::quote::ToTokens::to_tokens(&get_field_impl, &mut _s);
::quote::__private::push_comma(&mut _s);
}
}
_s
});
_s
});
::quote::__private::push_ident(&mut _s, "fn");
::quote::__private::push_ident(&mut _s, "partial_row");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "range");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "std");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "ops");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Range");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "usize");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_comma(&mut _s);
_s
});
::quote::__private::push_rarrow(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "derives");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multiconnection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "PartialRow");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'_");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "InnerPartialRow");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "derives");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multiconnection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "PartialRow");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "new");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "range");
_s
});
_s
});
_s
});
::quote::ToTokens::to_tokens(&cursor_impl, &mut _s);
_s
}quote::quote! {
802
803 pub enum MultiRow<'conn, 'query> {
804 #(#row_variants,)*
805
806 }
807
808 impl<'conn, 'query> diesel::internal::derives::multiconnection::RowSealed for MultiRow<'conn, 'query> {}
809
810 pub enum MultiField<'conn: 'query, 'query> {
811 #(#field_variants,)*
812 }
813
814 impl<'conn, 'query> diesel::row::Field<'conn, super::MultiBackend> for MultiField<'conn, 'query> {
815 fn field_name(&self) -> Option<&str> {
816 use diesel::row::Field;
817
818 match self {
819 #(#field_name_impl,)*
820 }
821 }
822
823 fn value(&self) -> Option<<super::MultiBackend as diesel::backend::Backend>::RawValue<'_>> {
824 use diesel::row::Field;
825
826 match self {
827 #(#field_value_impl,)*
828 }
829 }
830 }
831
832 impl<'conn, 'query, 'c> diesel::row::RowIndex<&'c str> for MultiRow<'conn, 'query> {
833 fn idx(&self, idx: &'c str) -> Option<usize> {
834 use diesel::row::RowIndex;
835
836 match self {
837 #(#row_index_impl,)*
838 }
839 }
840 }
841
842 impl<'conn, 'query> diesel::row::RowIndex<usize> for MultiRow<'conn, 'query> {
843 fn idx(&self, idx: usize) -> Option<usize> {
844 use diesel::row::RowIndex;
845
846 match self {
847 #(#row_index_impl,)*
848 }
849 }
850 }
851
852 impl<'conn, 'query> diesel::row::Row<'conn, super::MultiBackend> for MultiRow<'conn, 'query> {
853 type Field<'a> = MultiField<'a, 'a> where 'conn: 'a, Self: 'a;
854 type InnerPartialRow = Self;
855
856 fn field_count(&self) -> usize {
857 use diesel::row::Row;
858 match self {
859 #(#field_count_impl,)*
860 }
861 }
862
863 fn get<'b, I>(&'b self, idx: I) -> Option<Self::Field<'b>>
864 where
865 'conn: 'b,
866 Self: diesel::row::RowIndex<I>,
867 {
868 use diesel::row::{RowIndex, Row};
869 let idx = self.idx(idx)?;
870
871 match self {
872 #(#get_field_impl,)*
873 }
874 }
875
876 fn partial_row(
877 &self,
878 range: std::ops::Range<usize>,
879 ) -> diesel::internal::derives::multiconnection::PartialRow<'_, Self::InnerPartialRow> {
880 diesel::internal::derives::multiconnection::PartialRow::new(self, range)
881 }
882 }
883 #cursor_impl
884
885 }
886}
887
888fn generate_bind_collector(
889 connection_types: &[ConnectionVariant],
890 helper: &MultiHelper,
891) -> TokenStream {
892 let MultiHelper {
893 multi_conn_helper,
894 conn_backend,
895 ..
896 } = helper;
897
898 let mut to_sql_impls = [
899 (
900 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "sql_types");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "SmallInt");
_s
}quote::quote!(diesel::sql_types::SmallInt),
901 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "i16");
_s
}quote::quote!(i16),
902 ),
903 (
904 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "sql_types");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Integer");
_s
}quote::quote!(diesel::sql_types::Integer),
905 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "i32");
_s
}quote::quote!(i32),
906 ),
907 ({
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "sql_types");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "BigInt");
_s
}quote::quote!(diesel::sql_types::BigInt), {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "i64");
_s
}quote::quote!(i64)),
908 ({
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "sql_types");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Double");
_s
}quote::quote!(diesel::sql_types::Double), {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "f64");
_s
}quote::quote!(f64)),
909 ({
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "sql_types");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Float");
_s
}quote::quote!(diesel::sql_types::Float), {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "f32");
_s
}quote::quote!(f32)),
910 ({
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "sql_types");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Text");
_s
}quote::quote!(diesel::sql_types::Text), {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "str");
_s
}quote::quote!(str)),
911 (
912 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "sql_types");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Binary");
_s
}quote::quote!(diesel::sql_types::Binary),
913 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Bracket,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "u8");
_s
});
_s
}quote::quote!([u8]),
914 ),
915 ({
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "sql_types");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Bool");
_s
}quote::quote!(diesel::sql_types::Bool), {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "bool");
_s
}quote::quote!(bool)),
916 ]
917 .into_iter()
918 .map(|t| generate_to_sql_impls(t, connection_types))
919 .collect::<Vec<_>>();
920 let numeric_impl = generate_to_sql_impls(
921 (
922 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "sql_types");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Numeric");
_s
}quote::quote!(diesel::sql_types::Numeric),
923 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "derives");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multiconnection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "bigdecimal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "BigDecimal");
_s
}quote::quote!(diesel::internal::derives::multiconnection::bigdecimal::BigDecimal),
924 ),
925 connection_types,
926 );
927 to_sql_impls.push({
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "derives");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multiconnection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "expand_numeric");
::quote::__private::push_bang(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::ToTokens::to_tokens(&numeric_impl, &mut _s);
_s
});
_s
}quote::quote! {
928 diesel::internal::derives::multiconnection::expand_numeric! {#numeric_impl}
929 });
930 let chrono_impls = [
931 (
932 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "sql_types");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Timestamp");
_s
}quote::quote!(diesel::sql_types::Timestamp),
933 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "derives");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multiconnection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "chrono");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "NaiveDateTime");
_s
}quote::quote!(diesel::internal::derives::multiconnection::chrono::NaiveDateTime),
934 ),
935 (
936 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "sql_types");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Date");
_s
}quote::quote!(diesel::sql_types::Date),
937 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "derives");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multiconnection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "chrono");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "NaiveDate");
_s
}quote::quote!(diesel::internal::derives::multiconnection::chrono::NaiveDate),
938 ),
939 (
940 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "sql_types");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Time");
_s
}quote::quote!(diesel::sql_types::Time),
941 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "derives");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multiconnection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "chrono");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "NaiveTime");
_s
}quote::quote!(diesel::internal::derives::multiconnection::chrono::NaiveTime),
942 ),
943 ]
944 .into_iter()
945 .map(|t| generate_to_sql_impls(t, connection_types))
946 .map(|p| {
947 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "derives");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multiconnection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "expand_chrono");
::quote::__private::push_bang(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::ToTokens::to_tokens(&p, &mut _s);
_s
});
_s
}quote::quote! {
948 diesel::internal::derives::multiconnection::expand_chrono! {#p}
949 }
950 });
951 to_sql_impls.extend(chrono_impls);
952
953 let time_impls = [
954 (
955 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "sql_types");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Timestamp");
_s
}quote::quote!(diesel::sql_types::Timestamp),
956 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "derives");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multiconnection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "time");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "PrimitiveDateTime");
_s
}quote::quote!(diesel::internal::derives::multiconnection::time::PrimitiveDateTime),
957 ),
958 (
959 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "sql_types");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Time");
_s
}quote::quote!(diesel::sql_types::Time),
960 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "derives");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multiconnection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "time");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Time");
_s
}quote::quote!(diesel::internal::derives::multiconnection::time::Time),
961 ),
962 (
963 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "sql_types");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Date");
_s
}quote::quote!(diesel::sql_types::Date),
964 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "derives");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multiconnection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "time");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Date");
_s
}quote::quote!(diesel::internal::derives::multiconnection::time::Date),
965 ),
966 ]
967 .into_iter()
968 .map(|t| generate_to_sql_impls(t, connection_types))
969 .map(|p| {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "derives");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multiconnection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "expand_time");
::quote::__private::push_bang(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::ToTokens::to_tokens(&p, &mut _s);
_s
});
_s
}quote::quote! {diesel::internal::derives::multiconnection::expand_time!{#p}});
970 to_sql_impls.extend(time_impls);
971
972 let mut from_sql_impls = [
973 (
974 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "sql_types");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "SmallInt");
_s
}quote::quote!(diesel::sql_types::SmallInt),
975 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "i16");
_s
}quote::quote!(i16),
976 ),
977 (
978 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "sql_types");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Integer");
_s
}quote::quote!(diesel::sql_types::Integer),
979 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "i32");
_s
}quote::quote!(i32),
980 ),
981 ({
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "sql_types");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "BigInt");
_s
}quote::quote!(diesel::sql_types::BigInt), {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "i64");
_s
}quote::quote!(i64)),
982 ({
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "sql_types");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Double");
_s
}quote::quote!(diesel::sql_types::Double), {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "f64");
_s
}quote::quote!(f64)),
983 ({
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "sql_types");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Float");
_s
}quote::quote!(diesel::sql_types::Float), {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "f32");
_s
}quote::quote!(f32)),
984 (
985 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "sql_types");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Text");
_s
}quote::quote!(diesel::sql_types::Text),
986 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "String");
_s
}quote::quote!(String),
987 ),
988 (
989 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "sql_types");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Binary");
_s
}quote::quote!(diesel::sql_types::Binary),
990 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "Vec");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "u8");
::quote::__private::push_gt(&mut _s);
_s
}quote::quote!(Vec<u8>),
991 ),
992 ({
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "sql_types");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Bool");
_s
}quote::quote!(diesel::sql_types::Bool), {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "bool");
_s
}quote::quote!(bool)),
993 ]
994 .into_iter()
995 .map(generate_from_sql_impls)
996 .collect::<Vec<_>>();
997 let numeric_impl = generate_from_sql_impls((
998 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "sql_types");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Numeric");
_s
}quote::quote!(diesel::sql_types::Numeric),
999 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "derives");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multiconnection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "bigdecimal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "BigDecimal");
_s
}quote::quote!(diesel::internal::derives::multiconnection::bigdecimal::BigDecimal),
1000 ));
1001 from_sql_impls.push({
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "derives");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multiconnection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "expand_numeric");
::quote::__private::push_bang(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::ToTokens::to_tokens(&numeric_impl, &mut _s);
_s
});
_s
}quote::quote! {
1002 diesel::internal::derives::multiconnection::expand_numeric! {#numeric_impl}
1003 });
1004 let chrono_impls = [
1005 (
1006 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "sql_types");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Timestamp");
_s
}quote::quote!(diesel::sql_types::Timestamp),
1007 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "derives");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multiconnection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "chrono");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "NaiveDateTime");
_s
}quote::quote!(diesel::internal::derives::multiconnection::chrono::NaiveDateTime),
1008 ),
1009 (
1010 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "sql_types");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Date");
_s
}quote::quote!(diesel::sql_types::Date),
1011 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "derives");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multiconnection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "chrono");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "NaiveDate");
_s
}quote::quote!(diesel::internal::derives::multiconnection::chrono::NaiveDate),
1012 ),
1013 (
1014 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "sql_types");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Time");
_s
}quote::quote!(diesel::sql_types::Time),
1015 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "derives");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multiconnection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "chrono");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "NaiveTime");
_s
}quote::quote!(diesel::internal::derives::multiconnection::chrono::NaiveTime),
1016 ),
1017 ]
1018 .into_iter()
1019 .map(generate_from_sql_impls)
1020 .map(|p| {
1021 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "derives");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multiconnection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "expand_chrono");
::quote::__private::push_bang(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::ToTokens::to_tokens(&p, &mut _s);
_s
});
_s
}quote::quote! {
1022 diesel::internal::derives::multiconnection::expand_chrono!{#p}}
1023 });
1024 from_sql_impls.extend(chrono_impls);
1025
1026 let time_impls = [
1027 (
1028 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "sql_types");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Timestamp");
_s
}quote::quote!(diesel::sql_types::Timestamp),
1029 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "derives");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multiconnection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "time");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "PrimitiveDateTime");
_s
}quote::quote!(diesel::internal::derives::multiconnection::time::PrimitiveDateTime),
1030 ),
1031 (
1032 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "sql_types");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Time");
_s
}quote::quote!(diesel::sql_types::Time),
1033 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "derives");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multiconnection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "time");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Time");
_s
}quote::quote!(diesel::internal::derives::multiconnection::time::Time),
1034 ),
1035 (
1036 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "sql_types");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Date");
_s
}quote::quote!(diesel::sql_types::Date),
1037 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "derives");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multiconnection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "time");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Date");
_s
}quote::quote!(diesel::internal::derives::multiconnection::time::Date),
1038 ),
1039 ]
1040 .into_iter()
1041 .map(generate_from_sql_impls)
1042 .map(|p| {
1043 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "derives");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multiconnection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "expand_time");
::quote::__private::push_bang(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::ToTokens::to_tokens(&p, &mut _s);
_s
});
_s
}quote::quote! {
1044 diesel::internal::derives::multiconnection::expand_time!{ #p }
1045 }
1046 });
1047 from_sql_impls.extend(time_impls);
1048
1049 let into_bind_value_bounds = connection_types.iter().map(|c| {
1050 let ty = c.ty;
1051 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "serialize");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "ToSql");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "ST");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_lt(&mut _s);
::quote::ToTokens::to_tokens(&ty, &mut _s);
::quote::__private::push_ident(&mut _s, "as");
::quote::ToTokens::to_tokens(&conn_backend, &mut _s);
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Backend");
::quote::__private::push_gt(&mut _s);
_s
}quote::quote! {
1052 diesel::serialize::ToSql<ST, <#ty as #conn_backend>::Backend>
1053 }
1054 });
1055
1056 let has_sql_type_bounds = connection_types.iter().map(|c| {
1057 let ty = c.ty;
1058 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_lt(&mut _s);
::quote::ToTokens::to_tokens(&ty, &mut _s);
::quote::__private::push_ident(&mut _s, "as");
::quote::ToTokens::to_tokens(&conn_backend, &mut _s);
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Backend");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "sql_types");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "HasSqlType");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "ST");
::quote::__private::push_gt(&mut _s);
_s
}quote::quote! {
1059 <#ty as #conn_backend>::Backend: diesel::sql_types::HasSqlType<ST>
1060 }
1061 });
1062
1063 let multi_bind_collector_variants = connection_types.iter().map(|c| {
1064 let ident = c.name;
1065 let ty = c.ty;
1066 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::ToTokens::to_tokens(&ident, &mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_shl(&mut _s);
::quote::ToTokens::to_tokens(&ty, &mut _s);
::quote::__private::push_ident(&mut _s, "as");
::quote::ToTokens::to_tokens(&conn_backend, &mut _s);
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Backend");
::quote::__private::push_ident(&mut _s, "as");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Backend");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "BindCollector");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'a");
::quote::__private::push_gt(&mut _s);
_s
});
_s
}quote::quote! {
1067 #ident(<<#ty as #conn_backend>::Backend as diesel::backend::Backend>::BindCollector<'a>)
1068 }
1069 });
1070
1071 let multi_bind_collector_accessor = connection_types.iter().map(|c| {
1072 let ident = c.name;
1073 let lower_ident = syn::Ident::new(&c.name.to_string().to_lowercase(), c.name.span());
1074 let ty = c.ty;
1075 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "pub");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "super");
_s
});
::quote::__private::push_ident(&mut _s, "fn");
::quote::ToTokens::to_tokens(&lower_ident, &mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "mut");
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_comma(&mut _s);
_s
});
::quote::__private::push_rarrow(&mut _s);
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "mut");
::quote::__private::push_shl(&mut _s);
::quote::ToTokens::to_tokens(&ty, &mut _s);
::quote::__private::push_ident(&mut _s, "as");
::quote::ToTokens::to_tokens(&conn_backend, &mut _s);
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Backend");
::quote::__private::push_ident(&mut _s, "as");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Backend");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "BindCollector");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'a");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "match");
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::ToTokens::to_tokens(&ident, &mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "bc");
_s
});
::quote::__private::push_fat_arrow(&mut _s);
::quote::__private::push_ident(&mut _s, "bc");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_underscore(&mut _s);
::quote::__private::push_fat_arrow(&mut _s);
::quote::__private::push_ident(&mut _s, "unreachable");
::quote::__private::push_bang(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
::quote::__private::push_comma(&mut _s);
_s
});
_s
});
_s
}quote::quote! {
1076 pub(super) fn #lower_ident(
1077 &mut self,
1078 ) -> &mut <<#ty as #conn_backend>::Backend as diesel::backend::Backend>::BindCollector<'a> {
1079 match self {
1080 Self::#ident(bc) => bc,
1081 _ => unreachable!(),
1082 }
1083 }
1084
1085 }
1086
1087 });
1088
1089 let push_to_inner_collector = connection_types.iter().map(|c| {
1090 let ident = c.name;
1091 let ty = c.ty;
1092 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::ToTokens::to_tokens(&ident, &mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "bc");
_s
});
::quote::__private::push_fat_arrow(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "let");
::quote::__private::push_ident(&mut _s, "out");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "out");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "inner");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "expect");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::parse(&mut _s,
"\"This inner value is set via our custom `ToSql` impls\"");
_s
});
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "let");
::quote::__private::push_ident(&mut _s, "callback");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "out");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s,
"push_bound_value_to_collector");
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "let");
::quote::__private::push_ident(&mut _s, "value");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "out");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "value");
::quote::__private::push_semi(&mut _s);
::quote::__private::push_lt(&mut _s);
::quote::__private::push_underscore(&mut _s);
::quote::__private::push_ident(&mut _s, "as");
::quote::__private::push_ident(&mut _s,
"PushBoundValueToCollectorDB");
::quote::__private::push_shl(&mut _s);
::quote::ToTokens::to_tokens(&ty, &mut _s);
::quote::__private::push_ident(&mut _s, "as");
::quote::ToTokens::to_tokens(&conn_backend, &mut _s);
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Backend");
::quote::__private::push_shr(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "push_bound_value");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "callback");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "value");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "bc");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_lt(&mut _s);
::quote::ToTokens::to_tokens(&ty, &mut _s);
::quote::__private::push_ident(&mut _s, "as");
::quote::ToTokens::to_tokens(&multi_conn_helper, &mut _s);
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "from_any");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "metadata_lookup");
_s
});
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "expect");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::parse(&mut _s,
"\"We can downcast the metadata lookup to the right type\"");
_s
});
_s
});
::quote::__private::push_question(&mut _s);
_s
});
_s
}quote::quote! {
1093 Self::#ident(bc) => {
1094 let out = out.inner.expect("This inner value is set via our custom `ToSql` impls");
1095 let callback = out.push_bound_value_to_collector;
1096 let value = out.value;
1097 <_ as PushBoundValueToCollectorDB<<#ty as #conn_backend>::Backend>>::push_bound_value(
1098 callback,
1099 value,
1100 bc,
1101 <#ty as #multi_conn_helper>::from_any(metadata_lookup)
1102 .expect("We can downcast the metadata lookup to the right type")
1103 )?
1104 }
1105 }
1106 });
1107
1108 let push_null_to_inner_collector = connection_types
1109 .iter()
1110 .map(|c| {
1111 let ident = c.name;
1112 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::ToTokens::to_tokens(&ident, &mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "bc");
_s
});
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiTypeMetadata");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::ToTokens::to_tokens(&ident, &mut _s);
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "Some");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "metadata");
_s
});
::quote::__private::push_comma(&mut _s);
::quote::__private::push_dot2(&mut _s);
_s
});
_s
});
::quote::__private::push_fat_arrow(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "bc");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "push_null_value");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "metadata");
_s
});
::quote::__private::push_question(&mut _s);
::quote::__private::push_semi(&mut _s);
_s
});
_s
}quote::quote! {
1113 (Self::#ident(bc), super::backend::MultiTypeMetadata{ #ident: Some(metadata), .. }) => {
1114 bc.push_null_value(metadata)?;
1115 }
1116 }
1117 })
1118 .collect::<Vec<_>>();
1119
1120 let push_bound_value_super_traits = connection_types
1121 .iter()
1122 .map(|c| {
1123 let ty = c.ty;
1124 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "PushBoundValueToCollectorDB");
::quote::__private::push_shl(&mut _s);
::quote::ToTokens::to_tokens(&ty, &mut _s);
::quote::__private::push_ident(&mut _s, "as");
::quote::ToTokens::to_tokens(&conn_backend, &mut _s);
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Backend");
::quote::__private::push_gt(&mut _s);
_s
}quote::quote! {
1125 PushBoundValueToCollectorDB<<#ty as #conn_backend>::Backend>
1126 }
1127 })
1128 .collect::<Vec<_>>();
1129
1130 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "pub");
::quote::__private::push_ident(&mut _s, "enum");
::quote::__private::push_ident(&mut _s, "MultiBindCollector");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'a");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
{
use ::quote::__private::ext::*;
let has_iter = ::quote::__private::HasIterator::<false>;
#[allow(unused_mut)]
let (mut multi_bind_collector_variants, i) =
multi_bind_collector_variants.quote_into_iter();
let has_iter = has_iter | i;
<_ as
::quote::__private::CheckHasIterator<true>>::check(has_iter);
while true {
let multi_bind_collector_variants =
match multi_bind_collector_variants.next() {
Some(_x) => ::quote::__private::RepInterp(_x),
None => break,
};
::quote::ToTokens::to_tokens(&multi_bind_collector_variants,
&mut _s);
::quote::__private::push_comma(&mut _s);
}
}
_s
});
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'a");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiBindCollector");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'a");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
{
use ::quote::__private::ext::*;
let has_iter = ::quote::__private::HasIterator::<false>;
#[allow(unused_mut)]
let (mut multi_bind_collector_accessor, i) =
multi_bind_collector_accessor.quote_into_iter();
let has_iter = has_iter | i;
<_ as
::quote::__private::CheckHasIterator<true>>::check(has_iter);
while true {
let multi_bind_collector_accessor =
match multi_bind_collector_accessor.next() {
Some(_x) => ::quote::__private::RepInterp(_x),
None => break,
};
::quote::ToTokens::to_tokens(&multi_bind_collector_accessor,
&mut _s);
}
}
_s
});
::quote::__private::push_ident(&mut _s, "trait");
::quote::__private::push_ident(&mut _s, "PushBoundValueToCollectorDB");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "DB");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Backend");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "fn");
::quote::__private::push_ident(&mut _s, "push_bound_value");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'a");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'b");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'b");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "v");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s,
"InnerBindValueKind");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'a");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "collector");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "mut");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "DB");
::quote::__private::push_ident(&mut _s, "as");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Backend");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "BindCollector");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'b");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "lookup");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "mut");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "DB");
::quote::__private::push_ident(&mut _s, "as");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "sql_types");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "TypeMetadata");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MetadataLookup");
::quote::__private::push_comma(&mut _s);
_s
});
::quote::__private::push_rarrow(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "result");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryResult");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
::quote::__private::push_gt(&mut _s);
::quote::__private::push_semi(&mut _s);
_s
});
::quote::__private::push_ident(&mut _s, "struct");
::quote::__private::push_ident(&mut _s, "PushBoundValueToCollectorImpl");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "ST");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "T");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_question(&mut _s);
::quote::__private::push_ident(&mut _s, "Sized");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "p");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "std");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "marker");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "PhantomData");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "ST");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "T");
_s
});
::quote::__private::push_gt(&mut _s);
_s
});
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "ST");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "T");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "DB");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "PushBoundValueToCollectorDB");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "DB");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "for");
::quote::__private::push_ident(&mut _s, "PushBoundValueToCollectorImpl");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "ST");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "T");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "where");
::quote::__private::push_ident(&mut _s, "DB");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Backend");
::quote::__private::push_add(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "sql_types");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "HasSqlType");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "ST");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "T");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "serialize");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "ToSql");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "ST");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "DB");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_add(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'static");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "Option");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "T");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "serialize");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "ToSql");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "sql_types");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Nullable");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "ST");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "DB");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_add(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'static");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "ST");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "sql_types");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "SqlType");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "fn");
::quote::__private::push_ident(&mut _s, "push_bound_value");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'a");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'b");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'b");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "v");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s,
"InnerBindValueKind");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'a");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "collector");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "mut");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "DB");
::quote::__private::push_ident(&mut _s, "as");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Backend");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "BindCollector");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'b");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "lookup");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "mut");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "DB");
::quote::__private::push_ident(&mut _s, "as");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "sql_types");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "TypeMetadata");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MetadataLookup");
::quote::__private::push_comma(&mut _s);
_s
});
::quote::__private::push_rarrow(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "result");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryResult");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "use");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "BindCollector");
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "match");
::quote::__private::push_ident(&mut _s, "v");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s,
"InnerBindValueKind");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Sized");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "v");
_s
});
::quote::__private::push_fat_arrow(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "let");
::quote::__private::push_ident(&mut _s, "v");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "v");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "downcast_ref");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "T");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "expect");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::parse(&mut _s,
"\"We know the type statically here\"");
_s
});
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "collector");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "push_bound_value");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "ST");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "T");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "v");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "lookup");
_s
});
_s
});
::quote::__private::push_ident(&mut _s,
"InnerBindValueKind");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Null");
::quote::__private::push_fat_arrow(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "collector");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "push_bound_value");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "sql_types");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Nullable");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "ST");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "Option");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "T");
::quote::__private::push_shr(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "None");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "lookup");
_s
});
_s
});
::quote::__private::push_comma(&mut _s);
::quote::__private::push_underscore(&mut _s);
::quote::__private::push_fat_arrow(&mut _s);
::quote::__private::push_ident(&mut _s, "unreachable");
::quote::__private::push_bang(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::parse(&mut _s,
"\"We set the value to `InnerBindValueKind::Sized` or `InnerBindValueKind::Null`\"");
_s
});
_s
});
_s
});
_s
});
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "DB");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "PushBoundValueToCollectorDB");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "DB");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "for");
::quote::__private::push_ident(&mut _s, "PushBoundValueToCollectorImpl");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "sql_types");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Text");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "str");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "where");
::quote::__private::push_ident(&mut _s, "DB");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Backend");
::quote::__private::push_add(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "sql_types");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "HasSqlType");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "sql_types");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Text");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "str");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "serialize");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "ToSql");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "sql_types");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Text");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "DB");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_add(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'static");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "fn");
::quote::__private::push_ident(&mut _s, "push_bound_value");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'a");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'b");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'b");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "v");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s,
"InnerBindValueKind");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'a");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "collector");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "mut");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "DB");
::quote::__private::push_ident(&mut _s, "as");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Backend");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "BindCollector");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'b");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "lookup");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "mut");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "DB");
::quote::__private::push_ident(&mut _s, "as");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "sql_types");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "TypeMetadata");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MetadataLookup");
::quote::__private::push_comma(&mut _s);
_s
});
::quote::__private::push_rarrow(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "result");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryResult");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "use");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "BindCollector");
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "if");
::quote::__private::push_ident(&mut _s, "let");
::quote::__private::push_ident(&mut _s,
"InnerBindValueKind");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Str");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "v");
_s
});
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "v");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "collector");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "push_bound_value");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "sql_types");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Text");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "str");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "v");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "lookup");
_s
});
_s
});
::quote::__private::push_ident(&mut _s, "else");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "unreachable");
::quote::__private::push_bang(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::parse(&mut _s,
"\"We set the value to `InnerBindValueKind::Str`\"");
_s
});
_s
});
_s
});
_s
});
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "DB");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "PushBoundValueToCollectorDB");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "DB");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "for");
::quote::__private::push_ident(&mut _s, "PushBoundValueToCollectorImpl");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "sql_types");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Binary");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Bracket,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "u8");
_s
});
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "where");
::quote::__private::push_ident(&mut _s, "DB");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Backend");
::quote::__private::push_add(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "sql_types");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "HasSqlType");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "sql_types");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Binary");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Bracket,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "u8");
_s
});
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "serialize");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "ToSql");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "sql_types");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Binary");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "DB");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_add(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'static");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "fn");
::quote::__private::push_ident(&mut _s, "push_bound_value");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'a");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'b");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'b");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "v");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s,
"InnerBindValueKind");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'a");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "collector");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "mut");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "DB");
::quote::__private::push_ident(&mut _s, "as");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Backend");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "BindCollector");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'b");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "lookup");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "mut");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "DB");
::quote::__private::push_ident(&mut _s, "as");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "sql_types");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "TypeMetadata");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MetadataLookup");
::quote::__private::push_comma(&mut _s);
_s
});
::quote::__private::push_rarrow(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "result");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryResult");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "use");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "BindCollector");
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "if");
::quote::__private::push_ident(&mut _s, "let");
::quote::__private::push_ident(&mut _s,
"InnerBindValueKind");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Bytes");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "v");
_s
});
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "v");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "collector");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "push_bound_value");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "sql_types");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Binary");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Bracket,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "u8");
_s
});
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "v");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "lookup");
_s
});
_s
});
::quote::__private::push_ident(&mut _s, "else");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "unreachable");
::quote::__private::push_bang(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::parse(&mut _s,
"\"We set the value to `InnerBindValueKind::Binary`\"");
_s
});
_s
});
_s
});
_s
});
::quote::__private::push_ident(&mut _s, "trait");
::quote::__private::push_ident(&mut _s, "PushBoundValueToCollector");
::quote::__private::push_colon(&mut _s);
{
use ::quote::__private::ext::*;
let has_iter = ::quote::__private::HasIterator::<false>;
#[allow(unused_mut)]
let (mut push_bound_value_super_traits, i) =
push_bound_value_super_traits.quote_into_iter();
let has_iter = has_iter | i;
<_ as ::quote::__private::CheckHasIterator<true>>::check(has_iter);
while true {
let push_bound_value_super_traits =
match push_bound_value_super_traits.next() {
Some(_x) => ::quote::__private::RepInterp(_x),
None => break,
};
::quote::ToTokens::to_tokens(&push_bound_value_super_traits,
&mut _s);
::quote::__private::push_add(&mut _s);
}
}
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
::quote::__private::TokenStream::new());
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "T");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "PushBoundValueToCollector");
::quote::__private::push_ident(&mut _s, "for");
::quote::__private::push_ident(&mut _s, "T");
::quote::__private::push_ident(&mut _s, "where");
::quote::__private::push_ident(&mut _s, "T");
::quote::__private::push_colon(&mut _s);
{
use ::quote::__private::ext::*;
let has_iter = ::quote::__private::HasIterator::<false>;
#[allow(unused_mut)]
let (mut push_bound_value_super_traits, i) =
push_bound_value_super_traits.quote_into_iter();
let has_iter = has_iter | i;
<_ as ::quote::__private::CheckHasIterator<true>>::check(has_iter);
while true {
let push_bound_value_super_traits =
match push_bound_value_super_traits.next() {
Some(_x) => ::quote::__private::RepInterp(_x),
None => break,
};
::quote::ToTokens::to_tokens(&push_bound_value_super_traits,
&mut _s);
::quote::__private::push_add(&mut _s);
}
}
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
::quote::__private::TokenStream::new());
::quote::__private::push_pound(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Bracket,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "derive");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "Default");
_s
});
_s
});
::quote::__private::push_ident(&mut _s, "pub");
::quote::__private::push_ident(&mut _s, "struct");
::quote::__private::push_ident(&mut _s, "BindValue");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'a");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "inner");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "Option");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "InnerBindValue");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'a");
::quote::__private::push_shr(&mut _s);
_s
});
::quote::__private::push_ident(&mut _s, "struct");
::quote::__private::push_ident(&mut _s, "InnerBindValue");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'a");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "value");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "InnerBindValueKind");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'a");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s,
"push_bound_value_to_collector");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_and(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'static");
::quote::__private::push_ident(&mut _s, "dyn");
::quote::__private::push_ident(&mut _s,
"PushBoundValueToCollector");
_s
});
::quote::__private::push_ident(&mut _s, "enum");
::quote::__private::push_ident(&mut _s, "InnerBindValueKind");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'a");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "Sized");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_and(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'a");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "dyn");
::quote::__private::push_ident(&mut _s, "std");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "any");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Any");
::quote::__private::push_add(&mut _s);
::quote::__private::push_ident(&mut _s, "std");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "marker");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Send");
::quote::__private::push_add(&mut _s);
::quote::__private::push_ident(&mut _s, "std");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "marker");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Sync");
_s
});
_s
});
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "Str");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_and(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'a");
::quote::__private::push_ident(&mut _s, "str");
_s
});
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "Bytes");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_and(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'a");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Bracket,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "u8");
_s
});
_s
});
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "Null");
::quote::__private::push_comma(&mut _s);
_s
});
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'a");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "From");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "sql_types");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Text");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_and(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'a");
::quote::__private::push_ident(&mut _s, "str");
_s
});
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "for");
::quote::__private::push_ident(&mut _s, "BindValue");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'a");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "fn");
::quote::__private::push_ident(&mut _s, "from");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_underscore(&mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "v");
_s
});
::quote::__private::push_colon(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "sql_types");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Text");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_and(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'a");
::quote::__private::push_ident(&mut _s, "str");
_s
});
_s
});
::quote::__private::push_rarrow(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "inner");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "Some");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "InnerBindValue");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "value");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s,
"InnerBindValueKind");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Str");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "v");
_s
});
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s,
"push_bound_value_to_collector");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s,
"PushBoundValueToCollectorImpl");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "p");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "std");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "marker");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "PhantomData");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_lt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "sql_types");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Text");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "str");
_s
});
::quote::__private::push_gt(&mut _s);
_s
});
_s
});
_s
});
_s
});
_s
});
_s
});
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'a");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "From");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "sql_types");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Binary");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_and(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'a");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Bracket,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "u8");
_s
});
_s
});
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "for");
::quote::__private::push_ident(&mut _s, "BindValue");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'a");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "fn");
::quote::__private::push_ident(&mut _s, "from");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_underscore(&mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "v");
_s
});
::quote::__private::push_colon(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "sql_types");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Binary");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_and(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'a");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Bracket,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "u8");
_s
});
_s
});
_s
});
::quote::__private::push_rarrow(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "inner");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "Some");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "InnerBindValue");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "value");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s,
"InnerBindValueKind");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Bytes");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "v");
_s
});
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s,
"push_bound_value_to_collector");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s,
"PushBoundValueToCollectorImpl");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "p");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "std");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "marker");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "PhantomData");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_lt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "sql_types");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Binary");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Bracket,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "u8");
_s
});
_s
});
::quote::__private::push_gt(&mut _s);
_s
});
_s
});
_s
});
_s
});
_s
});
_s
});
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'a");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "T");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "ST");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "From");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "ST");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_and(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'a");
::quote::__private::push_ident(&mut _s, "T");
_s
});
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "for");
::quote::__private::push_ident(&mut _s, "BindValue");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'a");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "where");
::quote::__private::push_ident(&mut _s, "T");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "std");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "any");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Any");
{
use ::quote::__private::ext::*;
let has_iter = ::quote::__private::HasIterator::<false>;
#[allow(unused_mut)]
let (mut into_bind_value_bounds, i) =
into_bind_value_bounds.quote_into_iter();
let has_iter = has_iter | i;
<_ as ::quote::__private::CheckHasIterator<true>>::check(has_iter);
while true {
let into_bind_value_bounds =
match into_bind_value_bounds.next() {
Some(_x) => ::quote::__private::RepInterp(_x),
None => break,
};
::quote::__private::push_add(&mut _s);
::quote::ToTokens::to_tokens(&into_bind_value_bounds, &mut _s);
}
}
::quote::__private::push_add(&mut _s);
::quote::__private::push_ident(&mut _s, "Send");
::quote::__private::push_add(&mut _s);
::quote::__private::push_ident(&mut _s, "Sync");
::quote::__private::push_add(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'static");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "ST");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "Send");
::quote::__private::push_add(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "sql_types");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "SqlType");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "IsNull");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "sql_types");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "is_nullable");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "NotNull");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_add(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'static");
::quote::__private::push_comma(&mut _s);
{
use ::quote::__private::ext::*;
let has_iter = ::quote::__private::HasIterator::<false>;
#[allow(unused_mut)]
let (mut has_sql_type_bounds, i) =
has_sql_type_bounds.quote_into_iter();
let has_iter = has_iter | i;
<_ as ::quote::__private::CheckHasIterator<true>>::check(has_iter);
while true {
let has_sql_type_bounds =
match has_sql_type_bounds.next() {
Some(_x) => ::quote::__private::RepInterp(_x),
None => break,
};
::quote::ToTokens::to_tokens(&has_sql_type_bounds, &mut _s);
::quote::__private::push_comma(&mut _s);
}
}
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "fn");
::quote::__private::push_ident(&mut _s, "from");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_underscore(&mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "v");
_s
});
::quote::__private::push_colon(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "ST");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_and(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'a");
::quote::__private::push_ident(&mut _s, "T");
_s
});
_s
});
::quote::__private::push_rarrow(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "inner");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "Some");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "InnerBindValue");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "value");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s,
"InnerBindValueKind");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Sized");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "v");
_s
});
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s,
"push_bound_value_to_collector");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s,
"PushBoundValueToCollectorImpl");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "p");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "std");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "marker");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "PhantomData");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_lt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "ST");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "T");
_s
});
::quote::__private::push_gt(&mut _s);
_s
});
_s
});
_s
});
_s
});
_s
});
_s
});
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'a");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "BindCollector");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'a");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "for");
::quote::__private::push_ident(&mut _s, "MultiBindCollector");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'a");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "type");
::quote::__private::push_ident(&mut _s, "Buffer");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "multi_connection_impl");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "bind_collector");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "BindValue");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'a");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "fn");
::quote::__private::push_ident(&mut _s, "push_bound_value");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "T");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "U");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "mut");
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "bind");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_and(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'a");
::quote::__private::push_ident(&mut _s, "U");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "metadata_lookup");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "mut");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "dyn");
::quote::__private::push_ident(&mut _s, "std");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "any");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Any");
::quote::__private::push_add(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'static");
_s
});
::quote::__private::push_comma(&mut _s);
_s
});
::quote::__private::push_rarrow(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryResult");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "where");
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "sql_types");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "HasSqlType");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "T");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "U");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "serialize");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "ToSql");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "T");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_add(&mut _s);
::quote::__private::push_question(&mut _s);
::quote::__private::push_ident(&mut _s, "Sized");
::quote::__private::push_add(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'a");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "let");
::quote::__private::push_ident(&mut _s, "out");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "let");
::quote::__private::push_ident(&mut _s, "out");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s,
"multi_connection_impl");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "bind_collector");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "BindValue");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "default");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "let");
::quote::__private::push_ident(&mut _s, "mut");
::quote::__private::push_ident(&mut _s, "out");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "serialize");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Output");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "new");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "out");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "metadata_lookup");
_s
});
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "let");
::quote::__private::push_ident(&mut _s, "bind_is_null");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "bind");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "to_sql");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "mut");
::quote::__private::push_ident(&mut _s, "out");
_s
});
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "map_err");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "result");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Error");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s,
"SerializationError");
_s
});
::quote::__private::push_question(&mut _s);
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "if");
::quote::__private::push_ident(&mut _s, "matches");
::quote::__private::push_bang(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "bind_is_null");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "serialize");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "IsNull");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Yes");
_s
});
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "let");
::quote::__private::push_ident(&mut _s, "metadata");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_ident(&mut _s, "as");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "sql_types");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "HasSqlType");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "T");
::quote::__private::push_shr(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "metadata");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "metadata_lookup");
_s
});
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "match");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "metadata");
_s
});
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
{
use ::quote::__private::ext::*;
let has_iter = ::quote::__private::HasIterator::<false>;
#[allow(unused_mut)]
let (mut push_null_to_inner_collector, i) =
push_null_to_inner_collector.quote_into_iter();
let has_iter = has_iter | i;
<_ as
::quote::__private::CheckHasIterator<true>>::check(has_iter);
while true {
let push_null_to_inner_collector =
match push_null_to_inner_collector.next() {
Some(_x) => ::quote::__private::RepInterp(_x),
None => break,
};
::quote::ToTokens::to_tokens(&push_null_to_inner_collector,
&mut _s);
}
}
::quote::__private::push_underscore(&mut _s);
::quote::__private::push_fat_arrow(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "unreachable");
::quote::__private::push_bang(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::parse(&mut _s,
"\"We have matching metadata\"");
_s
});
_s
});
::quote::__private::push_comma(&mut _s);
_s
});
::quote::__private::push_ident(&mut _s, "return");
::quote::__private::push_ident(&mut _s, "Ok");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
_s
});
::quote::__private::push_semi(&mut _s);
_s
});
::quote::__private::push_ident(&mut _s, "else");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "out");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "into_inner");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
_s
});
_s
});
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "match");
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
{
use ::quote::__private::ext::*;
let has_iter = ::quote::__private::HasIterator::<false>;
#[allow(unused_mut)]
let (mut push_to_inner_collector, i) =
push_to_inner_collector.quote_into_iter();
let has_iter = has_iter | i;
<_ as
::quote::__private::CheckHasIterator<true>>::check(has_iter);
while true {
let push_to_inner_collector =
match push_to_inner_collector.next() {
Some(_x) => ::quote::__private::RepInterp(_x),
None => break,
};
::quote::ToTokens::to_tokens(&push_to_inner_collector,
&mut _s);
}
}
_s
});
::quote::__private::push_ident(&mut _s, "Ok");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
_s
});
_s
});
::quote::__private::push_ident(&mut _s, "fn");
::quote::__private::push_ident(&mut _s, "push_null_value");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "mut");
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "metadata");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s,
"MultiTypeMetadata");
_s
});
::quote::__private::push_rarrow(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryResult");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "match");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "metadata");
_s
});
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
{
use ::quote::__private::ext::*;
let has_iter = ::quote::__private::HasIterator::<false>;
#[allow(unused_mut)]
let (mut push_null_to_inner_collector, i) =
push_null_to_inner_collector.quote_into_iter();
let has_iter = has_iter | i;
<_ as
::quote::__private::CheckHasIterator<true>>::check(has_iter);
while true {
let push_null_to_inner_collector =
match push_null_to_inner_collector.next() {
Some(_x) => ::quote::__private::RepInterp(_x),
None => break,
};
::quote::ToTokens::to_tokens(&push_null_to_inner_collector,
&mut _s);
}
}
::quote::__private::push_underscore(&mut _s);
::quote::__private::push_fat_arrow(&mut _s);
::quote::__private::push_ident(&mut _s, "unreachable");
::quote::__private::push_bang(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::parse(&mut _s,
"\"We have matching metadata\"");
_s
});
::quote::__private::push_comma(&mut _s);
_s
});
::quote::__private::push_ident(&mut _s, "Ok");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
_s
});
_s
});
_s
});
{
use ::quote::__private::ext::*;
let has_iter = ::quote::__private::HasIterator::<false>;
#[allow(unused_mut)]
let (mut to_sql_impls, i) = to_sql_impls.quote_into_iter();
let has_iter = has_iter | i;
<_ as ::quote::__private::CheckHasIterator<true>>::check(has_iter);
while true {
let to_sql_impls =
match to_sql_impls.next() {
Some(_x) => ::quote::__private::RepInterp(_x),
None => break,
};
::quote::ToTokens::to_tokens(&to_sql_impls, &mut _s);
}
}
{
use ::quote::__private::ext::*;
let has_iter = ::quote::__private::HasIterator::<false>;
#[allow(unused_mut)]
let (mut from_sql_impls, i) = from_sql_impls.quote_into_iter();
let has_iter = has_iter | i;
<_ as ::quote::__private::CheckHasIterator<true>>::check(has_iter);
while true {
let from_sql_impls =
match from_sql_impls.next() {
Some(_x) => ::quote::__private::RepInterp(_x),
None => break,
};
::quote::ToTokens::to_tokens(&from_sql_impls, &mut _s);
}
}
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "T");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "ST");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "derives");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multiconnection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "EnumMapping");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "for");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "derives");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multiconnection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "IntMapping");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "T");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "ST");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "where");
::quote::__private::push_ident(&mut _s, "ST");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "Default");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "T");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "deserialize");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "FromSql");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "ST");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_add(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'static");
::quote::__private::push_add(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "derives");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multiconnection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "IntegerMappingHelper");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "for");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'a");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "BindValue");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'a");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "From");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "ST");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_and(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'a");
::quote::__private::push_ident(&mut _s, "T");
_s
});
::quote::__private::push_gt(&mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "i128");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "TryFrom");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "T");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "Error");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "core");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "fmt");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Display");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "fn");
::quote::__private::push_ident(&mut _s, "map_to_database_value");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'b");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "output");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "mut");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "serialize");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Output");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'b");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'_");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "variant");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_and(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'static");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "derives");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multiconnection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "EnumVariant");
::quote::__private::push_comma(&mut _s);
_s
});
::quote::__private::push_rarrow(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "serialize");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Result");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "let");
::quote::__private::push_ident(&mut _s, "v");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "T");
::quote::__private::push_ident(&mut _s, "as");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "derives");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multiconnection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s,
"IntegerMappingHelper");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "as_ref");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "variant");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "discriminant");
_s
});
::quote::__private::push_question(&mut _s);
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "output");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "set_value");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "ST");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "default");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "v");
_s
});
_s
});
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "Ok");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "serialize");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "IsNull");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "No");
_s
});
_s
});
::quote::__private::push_ident(&mut _s, "fn");
::quote::__private::push_ident(&mut _s,
"map_from_database_value");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "raw");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_ident(&mut _s, "as");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Backend");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "RawValue");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'_");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "type_name");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_and(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'static");
::quote::__private::push_ident(&mut _s, "str");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "variants");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_and(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'static");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Bracket,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "derives");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multiconnection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "EnumVariant");
_s
});
::quote::__private::push_comma(&mut _s);
_s
});
::quote::__private::push_rarrow(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "deserialize");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Result");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "usize");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "let");
::quote::__private::push_ident(&mut _s, "i");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "T");
::quote::__private::push_ident(&mut _s, "as");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "deserialize");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "FromSql");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "ST");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_shr(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "from_sql");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "raw");
_s
});
::quote::__private::push_question(&mut _s);
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s,
"from_discriminant");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "type_name");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "variants");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "i");
_s
});
_s
});
_s
});
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "derives");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multiconnection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "EnumMapping");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "for");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "derives");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multiconnection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "StringMapping");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "fn");
::quote::__private::push_ident(&mut _s, "map_to_database_value");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'b");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "output");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "mut");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "serialize");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Output");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'b");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'_");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "variant");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_and(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'static");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "derives");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multiconnection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "EnumVariant");
::quote::__private::push_comma(&mut _s);
_s
});
::quote::__private::push_rarrow(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "serialize");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Result");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_lt(&mut _s);
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "str");
::quote::__private::push_ident(&mut _s, "as");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "serialize");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "ToSql");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "sql_types");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Text");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_shr(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "to_sql");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "variant");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "sql_name");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "output");
::quote::__private::push_comma(&mut _s);
_s
});
_s
});
::quote::__private::push_ident(&mut _s, "fn");
::quote::__private::push_ident(&mut _s,
"map_from_database_value");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "raw");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_ident(&mut _s, "as");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Backend");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "RawValue");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'_");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "type_name");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_and(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'static");
::quote::__private::push_ident(&mut _s, "str");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "variants");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_and(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'static");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Bracket,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "derives");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multiconnection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "EnumVariant");
_s
});
::quote::__private::push_comma(&mut _s);
_s
});
::quote::__private::push_rarrow(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "deserialize");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Result");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "usize");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "let");
::quote::__private::push_ident(&mut _s, "s");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "String");
::quote::__private::push_ident(&mut _s, "as");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "deserialize");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "FromSql");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "sql_types");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Text");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_shr(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "from_sql");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "raw");
_s
});
::quote::__private::push_question(&mut _s);
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s,
"from_variant_name");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "type_name");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "variants");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "s");
_s
});
_s
});
_s
});
_s
}quote::quote! {
1131 pub enum MultiBindCollector<'a> {
1132 #(#multi_bind_collector_variants,)*
1133 }
1134
1135 impl<'a> MultiBindCollector<'a> {
1136 #(#multi_bind_collector_accessor)*
1137 }
1138
1139 trait PushBoundValueToCollectorDB<DB: diesel::backend::Backend> {
1140 fn push_bound_value<'a: 'b, 'b>(
1141 &self,
1142 v: InnerBindValueKind<'a>,
1143 collector: &mut <DB as diesel::backend::Backend>::BindCollector<'b>,
1144 lookup: &mut <DB as diesel::sql_types::TypeMetadata>::MetadataLookup,
1145 ) -> diesel::result::QueryResult<()>;
1146 }
1147
1148 struct PushBoundValueToCollectorImpl<ST, T: ?Sized> {
1149 p: std::marker::PhantomData<(ST, T)>
1150 }
1151
1152 impl<ST, T, DB> PushBoundValueToCollectorDB<DB> for PushBoundValueToCollectorImpl<ST, T>
1156 where DB: diesel::backend::Backend
1157 + diesel::sql_types::HasSqlType<ST>,
1158 T: diesel::serialize::ToSql<ST, DB> + 'static,
1159 Option<T>: diesel::serialize::ToSql<diesel::sql_types::Nullable<ST>, DB> + 'static,
1160 ST: diesel::sql_types::SqlType,
1161 {
1162 fn push_bound_value<'a: 'b, 'b>(
1163 &self,
1164 v: InnerBindValueKind<'a>,
1165 collector: &mut <DB as diesel::backend::Backend>::BindCollector<'b>,
1166 lookup: &mut <DB as diesel::sql_types::TypeMetadata>::MetadataLookup,
1167 ) -> diesel::result::QueryResult<()> {
1168 use diesel::query_builder::BindCollector;
1169 match v {
1170 InnerBindValueKind::Sized(v) => {
1171 let v = v.downcast_ref::<T>().expect("We know the type statically here");
1172 collector.push_bound_value::<ST, T>(v, lookup)
1173 }
1174 InnerBindValueKind::Null => {
1175 collector.push_bound_value::<diesel::sql_types::Nullable<ST>, Option<T>>(&None, lookup)
1176 },
1177 _ => unreachable!("We set the value to `InnerBindValueKind::Sized` or `InnerBindValueKind::Null`")
1178 }
1179 }
1180 }
1181
1182 impl<DB> PushBoundValueToCollectorDB<DB> for PushBoundValueToCollectorImpl<diesel::sql_types::Text, str>
1183 where DB: diesel::backend::Backend + diesel::sql_types::HasSqlType<diesel::sql_types::Text>,
1184 str: diesel::serialize::ToSql<diesel::sql_types::Text, DB> + 'static,
1185 {
1186 fn push_bound_value<'a: 'b, 'b>(
1187 &self,
1188 v: InnerBindValueKind<'a>,
1189 collector: &mut <DB as diesel::backend::Backend>::BindCollector<'b>,
1190 lookup: &mut <DB as diesel::sql_types::TypeMetadata>::MetadataLookup,
1191 ) -> diesel::result::QueryResult<()> {
1192 use diesel::query_builder::BindCollector;
1193 if let InnerBindValueKind::Str(v) = v {
1194 collector.push_bound_value::<diesel::sql_types::Text, str>(v, lookup)
1195 } else {
1196 unreachable!("We set the value to `InnerBindValueKind::Str`")
1197 }
1198 }
1199 }
1200
1201 impl<DB> PushBoundValueToCollectorDB<DB> for PushBoundValueToCollectorImpl<diesel::sql_types::Binary, [u8]>
1202 where DB: diesel::backend::Backend + diesel::sql_types::HasSqlType<diesel::sql_types::Binary>,
1203 [u8]: diesel::serialize::ToSql<diesel::sql_types::Binary, DB> + 'static,
1204 {
1205 fn push_bound_value<'a: 'b, 'b>(
1206 &self,
1207 v: InnerBindValueKind<'a>,
1208 collector: &mut <DB as diesel::backend::Backend>::BindCollector<'b>,
1209 lookup: &mut <DB as diesel::sql_types::TypeMetadata>::MetadataLookup,
1210 ) -> diesel::result::QueryResult<()> {
1211 use diesel::query_builder::BindCollector;
1212 if let InnerBindValueKind::Bytes(v) = v {
1213 collector.push_bound_value::<diesel::sql_types::Binary, [u8]>(v, lookup)
1214 } else {
1215 unreachable!("We set the value to `InnerBindValueKind::Binary`")
1216 }
1217 }
1218 }
1219
1220 trait PushBoundValueToCollector: #(#push_bound_value_super_traits +)* {}
1221
1222 impl<T> PushBoundValueToCollector for T
1223 where T: #(#push_bound_value_super_traits + )* {}
1224
1225 #[derive(Default)]
1226 pub struct BindValue<'a> {
1227 inner: Option<InnerBindValue<'a>>
1230 }
1231
1232 struct InnerBindValue<'a> {
1233 value: InnerBindValueKind<'a>,
1234 push_bound_value_to_collector: &'static dyn PushBoundValueToCollector
1235 }
1236
1237 enum InnerBindValueKind<'a> {
1238 Sized(&'a (dyn std::any::Any + std::marker::Send + std::marker::Sync)),
1239 Str(&'a str),
1240 Bytes(&'a [u8]),
1241 Null,
1242 }
1243
1244 impl<'a> From<(diesel::sql_types::Text, &'a str)> for BindValue<'a> {
1245 fn from((_, v): (diesel::sql_types::Text, &'a str)) -> Self {
1246 Self {
1247 inner: Some(InnerBindValue{
1248 value: InnerBindValueKind::Str(v),
1249 push_bound_value_to_collector: &PushBoundValueToCollectorImpl {
1250 p: std::marker::PhantomData::<(diesel::sql_types::Text, str)>
1251 }
1252 })
1253 }
1254 }
1255 }
1256
1257 impl<'a> From<(diesel::sql_types::Binary, &'a [u8])> for BindValue<'a> {
1258 fn from((_, v): (diesel::sql_types::Binary, &'a [u8])) -> Self {
1259 Self {
1260 inner: Some(InnerBindValue {
1261 value: InnerBindValueKind::Bytes(v),
1262 push_bound_value_to_collector: &PushBoundValueToCollectorImpl {
1263 p: std::marker::PhantomData::<(diesel::sql_types::Binary, [u8])>
1264 }
1265 })
1266 }
1267 }
1268 }
1269
1270 impl<'a, T, ST> From<(ST, &'a T)> for BindValue<'a>
1271 where
1272 T: std::any::Any #(+ #into_bind_value_bounds)* + Send + Sync + 'static,
1273 ST: Send + diesel::sql_types::SqlType<IsNull = diesel::sql_types::is_nullable::NotNull> + 'static,
1274 #(#has_sql_type_bounds,)*
1275 {
1276 fn from((_, v): (ST, &'a T)) -> Self {
1277 Self {
1278 inner: Some(InnerBindValue{
1279 value: InnerBindValueKind::Sized(v),
1280 push_bound_value_to_collector: &PushBoundValueToCollectorImpl {
1281 p: std::marker::PhantomData::<(ST, T)>
1282 }
1283 })
1284 }
1285 }
1286 }
1287
1288 impl<'a> diesel::query_builder::BindCollector<'a, MultiBackend> for MultiBindCollector<'a> {
1289 type Buffer = multi_connection_impl::bind_collector::BindValue<'a>;
1290
1291 fn push_bound_value<T, U>(
1292 &mut self,
1293 bind: &'a U,
1294 metadata_lookup: &mut (dyn std::any::Any + 'static),
1295 ) -> diesel::QueryResult<()>
1296 where
1297 MultiBackend: diesel::sql_types::HasSqlType<T>,
1298 U: diesel::serialize::ToSql<T, MultiBackend> + ?Sized + 'a,
1299 {
1300 let out = {
1301 let out = multi_connection_impl::bind_collector::BindValue::default();
1302 let mut out =
1303 diesel::serialize::Output::<MultiBackend>::new(out, metadata_lookup);
1304 let bind_is_null = bind.to_sql(&mut out).map_err(diesel::result::Error::SerializationError)?;
1305 if matches!(bind_is_null, diesel::serialize::IsNull::Yes) {
1306 let metadata = <MultiBackend as diesel::sql_types::HasSqlType<T>>::metadata(metadata_lookup);
1312 match (self, metadata) {
1313 #(#push_null_to_inner_collector)*
1314 _ => {
1315 unreachable!("We have matching metadata")
1316 },
1317 }
1318 return Ok(());
1319 } else {
1320 out.into_inner()
1321 }
1322 };
1323 match self {
1324 #(#push_to_inner_collector)*
1325 }
1326
1327 Ok(())
1328 }
1329
1330 fn push_null_value(&mut self, metadata: super::backend::MultiTypeMetadata) -> diesel::QueryResult<()> {
1331 match (self, metadata) {
1332 #(#push_null_to_inner_collector)*
1333 _ => unreachable!("We have matching metadata"),
1334 }
1335 Ok(())
1336 }
1337 }
1338
1339 #(#to_sql_impls)*
1340 #(#from_sql_impls)*
1341
1342 impl<T, ST> diesel::internal::derives::multiconnection::EnumMapping<super::MultiBackend> for diesel::internal::derives::multiconnection::IntMapping<T, ST>
1343 where
1344 ST: Default,
1345 T: diesel::deserialize::FromSql<ST, super::MultiBackend> + 'static + diesel::internal::derives::multiconnection::IntegerMappingHelper,
1346 for<'a> BindValue<'a>: From<(ST, &'a T)>,
1347 i128: TryFrom<T, Error: core::fmt::Display>,
1348 {
1349 fn map_to_database_value<'b>(
1350 output: &mut diesel::serialize::Output<'b, '_, super::MultiBackend>,
1351 variant: &'static diesel::internal::derives::multiconnection::EnumVariant,
1352 ) -> diesel::serialize::Result {
1353 let v = <T as diesel::internal::derives::multiconnection::IntegerMappingHelper>::as_ref(&variant.discriminant)?;
1354 output.set_value((ST::default(), v));
1355 Ok(diesel::serialize::IsNull::No)
1356 }
1357
1358 fn map_from_database_value(
1359 raw: <super::MultiBackend as diesel::backend::Backend>::RawValue<'_>,
1360 type_name: &'static str,
1361 variants: &'static [diesel::internal::derives::multiconnection::EnumVariant],
1362 ) -> diesel::deserialize::Result<usize> {
1363 let i = <T as diesel::deserialize::FromSql<ST, super::MultiBackend>>::from_sql(raw)?;
1364 Self::from_discriminant(type_name, variants, i)
1365 }
1366 }
1367
1368 impl diesel::internal::derives::multiconnection::EnumMapping<super::MultiBackend> for diesel::internal::derives::multiconnection::StringMapping {
1369 fn map_to_database_value<'b>(
1370 output: &mut diesel::serialize::Output<'b, '_, super::MultiBackend>,
1371 variant: &'static diesel::internal::derives::multiconnection::EnumVariant,
1372 ) -> diesel::serialize::Result {
1373 <&str as diesel::serialize::ToSql<diesel::sql_types::Text, super::MultiBackend>>::to_sql(
1374 &variant.sql_name,
1375 output,
1376 )
1377 }
1378
1379 fn map_from_database_value(
1380 raw: <super::MultiBackend as diesel::backend::Backend>::RawValue<'_>,
1381 type_name: &'static str,
1382 variants: &'static [diesel::internal::derives::multiconnection::EnumVariant],
1383 ) -> diesel::deserialize::Result<usize> {
1384 let s = <String as diesel::deserialize::FromSql<diesel::sql_types::Text, super::MultiBackend>>::from_sql(raw)?;
1385 Self::from_variant_name(type_name, variants, &s)
1386 }
1387 }
1388
1389 }
1390}
1391
1392fn generate_has_sql_type_impls(sql_type: TokenStream) -> TokenStream {
1393 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "sql_types");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "HasSqlType");
::quote::__private::push_lt(&mut _s);
::quote::ToTokens::to_tokens(&sql_type, &mut _s);
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "for");
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "fn");
::quote::__private::push_ident(&mut _s, "metadata");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "lookup");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "mut");
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MetadataLookup");
_s
});
::quote::__private::push_rarrow(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "TypeMetadata");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "lookup_sql_type");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_lt(&mut _s);
::quote::ToTokens::to_tokens(&sql_type, &mut _s);
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "lookup");
_s
});
_s
});
_s
});
_s
}quote::quote! {
1394 impl diesel::sql_types::HasSqlType<#sql_type> for super::MultiBackend {
1395 fn metadata(lookup: &mut Self::MetadataLookup) -> Self::TypeMetadata {
1396 Self::lookup_sql_type::<#sql_type>(lookup)
1397 }
1398 }
1399 }
1400}
1401
1402fn generate_from_sql_impls((sql_type, tpe): (TokenStream, TokenStream)) -> TokenStream {
1403 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "deserialize");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "FromSql");
::quote::__private::push_lt(&mut _s);
::quote::ToTokens::to_tokens(&sql_type, &mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "for");
::quote::ToTokens::to_tokens(&tpe, &mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "fn");
::quote::__private::push_ident(&mut _s, "from_sql");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "bytes");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_ident(&mut _s, "as");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Backend");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "RawValue");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'_");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_comma(&mut _s);
_s
});
::quote::__private::push_rarrow(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "deserialize");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Result");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "bytes");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "from_sql");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_comma(&mut _s);
::quote::ToTokens::to_tokens(&sql_type, &mut _s);
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
_s
});
_s
});
_s
}quote::quote! {
1404 impl diesel::deserialize::FromSql<#sql_type, super::MultiBackend> for #tpe {
1405 fn from_sql(
1406 bytes: <super::MultiBackend as diesel::backend::Backend>::RawValue<'_>,
1407 ) -> diesel::deserialize::Result<Self> {
1408 bytes.from_sql::<Self, #sql_type>()
1409 }
1410 }
1411
1412 }
1413}
1414
1415fn generate_to_sql_impls(
1416 (sql_type, tpe): (TokenStream, TokenStream),
1417 _connection_types: &[ConnectionVariant],
1418) -> TokenStream {
1419 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "serialize");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "ToSql");
::quote::__private::push_lt(&mut _s);
::quote::ToTokens::to_tokens(&sql_type, &mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "for");
::quote::ToTokens::to_tokens(&tpe, &mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "fn");
::quote::__private::push_ident(&mut _s, "to_sql");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'b");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_and(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'b");
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "out");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "mut");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "serialize");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Output");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'b");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'_");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_comma(&mut _s);
_s
});
::quote::__private::push_rarrow(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "serialize");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Result");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "out");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "set_value");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::ToTokens::to_tokens(&sql_type, &mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "self");
_s
});
_s
});
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "Ok");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "serialize");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "IsNull");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "No");
_s
});
_s
});
_s
});
_s
}quote::quote! {
1420 impl diesel::serialize::ToSql<#sql_type, super::MultiBackend> for #tpe {
1421 fn to_sql<'b>(
1422 &'b self,
1423 out: &mut diesel::serialize::Output<'b, '_, super::MultiBackend>,
1424 ) -> diesel::serialize::Result {
1425 out.set_value((#sql_type, self));
1426 Ok(diesel::serialize::IsNull::No)
1427 }
1428 }
1429 }
1430}
1431
1432fn generate_queryfragment_impls(
1433 trait_def: TokenStream,
1434 query_fragment_bounds: &[TokenStream],
1435) -> TokenStream {
1436 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "impl");
::quote::ToTokens::to_tokens(&trait_def, &mut _s);
::quote::__private::push_ident(&mut _s, "where");
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon(&mut _s);
{
use ::quote::__private::ext::*;
let has_iter = ::quote::__private::HasIterator::<false>;
#[allow(unused_mut)]
let (mut query_fragment_bounds, i) =
query_fragment_bounds.quote_into_iter();
let has_iter = has_iter | i;
<_ as ::quote::__private::CheckHasIterator<true>>::check(has_iter);
while true {
let query_fragment_bounds =
match query_fragment_bounds.next() {
Some(_x) => ::quote::__private::RepInterp(_x),
None => break,
};
::quote::ToTokens::to_tokens(&query_fragment_bounds, &mut _s);
::quote::__private::push_add(&mut _s);
}
}
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "fn");
::quote::__private::push_ident(&mut _s, "walk_ast");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'b");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_and(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'b");
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "pass");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "AstPass");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'_");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'b");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_comma(&mut _s);
_s
});
::quote::__private::push_rarrow(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryResult");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "walk_variant_ast");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "pass");
_s
});
_s
});
_s
});
_s
}quote::quote! {
1437 impl #trait_def
1438 where
1439 Self: #(#query_fragment_bounds+)*
1440 {
1441 fn walk_ast<'b>(
1442 &'b self,
1443 pass: diesel::query_builder::AstPass<'_, 'b, MultiBackend>,
1444 ) -> diesel::QueryResult<()> {
1445 super::backend::MultiBackend::walk_variant_ast(self, pass)
1446 }
1447 }
1448 }
1449}
1450
1451fn generate_querybuilder(
1452 connection_types: &[ConnectionVariant],
1453 helper: &MultiHelper,
1454) -> TokenStream {
1455 let MultiHelper {
1456 multi_conn_helper,
1457 conn_backend,
1458 ..
1459 } = helper;
1460 let variants = connection_types.iter().map(|c| {
1461 let ident = c.name;
1462 let ty = c.ty;
1463 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::ToTokens::to_tokens(&ident, &mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_shl(&mut _s);
::quote::ToTokens::to_tokens(&ty, &mut _s);
::quote::__private::push_ident(&mut _s, "as");
::quote::ToTokens::to_tokens(&conn_backend, &mut _s);
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Backend");
::quote::__private::push_ident(&mut _s, "as");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Backend");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryBuilder");
_s
});
_s
}quote::quote! {
1464 #ident(<<#ty as #conn_backend>::Backend as diesel::backend::Backend>::QueryBuilder)
1465 }
1466 });
1467
1468 let push_sql_impl = connection_types.iter().map(|c| {
1469 let ident = c.name;
1470 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::ToTokens::to_tokens(&ident, &mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "q");
_s
});
::quote::__private::push_fat_arrow(&mut _s);
::quote::__private::push_ident(&mut _s, "q");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "push_sql");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "sql");
_s
});
_s
}quote::quote! {
1471 Self::#ident(q) => q.push_sql(sql)
1472 }
1473 });
1474
1475 let push_identifier_impl = connection_types.iter().map(|c| {
1476 let ident = c.name;
1477 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::ToTokens::to_tokens(&ident, &mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "q");
_s
});
::quote::__private::push_fat_arrow(&mut _s);
::quote::__private::push_ident(&mut _s, "q");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "push_identifier");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "identifier");
_s
});
_s
}quote::quote! {
1478 Self::#ident(q) => q.push_identifier(identifier)
1479 }
1480 });
1481
1482 let push_bind_param_impl = connection_types.iter().map(|c| {
1483 let ident = c.name;
1484 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::ToTokens::to_tokens(&ident, &mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "q");
_s
});
::quote::__private::push_fat_arrow(&mut _s);
::quote::__private::push_ident(&mut _s, "q");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "push_bind_param");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
_s
}quote::quote! {
1485 Self::#ident(q) => q.push_bind_param()
1486 }
1487 });
1488
1489 let finish_impl = connection_types.iter().map(|c| {
1490 let ident = c.name;
1491 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::ToTokens::to_tokens(&ident, &mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "q");
_s
});
::quote::__private::push_fat_arrow(&mut _s);
::quote::__private::push_ident(&mut _s, "q");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "finish");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
_s
}quote::quote! {
1492 Self::#ident(q) => q.finish()
1493 }
1494 });
1495
1496 let into_variant_functions = connection_types.iter().map(|c|{
1497 let ty = c.ty;
1498 let ident = c.name;
1499 let lower_ident = syn::Ident::new(&ident.to_string().to_lowercase(), ident.span());
1500 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "pub");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "super");
_s
});
::quote::__private::push_ident(&mut _s, "fn");
::quote::ToTokens::to_tokens(&lower_ident, &mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "mut");
::quote::__private::push_ident(&mut _s, "self");
_s
});
::quote::__private::push_rarrow(&mut _s);
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "mut");
::quote::__private::push_shl(&mut _s);
::quote::ToTokens::to_tokens(&ty, &mut _s);
::quote::__private::push_ident(&mut _s, "as");
::quote::ToTokens::to_tokens(&conn_backend, &mut _s);
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Backend");
::quote::__private::push_ident(&mut _s, "as");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Backend");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryBuilder");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "match");
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::ToTokens::to_tokens(&ident, &mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "qb");
_s
});
::quote::__private::push_fat_arrow(&mut _s);
::quote::__private::push_ident(&mut _s, "qb");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_underscore(&mut _s);
::quote::__private::push_fat_arrow(&mut _s);
::quote::__private::push_ident(&mut _s, "unreachable");
::quote::__private::push_bang(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
::quote::__private::push_comma(&mut _s);
_s
});
_s
});
_s
}quote::quote! {
1501 pub(super) fn #lower_ident(&mut self) -> &mut <<#ty as #conn_backend>::Backend as diesel::backend::Backend>::QueryBuilder {
1502 match self {
1503 Self::#ident(qb) => qb,
1504 _ => unreachable!(),
1505 }
1506 }
1507 }
1508 });
1509
1510 let query_fragment_bounds = connection_types
1511 .iter()
1512 .map(|c| {
1513 let ty = c.ty;
1514 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryFragment");
::quote::__private::push_shl(&mut _s);
::quote::ToTokens::to_tokens(&ty, &mut _s);
::quote::__private::push_ident(&mut _s, "as");
::quote::ToTokens::to_tokens(&conn_backend, &mut _s);
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Backend");
::quote::__private::push_gt(&mut _s);
_s
}quote::quote! {
1515 diesel::query_builder::QueryFragment<<#ty as #conn_backend>::Backend>
1516 }
1517 })
1518 .collect::<Vec<_>>();
1519
1520 let duplicate_query_builder = connection_types.iter().map(|c| {
1521 let ident = c.name;
1522 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::ToTokens::to_tokens(&ident, &mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_underscore(&mut _s);
_s
});
::quote::__private::push_fat_arrow(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::ToTokens::to_tokens(&ident, &mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "Default");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "default");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
_s
});
_s
}quote::quote! {
1523 Self::#ident(_) => Self::#ident(Default::default())
1524 }
1525 });
1526
1527 let query_fragment = {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryFragment");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_gt(&mut _s);
_s
}quote::quote! {
1528 diesel::query_builder::QueryFragment<super::backend::MultiBackend>
1529 };
1530
1531 let query_fragment_impls = IntoIterator::into_iter([
1532 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "L");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "O");
::quote::__private::push_gt(&mut _s);
::quote::ToTokens::to_tokens(&query_fragment, &mut _s);
::quote::__private::push_ident(&mut _s, "for");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "derives");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multiconnection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "LimitOffsetClause");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "L");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "O");
::quote::__private::push_gt(&mut _s);
_s
}quote::quote!{
1533 <L, O> #query_fragment for diesel::internal::derives::multiconnection::LimitOffsetClause<L, O>
1534 },
1535 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "L");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "R");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryFragment");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiConcatClauseSyntax");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "for");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "derives");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multiconnection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Concat");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "L");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "R");
::quote::__private::push_gt(&mut _s);
_s
}quote::quote! {
1536 <L, R> diesel::query_builder::QueryFragment<super::backend::MultiBackend, super::backend::MultiConcatClauseSyntax>
1537 for diesel::internal::derives::multiconnection::Concat<L, R>
1538 },
1539 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "T");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "U");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryFragment");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiArrayComparisonSyntax");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "for");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "derives");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multiconnection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "array_comparison");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "In");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "T");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "U");
::quote::__private::push_gt(&mut _s);
_s
}quote::quote! {
1540 <T, U> diesel::query_builder::QueryFragment<super::backend::MultiBackend, super::backend::MultiArrayComparisonSyntax>
1541 for diesel::internal::derives::multiconnection::array_comparison::In<T, U>
1542 },
1543 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "T");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "U");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryFragment");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiArrayComparisonSyntax");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "for");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "derives");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multiconnection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "array_comparison");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "NotIn");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "T");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "U");
::quote::__private::push_gt(&mut _s);
_s
}quote::quote! {
1544 <T, U> diesel::query_builder::QueryFragment<super::backend::MultiBackend, super::backend::MultiArrayComparisonSyntax>
1545 for diesel::internal::derives::multiconnection::array_comparison::NotIn<T, U>
1546 },
1547 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "ST");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "I");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryFragment");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiArrayComparisonSyntax");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "for");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "derives");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multiconnection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "array_comparison");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Many");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "ST");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "I");
::quote::__private::push_gt(&mut _s);
_s
}quote::quote! {
1548 <ST, I> diesel::query_builder::QueryFragment<super::backend::MultiBackend, super::backend::MultiArrayComparisonSyntax>
1549 for diesel::internal::derives::multiconnection::array_comparison::Many<ST, I>
1550 },
1551 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "T");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryFragment");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiExistsSyntax");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "for");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "derives");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multiconnection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Exists");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "T");
::quote::__private::push_gt(&mut _s);
_s
}quote::quote! {
1552 <T> diesel::query_builder::QueryFragment<super::backend::MultiBackend, super::backend::MultiExistsSyntax>
1553 for diesel::internal::derives::multiconnection::Exists<T>
1554 },
1555 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryFragment");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiEmptyFromClauseSyntax");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "for");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "derives");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multiconnection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "NoFromClause");
_s
}quote::quote! {
1556 diesel::query_builder::QueryFragment<super::backend::MultiBackend, super::backend::MultiEmptyFromClauseSyntax>
1557 for diesel::internal::derives::multiconnection::NoFromClause
1558 },
1559 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryFragment");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s,
"MultiDefaultValueClauseForInsert");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "for");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "derives");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multiconnection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "DefaultValues");
_s
}quote::quote! {
1560 diesel::query_builder::QueryFragment<super::backend::MultiBackend, super::backend::MultiDefaultValueClauseForInsert>
1561 for diesel::internal::derives::multiconnection::DefaultValues
1562 },
1563 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "Expr");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryFragment");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiReturningClause");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "for");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "derives");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multiconnection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "ReturningClause");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "Expr");
::quote::__private::push_gt(&mut _s);
_s
}quote::quote! {
1564 <Expr> diesel::query_builder::QueryFragment<super::backend::MultiBackend, super::backend::MultiReturningClause>
1565 for diesel::internal::derives::multiconnection::ReturningClause<Expr>
1566 },
1567 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "Expr");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryFragment");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiInsertWithDefaultKeyword");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "for");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "insertable");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "DefaultableColumnInsertValue");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "Expr");
::quote::__private::push_gt(&mut _s);
_s
}quote::quote! {
1568 <Expr> diesel::query_builder::QueryFragment<super::backend::MultiBackend, super::backend::MultiInsertWithDefaultKeyword>
1569 for diesel::insertable::DefaultableColumnInsertValue<Expr>
1570 },
1571 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "Tab");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "V");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "QId");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "const");
::quote::__private::push_ident(&mut _s, "HAS_STATIC_QUERY_ID");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "bool");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryFragment");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiBatchInsertSupport");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "for");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "derives");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multiconnection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "BatchInsert");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "V");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "Tab");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "QId");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "HAS_STATIC_QUERY_ID");
::quote::__private::push_gt(&mut _s);
_s
}quote::quote! {
1572 <Tab, V, QId, const HAS_STATIC_QUERY_ID: bool> diesel::query_builder::QueryFragment<super::backend::MultiBackend, super::backend::MultiBatchInsertSupport>
1573 for diesel::internal::derives::multiconnection::BatchInsert<V, Tab, QId, HAS_STATIC_QUERY_ID>
1574 },
1575 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "S");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryFragment");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiAliasSyntax");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "for");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_source");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Alias");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "S");
::quote::__private::push_gt(&mut _s);
_s
}quote::quote! {
1576 <S> diesel::query_builder::QueryFragment<super::backend::MultiBackend, super::backend::MultiAliasSyntax>
1577 for diesel::query_source::Alias<S>
1578 },
1579 ])
1580 .map(|t| generate_queryfragment_impls(t, &query_fragment_bounds));
1581
1582 let insert_values_impl_variants = connection_types.iter().map(|c| {
1583 let ident = c.name;
1584 let lower_ident = syn::Ident::new(&ident.to_string().to_lowercase(), c.name.span());
1585 let ty = c.ty;
1586 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_colon2(&mut _s);
::quote::ToTokens::to_tokens(&ident, &mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_underscore(&mut _s);
_s
});
::quote::__private::push_fat_arrow(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_ident(&mut _s, "as");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "insertable");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "InsertValues");
::quote::__private::push_shl(&mut _s);
::quote::ToTokens::to_tokens(&ty, &mut _s);
::quote::__private::push_ident(&mut _s, "as");
::quote::ToTokens::to_tokens(&conn_backend, &mut _s);
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Backend");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "Col");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Table");
::quote::__private::push_shr(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "column_names");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "out");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "cast_database");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "bind_collector");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s,
"MultiBindCollector");
::quote::__private::push_colon2(&mut _s);
::quote::ToTokens::to_tokens(&lower_ident, &mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s,
"MultiQueryBuilder");
::quote::__private::push_colon2(&mut _s);
::quote::ToTokens::to_tokens(&lower_ident, &mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_colon2(&mut _s);
::quote::ToTokens::to_tokens(&lower_ident, &mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_or(&mut _s);
::quote::__private::push_ident(&mut _s, "l");
::quote::__private::push_or(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_lt(&mut _s);
::quote::ToTokens::to_tokens(&ty, &mut _s);
::quote::__private::push_ident(&mut _s, "as");
::quote::ToTokens::to_tokens(&multi_conn_helper, &mut _s);
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "from_any");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "l");
_s
});
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "expect");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::parse(&mut _s,
"\"It\'s possible to downcast the metadata lookup type to the correct type\"");
_s
});
_s
});
::quote::__private::push_comma(&mut _s);
_s
});
::quote::__private::push_comma(&mut _s);
_s
});
_s
});
_s
}quote::quote! {
1587 super::backend::MultiBackend::#ident(_) => {
1588 <Self as diesel::insertable::InsertValues<<#ty as #conn_backend>::Backend, Col::Table>>::column_names(
1589 &self,
1590 out.cast_database(
1591 super::bind_collector::MultiBindCollector::#lower_ident,
1592 super::query_builder::MultiQueryBuilder::#lower_ident,
1593 super::backend::MultiBackend::#lower_ident,
1594 |l| {
1595 <#ty as #multi_conn_helper>::from_any(l)
1596 .expect("It's possible to downcast the metadata lookup type to the correct type")
1597 },
1598 ),
1599 )
1600 }
1601 }
1602 });
1603
1604 let insert_values_backend_bounds = connection_types.iter().map(|c| {
1605 let ty = c.ty;
1606 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "insertable");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "DefaultableColumnInsertValue");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "insertable");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "ColumnInsertValue");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "Col");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "Expr");
::quote::__private::push_shr(&mut _s);
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "insertable");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "InsertValues");
::quote::__private::push_shl(&mut _s);
::quote::ToTokens::to_tokens(&ty, &mut _s);
::quote::__private::push_ident(&mut _s, "as");
::quote::ToTokens::to_tokens(&conn_backend, &mut _s);
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Backend");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "Col");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Table");
::quote::__private::push_gt(&mut _s);
_s
}quote::quote! {
1607 diesel::insertable::DefaultableColumnInsertValue<diesel::insertable::ColumnInsertValue<Col, Expr>>: diesel::insertable::InsertValues<<#ty as #conn_backend>::Backend, Col::Table>
1608 }
1609 });
1610
1611 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "pub");
::quote::__private::push_ident(&mut _s, "enum");
::quote::__private::push_ident(&mut _s, "MultiQueryBuilder");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
{
use ::quote::__private::ext::*;
let has_iter = ::quote::__private::HasIterator::<false>;
#[allow(unused_mut)]
let (mut variants, i) = variants.quote_into_iter();
let has_iter = has_iter | i;
<_ as
::quote::__private::CheckHasIterator<true>>::check(has_iter);
while true {
let variants =
match variants.next() {
Some(_x) => ::quote::__private::RepInterp(_x),
None => break,
};
::quote::ToTokens::to_tokens(&variants, &mut _s);
::quote::__private::push_comma(&mut _s);
}
}
_s
});
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_ident(&mut _s, "MultiQueryBuilder");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "pub");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "super");
_s
});
::quote::__private::push_ident(&mut _s, "fn");
::quote::__private::push_ident(&mut _s, "duplicate");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "self");
_s
});
::quote::__private::push_rarrow(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "match");
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
{
use ::quote::__private::ext::*;
let has_iter = ::quote::__private::HasIterator::<false>;
#[allow(unused_mut)]
let (mut duplicate_query_builder, i) =
duplicate_query_builder.quote_into_iter();
let has_iter = has_iter | i;
<_ as
::quote::__private::CheckHasIterator<true>>::check(has_iter);
while true {
let duplicate_query_builder =
match duplicate_query_builder.next() {
Some(_x) => ::quote::__private::RepInterp(_x),
None => break,
};
::quote::ToTokens::to_tokens(&duplicate_query_builder,
&mut _s);
::quote::__private::push_comma(&mut _s);
}
}
_s
});
_s
});
_s
});
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_ident(&mut _s, "MultiQueryBuilder");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
{
use ::quote::__private::ext::*;
let has_iter = ::quote::__private::HasIterator::<false>;
#[allow(unused_mut)]
let (mut into_variant_functions, i) =
into_variant_functions.quote_into_iter();
let has_iter = has_iter | i;
<_ as
::quote::__private::CheckHasIterator<true>>::check(has_iter);
while true {
let into_variant_functions =
match into_variant_functions.next() {
Some(_x) => ::quote::__private::RepInterp(_x),
None => break,
};
::quote::ToTokens::to_tokens(&into_variant_functions,
&mut _s);
}
}
_s
});
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryBuilder");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "for");
::quote::__private::push_ident(&mut _s, "MultiQueryBuilder");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "fn");
::quote::__private::push_ident(&mut _s, "push_sql");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "mut");
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "sql");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "str");
_s
});
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "match");
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
{
use ::quote::__private::ext::*;
let has_iter = ::quote::__private::HasIterator::<false>;
#[allow(unused_mut)]
let (mut push_sql_impl, i) =
push_sql_impl.quote_into_iter();
let has_iter = has_iter | i;
<_ as
::quote::__private::CheckHasIterator<true>>::check(has_iter);
while true {
let push_sql_impl =
match push_sql_impl.next() {
Some(_x) => ::quote::__private::RepInterp(_x),
None => break,
};
::quote::ToTokens::to_tokens(&push_sql_impl, &mut _s);
::quote::__private::push_comma(&mut _s);
}
}
_s
});
_s
});
::quote::__private::push_ident(&mut _s, "fn");
::quote::__private::push_ident(&mut _s, "push_identifier");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "mut");
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "identifier");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "str");
_s
});
::quote::__private::push_rarrow(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryResult");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "match");
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
{
use ::quote::__private::ext::*;
let has_iter = ::quote::__private::HasIterator::<false>;
#[allow(unused_mut)]
let (mut push_identifier_impl, i) =
push_identifier_impl.quote_into_iter();
let has_iter = has_iter | i;
<_ as
::quote::__private::CheckHasIterator<true>>::check(has_iter);
while true {
let push_identifier_impl =
match push_identifier_impl.next() {
Some(_x) => ::quote::__private::RepInterp(_x),
None => break,
};
::quote::ToTokens::to_tokens(&push_identifier_impl,
&mut _s);
::quote::__private::push_comma(&mut _s);
}
}
_s
});
_s
});
::quote::__private::push_ident(&mut _s, "fn");
::quote::__private::push_ident(&mut _s, "push_bind_param");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "mut");
::quote::__private::push_ident(&mut _s, "self");
_s
});
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "match");
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
{
use ::quote::__private::ext::*;
let has_iter = ::quote::__private::HasIterator::<false>;
#[allow(unused_mut)]
let (mut push_bind_param_impl, i) =
push_bind_param_impl.quote_into_iter();
let has_iter = has_iter | i;
<_ as
::quote::__private::CheckHasIterator<true>>::check(has_iter);
while true {
let push_bind_param_impl =
match push_bind_param_impl.next() {
Some(_x) => ::quote::__private::RepInterp(_x),
None => break,
};
::quote::ToTokens::to_tokens(&push_bind_param_impl,
&mut _s);
::quote::__private::push_comma(&mut _s);
}
}
_s
});
_s
});
::quote::__private::push_ident(&mut _s, "fn");
::quote::__private::push_ident(&mut _s, "finish");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "self");
_s
});
::quote::__private::push_rarrow(&mut _s);
::quote::__private::push_ident(&mut _s, "String");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "match");
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
{
use ::quote::__private::ext::*;
let has_iter = ::quote::__private::HasIterator::<false>;
#[allow(unused_mut)]
let (mut finish_impl, i) = finish_impl.quote_into_iter();
let has_iter = has_iter | i;
<_ as
::quote::__private::CheckHasIterator<true>>::check(has_iter);
while true {
let finish_impl =
match finish_impl.next() {
Some(_x) => ::quote::__private::RepInterp(_x),
None => break,
};
::quote::ToTokens::to_tokens(&finish_impl, &mut _s);
::quote::__private::push_comma(&mut _s);
}
}
_s
});
_s
});
_s
});
{
use ::quote::__private::ext::*;
let has_iter = ::quote::__private::HasIterator::<false>;
#[allow(unused_mut)]
let (mut query_fragment_impls, i) =
query_fragment_impls.quote_into_iter();
let has_iter = has_iter | i;
<_ as ::quote::__private::CheckHasIterator<true>>::check(has_iter);
while true {
let query_fragment_impls =
match query_fragment_impls.next() {
Some(_x) => ::quote::__private::RepInterp(_x),
None => break,
};
::quote::ToTokens::to_tokens(&query_fragment_impls, &mut _s);
}
}
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "F");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "S");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "D");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "W");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "O");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "LOf");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "G");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "H");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "LC");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryFragment");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiSelectStatementSyntax");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "for");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "derives");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multiconnection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "SelectStatement");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "F");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "S");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "D");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "W");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "O");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "LOf");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "G");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "H");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "LC");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "where");
::quote::__private::push_ident(&mut _s, "S");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryFragment");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "F");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryFragment");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "D");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryFragment");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "W");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryFragment");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "O");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryFragment");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "LOf");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryFragment");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "G");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryFragment");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "H");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryFragment");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "LC");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryFragment");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "fn");
::quote::__private::push_ident(&mut _s, "walk_ast");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'b");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_and(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'b");
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "mut");
::quote::__private::push_ident(&mut _s, "out");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "AstPass");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'_");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'b");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_comma(&mut _s);
_s
});
::quote::__private::push_rarrow(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryResult");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "use");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "derives");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multiconnection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s,
"SelectStatementAccessor");
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "out");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "push_sql");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::parse(&mut _s, "\"SELECT \"");
_s
});
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "distinct_clause");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "walk_ast");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "out");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "reborrow");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
_s
});
::quote::__private::push_question(&mut _s);
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "select_clause");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "walk_ast");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "out");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "reborrow");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
_s
});
::quote::__private::push_question(&mut _s);
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "from_clause");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "walk_ast");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "out");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "reborrow");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
_s
});
::quote::__private::push_question(&mut _s);
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "where_clause");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "walk_ast");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "out");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "reborrow");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
_s
});
::quote::__private::push_question(&mut _s);
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "group_by_clause");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "walk_ast");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "out");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "reborrow");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
_s
});
::quote::__private::push_question(&mut _s);
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "having_clause");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "walk_ast");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "out");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "reborrow");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
_s
});
::quote::__private::push_question(&mut _s);
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "order_clause");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "walk_ast");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "out");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "reborrow");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
_s
});
::quote::__private::push_question(&mut _s);
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s,
"limit_offset_clause");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "walk_ast");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "out");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "reborrow");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
_s
});
::quote::__private::push_question(&mut _s);
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "locking_clause");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "walk_ast");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "out");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "reborrow");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
_s
});
::quote::__private::push_question(&mut _s);
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "Ok");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
_s
});
_s
});
_s
});
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'a");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "ST");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "QS");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "GB");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryFragment");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiSelectStatementSyntax");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "for");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "derives");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multiconnection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "BoxedSelectStatement");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'a");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "ST");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "QS");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "GB");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "where");
::quote::__private::push_ident(&mut _s, "QS");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryFragment");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "fn");
::quote::__private::push_ident(&mut _s, "walk_ast");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'b");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_and(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'b");
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "pass");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "AstPass");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'_");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'b");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_comma(&mut _s);
_s
});
::quote::__private::push_rarrow(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryResult");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "use");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "derives");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multiconnection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "BoxedQueryHelper");
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "build_query");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "pass");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_or(&mut _s);
::quote::__private::push_ident(&mut _s, "where_clause");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "pass");
::quote::__private::push_or(&mut _s);
::quote::__private::push_ident(&mut _s, "where_clause");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "walk_ast");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "pass");
_s
});
_s
});
_s
});
_s
});
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryFragment");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "for");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "derives");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multiconnection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "BoxedLimitOffsetClause");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'_");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "fn");
::quote::__private::push_ident(&mut _s, "walk_ast");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'b");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_and(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'b");
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "mut");
::quote::__private::push_ident(&mut _s, "pass");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "AstPass");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'_");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'b");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_comma(&mut _s);
_s
});
::quote::__private::push_rarrow(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryResult");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "if");
::quote::__private::push_ident(&mut _s, "let");
::quote::__private::push_ident(&mut _s, "Some");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "limit");
_s
});
::quote::__private::push_eq(&mut _s);
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "limit");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "limit");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "walk_ast");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "pass");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "reborrow");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
_s
});
::quote::__private::push_question(&mut _s);
::quote::__private::push_semi(&mut _s);
_s
});
::quote::__private::push_ident(&mut _s, "if");
::quote::__private::push_ident(&mut _s, "let");
::quote::__private::push_ident(&mut _s, "Some");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "offset");
_s
});
::quote::__private::push_eq(&mut _s);
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "offset");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "offset");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "walk_ast");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "pass");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "reborrow");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
_s
});
::quote::__private::push_question(&mut _s);
::quote::__private::push_semi(&mut _s);
_s
});
::quote::__private::push_ident(&mut _s, "Ok");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
_s
});
_s
});
_s
});
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'a");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "IntoBoxedClause");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'a");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multi_connection_impl");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "for");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "derives");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multiconnection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "LimitOffsetClause");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "derives");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multiconnection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "NoLimitClause");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "derives");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multiconnection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "NoOffsetClause");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "type");
::quote::__private::push_ident(&mut _s, "BoxedClause");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "derives");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multiconnection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "BoxedLimitOffsetClause");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'a");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multi_connection_impl");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "fn");
::quote::__private::push_ident(&mut _s, "into_boxed");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "self");
_s
});
::quote::__private::push_rarrow(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "BoxedClause");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "derives");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multiconnection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s,
"BoxedLimitOffsetClause");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "limit");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "None");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "offset");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "None");
::quote::__private::push_comma(&mut _s);
_s
});
_s
});
_s
});
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'a");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "L");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "IntoBoxedClause");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'a");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multi_connection_impl");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "for");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "derives");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multiconnection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "LimitOffsetClause");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "derives");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multiconnection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "LimitClause");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "L");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "derives");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multiconnection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "NoOffsetClause");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "where");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "derives");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multiconnection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "LimitClause");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "L");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryFragment");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_add(&mut _s);
::quote::__private::push_ident(&mut _s, "Send");
::quote::__private::push_add(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'static");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "type");
::quote::__private::push_ident(&mut _s, "BoxedClause");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "derives");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multiconnection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "BoxedLimitOffsetClause");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'a");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multi_connection_impl");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "fn");
::quote::__private::push_ident(&mut _s, "into_boxed");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "self");
_s
});
::quote::__private::push_rarrow(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "BoxedClause");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "derives");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multiconnection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s,
"BoxedLimitOffsetClause");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "limit");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "Some");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "Box");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "new");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "limit_clause");
_s
});
_s
});
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "offset");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "None");
::quote::__private::push_comma(&mut _s);
_s
});
_s
});
_s
});
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'a");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "O");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "IntoBoxedClause");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'a");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multi_connection_impl");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "for");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "derives");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multiconnection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "LimitOffsetClause");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "derives");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multiconnection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "NoLimitClause");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "derives");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multiconnection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "OffsetClause");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "O");
::quote::__private::push_shr(&mut _s);
::quote::__private::push_ident(&mut _s, "where");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "derives");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multiconnection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "OffsetClause");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "O");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryFragment");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_add(&mut _s);
::quote::__private::push_ident(&mut _s, "Send");
::quote::__private::push_add(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'static");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "type");
::quote::__private::push_ident(&mut _s, "BoxedClause");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "derives");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multiconnection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "BoxedLimitOffsetClause");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'a");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multi_connection_impl");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "fn");
::quote::__private::push_ident(&mut _s, "into_boxed");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "self");
_s
});
::quote::__private::push_rarrow(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "BoxedClause");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "derives");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multiconnection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s,
"BoxedLimitOffsetClause");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "limit");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "None");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "offset");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "Some");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "Box");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "new");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "offset_clause");
_s
});
_s
});
::quote::__private::push_comma(&mut _s);
_s
});
_s
});
_s
});
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'a");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "L");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "O");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "IntoBoxedClause");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'a");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multi_connection_impl");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "for");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "derives");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multiconnection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "LimitOffsetClause");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "derives");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multiconnection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "LimitClause");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "L");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "derives");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multiconnection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "OffsetClause");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "O");
::quote::__private::push_shr(&mut _s);
::quote::__private::push_ident(&mut _s, "where");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "derives");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multiconnection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "LimitClause");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "L");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryFragment");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_add(&mut _s);
::quote::__private::push_ident(&mut _s, "Send");
::quote::__private::push_add(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'static");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "derives");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multiconnection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "OffsetClause");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "O");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryFragment");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_add(&mut _s);
::quote::__private::push_ident(&mut _s, "Send");
::quote::__private::push_add(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'static");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "type");
::quote::__private::push_ident(&mut _s, "BoxedClause");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "derives");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multiconnection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "BoxedLimitOffsetClause");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'a");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multi_connection_impl");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "fn");
::quote::__private::push_ident(&mut _s, "into_boxed");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "self");
_s
});
::quote::__private::push_rarrow(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "BoxedClause");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "derives");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multiconnection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s,
"BoxedLimitOffsetClause");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "limit");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "Some");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "Box");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "new");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "limit_clause");
_s
});
_s
});
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "offset");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "Some");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "Box");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "new");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "offset_clause");
_s
});
_s
});
::quote::__private::push_comma(&mut _s);
_s
});
_s
});
_s
});
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "Col");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "Expr");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "insertable");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "InsertValues");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multi_connection_impl");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "Col");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Table");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "for");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "insertable");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "DefaultableColumnInsertValue");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "insertable");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "ColumnInsertValue");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "Col");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "Expr");
::quote::__private::push_shr(&mut _s);
::quote::__private::push_ident(&mut _s, "where");
::quote::__private::push_ident(&mut _s, "Col");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "prelude");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Column");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "Expr");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "prelude");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Expression");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "SqlType");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "Col");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "SqlType");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "Expr");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "prelude");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "AppearsOnTable");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "derives");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multiconnection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "NoFromClause");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryFragment");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multi_connection_impl");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_comma(&mut _s);
{
use ::quote::__private::ext::*;
let has_iter = ::quote::__private::HasIterator::<false>;
#[allow(unused_mut)]
let (mut insert_values_backend_bounds, i) =
insert_values_backend_bounds.quote_into_iter();
let has_iter = has_iter | i;
<_ as ::quote::__private::CheckHasIterator<true>>::check(has_iter);
while true {
let insert_values_backend_bounds =
match insert_values_backend_bounds.next() {
Some(_x) => ::quote::__private::RepInterp(_x),
None => break,
};
::quote::ToTokens::to_tokens(&insert_values_backend_bounds,
&mut _s);
::quote::__private::push_comma(&mut _s);
}
}
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "fn");
::quote::__private::push_ident(&mut _s, "column_names");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "mut");
::quote::__private::push_ident(&mut _s, "out");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "AstPass");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'_");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'_");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s,
"multi_connection_impl");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_gt(&mut _s);
_s
});
::quote::__private::push_rarrow(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryResult");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "use");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "derives");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multiconnection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "AstPassHelper");
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "match");
::quote::__private::push_ident(&mut _s, "out");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
{
use ::quote::__private::ext::*;
let has_iter = ::quote::__private::HasIterator::<false>;
#[allow(unused_mut)]
let (mut insert_values_impl_variants, i) =
insert_values_impl_variants.quote_into_iter();
let has_iter = has_iter | i;
<_ as
::quote::__private::CheckHasIterator<true>>::check(has_iter);
while true {
let insert_values_impl_variants =
match insert_values_impl_variants.next() {
Some(_x) => ::quote::__private::RepInterp(_x),
None => break,
};
::quote::ToTokens::to_tokens(&insert_values_impl_variants,
&mut _s);
::quote::__private::push_comma(&mut _s);
}
}
_s
});
_s
});
_s
});
_s
}quote::quote! {
1612 pub enum MultiQueryBuilder {
1613 #(#variants,)*
1614 }
1615
1616 impl MultiQueryBuilder {
1617 pub(super) fn duplicate(&self) -> Self {
1618 match self {
1619 #(#duplicate_query_builder,)*
1620 }
1621 }
1622 }
1623
1624 impl MultiQueryBuilder {
1625 #(#into_variant_functions)*
1626 }
1627
1628 impl diesel::query_builder::QueryBuilder<super::MultiBackend> for MultiQueryBuilder {
1629 fn push_sql(&mut self, sql: &str) {
1630 match self {
1631 #(#push_sql_impl,)*
1632 }
1633 }
1634
1635 fn push_identifier(&mut self, identifier: &str) -> diesel::QueryResult<()> {
1636 match self {
1637 #(#push_identifier_impl,)*
1638 }
1639 }
1640
1641 fn push_bind_param(&mut self) {
1642 match self {
1643 #(#push_bind_param_impl,)*
1644 }
1645 }
1646
1647 fn finish(self) -> String {
1648 match self {
1649 #(#finish_impl,)*
1650 }
1651 }
1652 }
1653
1654 #(#query_fragment_impls)*
1655
1656 impl<F, S, D, W, O, LOf, G, H, LC>
1657 diesel::query_builder::QueryFragment<
1658 super::backend::MultiBackend,
1659 super::backend::MultiSelectStatementSyntax,
1660 >
1661 for diesel::internal::derives::multiconnection::SelectStatement<
1662 F,
1663 S,
1664 D,
1665 W,
1666 O,
1667 LOf,
1668 G,
1669 H,
1670 LC,
1671 >
1672 where
1673 S: diesel::query_builder::QueryFragment<super::backend::MultiBackend>,
1674 F: diesel::query_builder::QueryFragment<super::backend::MultiBackend>,
1675 D: diesel::query_builder::QueryFragment<super::backend::MultiBackend>,
1676 W: diesel::query_builder::QueryFragment<super::backend::MultiBackend>,
1677 O: diesel::query_builder::QueryFragment<super::backend::MultiBackend>,
1678 LOf: diesel::query_builder::QueryFragment<super::backend::MultiBackend>,
1679 G: diesel::query_builder::QueryFragment<super::backend::MultiBackend>,
1680 H: diesel::query_builder::QueryFragment<super::backend::MultiBackend>,
1681 LC: diesel::query_builder::QueryFragment<super::backend::MultiBackend>,
1682 {
1683 fn walk_ast<'b>(
1684 &'b self,
1685 mut out: diesel::query_builder::AstPass<'_, 'b, MultiBackend>,
1686 ) -> diesel::QueryResult<()> {
1687 use diesel::internal::derives::multiconnection::SelectStatementAccessor;
1688
1689 out.push_sql("SELECT ");
1690 self.distinct_clause().walk_ast(out.reborrow())?;
1691 self.select_clause().walk_ast(out.reborrow())?;
1692 self.from_clause().walk_ast(out.reborrow())?;
1693 self.where_clause().walk_ast(out.reborrow())?;
1694 self.group_by_clause().walk_ast(out.reborrow())?;
1695 self.having_clause().walk_ast(out.reborrow())?;
1696 self.order_clause().walk_ast(out.reborrow())?;
1697 self.limit_offset_clause().walk_ast(out.reborrow())?;
1698 self.locking_clause().walk_ast(out.reborrow())?;
1699 Ok(())
1700 }
1701 }
1702
1703 impl<'a, ST, QS, GB>
1704 diesel::query_builder::QueryFragment<
1705 super::backend::MultiBackend,
1706 super::backend::MultiSelectStatementSyntax,
1707 >
1708 for diesel::internal::derives::multiconnection::BoxedSelectStatement<
1709 'a,
1710 ST,
1711 QS,
1712 super::backend::MultiBackend,
1713 GB,
1714 >
1715 where
1716 QS: diesel::query_builder::QueryFragment<super::backend::MultiBackend>
1717 {
1718 fn walk_ast<'b>(
1719 &'b self,
1720 pass: diesel::query_builder::AstPass<'_, 'b, MultiBackend>,
1721 ) -> diesel::QueryResult<()> {
1722 use diesel::internal::derives::multiconnection::BoxedQueryHelper;
1723 self.build_query(pass, |where_clause, pass| where_clause.walk_ast(pass))
1724 }
1725 }
1726
1727 impl diesel::query_builder::QueryFragment<super::backend::MultiBackend>
1728 for diesel::internal::derives::multiconnection::BoxedLimitOffsetClause<
1729 '_,
1730 super::backend::MultiBackend,
1731 >
1732 {
1733 fn walk_ast<'b>(
1734 &'b self,
1735 mut pass: diesel::query_builder::AstPass<'_, 'b, MultiBackend>,
1736 ) -> diesel::QueryResult<()> {
1737 if let Some(limit) = &self.limit {
1738 limit.walk_ast(pass.reborrow())?;
1739 }
1740 if let Some(offset) = &self.offset {
1741 offset.walk_ast(pass.reborrow())?;
1742 }
1743 Ok(())
1744 }
1745 }
1746
1747 impl<'a> diesel::query_builder::IntoBoxedClause<'a, super::multi_connection_impl::backend::MultiBackend>
1748 for diesel::internal::derives::multiconnection::LimitOffsetClause<diesel::internal::derives::multiconnection::NoLimitClause, diesel::internal::derives::multiconnection::NoOffsetClause>
1749 {
1750 type BoxedClause = diesel::internal::derives::multiconnection::BoxedLimitOffsetClause<'a, super::multi_connection_impl::backend::MultiBackend>;
1751
1752 fn into_boxed(self) -> Self::BoxedClause {
1753 diesel::internal::derives::multiconnection::BoxedLimitOffsetClause {
1754 limit: None,
1755 offset: None,
1756 }
1757 }
1758 }
1759 impl<'a, L> diesel::query_builder::IntoBoxedClause<'a, super::multi_connection_impl::backend::MultiBackend>
1760 for diesel::internal::derives::multiconnection::LimitOffsetClause<diesel::internal::derives::multiconnection::LimitClause<L>, diesel::internal::derives::multiconnection::NoOffsetClause>
1761 where diesel::internal::derives::multiconnection::LimitClause<L>: diesel::query_builder::QueryFragment<super::backend::MultiBackend> + Send + 'static,
1762 {
1763 type BoxedClause = diesel::internal::derives::multiconnection::BoxedLimitOffsetClause<'a, super::multi_connection_impl::backend::MultiBackend>;
1764 fn into_boxed(self) -> Self::BoxedClause {
1765 diesel::internal::derives::multiconnection::BoxedLimitOffsetClause {
1766 limit: Some(Box::new(self.limit_clause)),
1767 offset: None,
1768 }
1769 }
1770 }
1771 impl<'a, O> diesel::query_builder::IntoBoxedClause<'a, super::multi_connection_impl::backend::MultiBackend>
1772 for diesel::internal::derives::multiconnection::LimitOffsetClause<diesel::internal::derives::multiconnection::NoLimitClause, diesel::internal::derives::multiconnection::OffsetClause<O>>
1773 where diesel::internal::derives::multiconnection::OffsetClause<O>: diesel::query_builder::QueryFragment<super::backend::MultiBackend> + Send + 'static,
1774
1775 {
1776 type BoxedClause = diesel::internal::derives::multiconnection::BoxedLimitOffsetClause<'a, super::multi_connection_impl::backend::MultiBackend>;
1777 fn into_boxed(self) -> Self::BoxedClause {
1778 diesel::internal::derives::multiconnection::BoxedLimitOffsetClause {
1779 limit: None,
1780 offset: Some(Box::new(self.offset_clause)),
1781 }
1782 }
1783 }
1784 impl<'a, L, O> diesel::query_builder::IntoBoxedClause<'a, super::multi_connection_impl::backend::MultiBackend>
1785 for diesel::internal::derives::multiconnection::LimitOffsetClause<diesel::internal::derives::multiconnection::LimitClause<L>, diesel::internal::derives::multiconnection::OffsetClause<O>>
1786 where diesel::internal::derives::multiconnection::LimitClause<L>: diesel::query_builder::QueryFragment<super::backend::MultiBackend> + Send + 'static,
1787 diesel::internal::derives::multiconnection::OffsetClause<O>: diesel::query_builder::QueryFragment<super::backend::MultiBackend> + Send + 'static,
1788 {
1789 type BoxedClause = diesel::internal::derives::multiconnection::BoxedLimitOffsetClause<'a, super::multi_connection_impl::backend::MultiBackend>;
1790 fn into_boxed(self) -> Self::BoxedClause {
1791 diesel::internal::derives::multiconnection::BoxedLimitOffsetClause {
1792 limit: Some(Box::new(self.limit_clause)),
1793 offset: Some(Box::new(self.offset_clause)),
1794 }
1795 }
1796 }
1797
1798 impl<Col, Expr> diesel::insertable::InsertValues<super::multi_connection_impl::backend::MultiBackend, Col::Table>
1799 for diesel::insertable::DefaultableColumnInsertValue<diesel::insertable::ColumnInsertValue<Col, Expr>>
1800 where
1801 Col: diesel::prelude::Column,
1802 Expr: diesel::prelude::Expression<SqlType = Col::SqlType>,
1803 Expr: diesel::prelude::AppearsOnTable<diesel::internal::derives::multiconnection::NoFromClause>,
1804 Self: diesel::query_builder::QueryFragment<super::multi_connection_impl::backend::MultiBackend>,
1805 #(#insert_values_backend_bounds,)*
1806 {
1807 fn column_names(
1808 &self,
1809 mut out: diesel::query_builder::AstPass<'_, '_, super::multi_connection_impl::backend::MultiBackend>
1810 ) -> diesel::QueryResult<()> {
1811 use diesel::internal::derives::multiconnection::AstPassHelper;
1812
1813 match out.backend() {
1814 #(#insert_values_impl_variants,)*
1815 }
1816 }
1817 }
1818 }
1819}
1820
1821fn generate_backend(connection_types: &[ConnectionVariant], helper: &MultiHelper) -> TokenStream {
1822 let MultiHelper {
1823 multi_conn_helper,
1824 conn_backend,
1825 ..
1826 } = helper;
1827 let backend_variants = connection_types.iter().map(|c| {
1828 let ident = c.name;
1829 let ty = c.ty;
1830 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::ToTokens::to_tokens(&ident, &mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_lt(&mut _s);
::quote::ToTokens::to_tokens(&ty, &mut _s);
::quote::__private::push_ident(&mut _s, "as");
::quote::ToTokens::to_tokens(&conn_backend, &mut _s);
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Backend");
_s
});
_s
}quote::quote! {
1831 #ident(<#ty as #conn_backend>::Backend)
1832 }
1833 });
1834
1835 let value_variants = connection_types.iter().map(|c| {
1836 let ident = c.name;
1837 let ty = c.ty;
1838 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::ToTokens::to_tokens(&ident, &mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_shl(&mut _s);
::quote::ToTokens::to_tokens(&ty, &mut _s);
::quote::__private::push_ident(&mut _s, "as");
::quote::ToTokens::to_tokens(&conn_backend, &mut _s);
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Backend");
::quote::__private::push_ident(&mut _s, "as");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Backend");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "RawValue");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'a");
::quote::__private::push_gt(&mut _s);
_s
});
_s
}quote::quote! {
1839 #ident(<<#ty as #conn_backend>::Backend as diesel::backend::Backend>::RawValue<'a>)
1840 }
1841 });
1842
1843 let type_metadata_variants = connection_types.iter().map(|c| {
1844 let ident = c.name;
1845 let ty = c.ty;
1846 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "pub");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "super");
_s
});
::quote::ToTokens::to_tokens(&ident, &mut _s);
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "Option");
::quote::__private::push_shl(&mut _s);
::quote::__private::push_lt(&mut _s);
::quote::ToTokens::to_tokens(&ty, &mut _s);
::quote::__private::push_ident(&mut _s, "as");
::quote::ToTokens::to_tokens(&conn_backend, &mut _s);
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Backend");
::quote::__private::push_ident(&mut _s, "as");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "sql_types");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "TypeMetadata");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "TypeMetadata");
::quote::__private::push_gt(&mut _s);
_s
}quote::quote! {
1847 pub(super) #ident: Option<<<#ty as #conn_backend>::Backend as diesel::sql_types::TypeMetadata>::TypeMetadata>
1848 }
1849 });
1850
1851 let has_sql_type_impls = [
1852 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "sql_types");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "SmallInt");
_s
}quote::quote!(diesel::sql_types::SmallInt),
1853 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "sql_types");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Integer");
_s
}quote::quote!(diesel::sql_types::Integer),
1854 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "sql_types");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "BigInt");
_s
}quote::quote!(diesel::sql_types::BigInt),
1855 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "sql_types");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Double");
_s
}quote::quote!(diesel::sql_types::Double),
1856 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "sql_types");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Float");
_s
}quote::quote!(diesel::sql_types::Float),
1857 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "sql_types");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Text");
_s
}quote::quote!(diesel::sql_types::Text),
1858 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "sql_types");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Binary");
_s
}quote::quote!(diesel::sql_types::Binary),
1859 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "sql_types");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Date");
_s
}quote::quote!(diesel::sql_types::Date),
1860 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "sql_types");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Time");
_s
}quote::quote!(diesel::sql_types::Time),
1861 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "sql_types");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Timestamp");
_s
}quote::quote!(diesel::sql_types::Timestamp),
1862 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "sql_types");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Bool");
_s
}quote::quote!(diesel::sql_types::Bool),
1863 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "sql_types");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Numeric");
_s
}quote::quote!(diesel::sql_types::Numeric),
1864 ]
1865 .into_iter()
1866 .map(generate_has_sql_type_impls);
1867
1868 let into_variant_functions = connection_types.iter().map(|c| {
1869 let ty = c.ty;
1870 let ident = c.name;
1871 let lower_ident = syn::Ident::new(&ident.to_string().to_lowercase(), ident.span());
1872 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "pub");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "super");
_s
});
::quote::__private::push_ident(&mut _s, "fn");
::quote::ToTokens::to_tokens(&lower_ident, &mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "self");
_s
});
::quote::__private::push_rarrow(&mut _s);
::quote::__private::push_and(&mut _s);
::quote::__private::push_lt(&mut _s);
::quote::ToTokens::to_tokens(&ty, &mut _s);
::quote::__private::push_ident(&mut _s, "as");
::quote::ToTokens::to_tokens(&conn_backend, &mut _s);
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Backend");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "match");
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::ToTokens::to_tokens(&ident, &mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "b");
_s
});
::quote::__private::push_fat_arrow(&mut _s);
::quote::__private::push_ident(&mut _s, "b");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_underscore(&mut _s);
::quote::__private::push_fat_arrow(&mut _s);
::quote::__private::push_ident(&mut _s, "unreachable");
::quote::__private::push_bang(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
::quote::__private::push_comma(&mut _s);
_s
});
_s
});
_s
}quote::quote! {
1873 pub(super) fn #lower_ident(&self) -> &<#ty as #conn_backend>::Backend {
1874 match self {
1875 Self::#ident(b) => b,
1876 _ => unreachable!(),
1877 }
1878 }
1879 }
1880 });
1881
1882 let from_sql_match_arms = connection_types.iter().map(|v| {
1883 let ident = v.name;
1884 let ty = v.ty;
1885 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_colon2(&mut _s);
::quote::ToTokens::to_tokens(&ident, &mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "b");
_s
});
::quote::__private::push_fat_arrow(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "T");
::quote::__private::push_ident(&mut _s, "as");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "deserialize");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "FromSql");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "ST");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_lt(&mut _s);
::quote::ToTokens::to_tokens(&ty, &mut _s);
::quote::__private::push_ident(&mut _s, "as");
::quote::ToTokens::to_tokens(&conn_backend, &mut _s);
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Backend");
::quote::__private::push_shr(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "from_sql");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "b");
_s
});
_s
});
_s
}quote::quote!{
1886 Self::#ident(b) => {
1887 <T as diesel::deserialize::FromSql<ST, <#ty as #conn_backend>::Backend>>::from_sql(b)
1888 }
1889 }
1890 });
1891
1892 let backend_from_sql_bounds = connection_types.iter().map(|v| {
1893 let ty = v.ty;
1894 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "T");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "deserialize");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "FromSql");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "ST");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_lt(&mut _s);
::quote::ToTokens::to_tokens(&ty, &mut _s);
::quote::__private::push_ident(&mut _s, "as");
::quote::ToTokens::to_tokens(&conn_backend, &mut _s);
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Backend");
::quote::__private::push_gt(&mut _s);
_s
}quote::quote! {
1895 T: diesel::deserialize::FromSql<ST, <#ty as #conn_backend>::Backend>
1896 }
1897 });
1898
1899 let query_fragment_impl_variants = connection_types.iter().map(|c| {
1900 let ident = c.name;
1901 let lower_ident = syn::Ident::new(&ident.to_string().to_lowercase(), c.name.span());
1902 let ty = c.ty;
1903 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_colon2(&mut _s);
::quote::ToTokens::to_tokens(&ident, &mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_underscore(&mut _s);
_s
});
::quote::__private::push_fat_arrow(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "T");
::quote::__private::push_ident(&mut _s, "as");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryFragment");
::quote::__private::push_shl(&mut _s);
::quote::ToTokens::to_tokens(&ty, &mut _s);
::quote::__private::push_ident(&mut _s, "as");
::quote::ToTokens::to_tokens(&conn_backend, &mut _s);
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Backend");
::quote::__private::push_shr(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "walk_ast");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "ast_node");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "pass");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "cast_database");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "bind_collector");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s,
"MultiBindCollector");
::quote::__private::push_colon2(&mut _s);
::quote::ToTokens::to_tokens(&lower_ident, &mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s,
"MultiQueryBuilder");
::quote::__private::push_colon2(&mut _s);
::quote::ToTokens::to_tokens(&lower_ident, &mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_colon2(&mut _s);
::quote::ToTokens::to_tokens(&lower_ident, &mut _s);
::quote::__private::push_comma(&mut _s);
::quote::__private::push_or(&mut _s);
::quote::__private::push_ident(&mut _s, "l");
::quote::__private::push_or(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_lt(&mut _s);
::quote::ToTokens::to_tokens(&ty, &mut _s);
::quote::__private::push_ident(&mut _s, "as");
::quote::ToTokens::to_tokens(&multi_conn_helper, &mut _s);
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "from_any");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "l");
_s
});
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "expect");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::parse(&mut _s,
"\"It\'s possible to downcast the metadata lookup type to the correct type\"");
_s
});
_s
});
::quote::__private::push_comma(&mut _s);
_s
});
::quote::__private::push_comma(&mut _s);
_s
});
_s
});
_s
}quote::quote! {
1904 super::backend::MultiBackend::#ident(_) => {
1905 <T as diesel::query_builder::QueryFragment<<#ty as #conn_backend>::Backend>>::walk_ast(
1906 ast_node,
1907 pass.cast_database(
1908 super::bind_collector::MultiBindCollector::#lower_ident,
1909 super::query_builder::MultiQueryBuilder::#lower_ident,
1910 super::backend::MultiBackend::#lower_ident,
1911 |l| {
1912 <#ty as #multi_conn_helper>::from_any(l)
1913 .expect("It's possible to downcast the metadata lookup type to the correct type")
1914 },
1915 ),
1916 )
1917 }
1918 }
1919 });
1920
1921 let query_fragment_impl_bounds = connection_types.iter().map(|c| {
1922 let ty = c.ty;
1923
1924 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "T");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryFragment");
::quote::__private::push_shl(&mut _s);
::quote::ToTokens::to_tokens(&ty, &mut _s);
::quote::__private::push_ident(&mut _s, "as");
::quote::ToTokens::to_tokens(&conn_backend, &mut _s);
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Backend");
::quote::__private::push_gt(&mut _s);
_s
}quote::quote! {
1925 T: diesel::query_builder::QueryFragment<<#ty as #conn_backend>::Backend>
1926 }
1927 });
1928
1929 let lookup_impl = connection_types.iter().map(|v| {
1930 let name = v.name;
1931 let ty = v.ty;
1932
1933 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "if");
::quote::__private::push_ident(&mut _s, "let");
::quote::__private::push_ident(&mut _s, "Some");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "lookup");
_s
});
::quote::__private::push_eq(&mut _s);
::quote::__private::push_lt(&mut _s);
::quote::ToTokens::to_tokens(&ty, &mut _s);
::quote::__private::push_ident(&mut _s, "as");
::quote::ToTokens::to_tokens(&multi_conn_helper, &mut _s);
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "from_any");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "lookup");
_s
});
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "ret");
::quote::__private::push_dot(&mut _s);
::quote::ToTokens::to_tokens(&name, &mut _s);
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "Some");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_shl(&mut _s);
::quote::ToTokens::to_tokens(&ty, &mut _s);
::quote::__private::push_ident(&mut _s, "as");
::quote::ToTokens::to_tokens(&conn_backend, &mut _s);
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Backend");
::quote::__private::push_ident(&mut _s, "as");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "sql_types");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "HasSqlType");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "ST");
::quote::__private::push_shr(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "metadata");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "lookup");
_s
});
_s
});
::quote::__private::push_semi(&mut _s);
_s
});
_s
}quote::quote!{
1934 if let Some(lookup) = <#ty as #multi_conn_helper>::from_any(lookup) {
1935 ret.#name = Some(<<#ty as #conn_backend>::Backend as diesel::sql_types::HasSqlType<ST>>::metadata(lookup));
1936 }
1937 }
1938
1939 });
1940
1941 let lookup_sql_type_bounds = connection_types.iter().map(|c| {
1942 let ty = c.ty;
1943 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_lt(&mut _s);
::quote::ToTokens::to_tokens(&ty, &mut _s);
::quote::__private::push_ident(&mut _s, "as");
::quote::ToTokens::to_tokens(&conn_backend, &mut _s);
::quote::__private::push_gt(&mut _s);
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Backend");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "sql_types");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "HasSqlType");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "ST");
::quote::__private::push_gt(&mut _s);
_s
}quote::quote! {
1944 <#ty as #conn_backend>::Backend: diesel::sql_types::HasSqlType<ST>
1945 }
1946 });
1947
1948 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "pub");
::quote::__private::push_ident(&mut _s, "enum");
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
{
use ::quote::__private::ext::*;
let has_iter = ::quote::__private::HasIterator::<false>;
#[allow(unused_mut)]
let (mut backend_variants, i) =
backend_variants.quote_into_iter();
let has_iter = has_iter | i;
<_ as
::quote::__private::CheckHasIterator<true>>::check(has_iter);
while true {
let backend_variants =
match backend_variants.next() {
Some(_x) => ::quote::__private::RepInterp(_x),
None => break,
};
::quote::ToTokens::to_tokens(&backend_variants, &mut _s);
::quote::__private::push_comma(&mut _s);
}
}
_s
});
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
{
use ::quote::__private::ext::*;
let has_iter = ::quote::__private::HasIterator::<false>;
#[allow(unused_mut)]
let (mut into_variant_functions, i) =
into_variant_functions.quote_into_iter();
let has_iter = has_iter | i;
<_ as
::quote::__private::CheckHasIterator<true>>::check(has_iter);
while true {
let into_variant_functions =
match into_variant_functions.next() {
Some(_x) => ::quote::__private::RepInterp(_x),
None => break,
};
::quote::ToTokens::to_tokens(&into_variant_functions,
&mut _s);
}
}
::quote::__private::push_ident(&mut _s, "pub");
::quote::__private::push_ident(&mut _s, "fn");
::quote::__private::push_ident(&mut _s, "lookup_sql_type");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "ST");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "lookup");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_and(&mut _s);
::quote::__private::push_ident(&mut _s, "mut");
::quote::__private::push_ident(&mut _s, "dyn");
::quote::__private::push_ident(&mut _s, "std");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "any");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Any");
_s
});
::quote::__private::push_rarrow(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiTypeMetadata");
::quote::__private::push_ident(&mut _s, "where");
{
use ::quote::__private::ext::*;
let has_iter = ::quote::__private::HasIterator::<false>;
#[allow(unused_mut)]
let (mut lookup_sql_type_bounds, i) =
lookup_sql_type_bounds.quote_into_iter();
let has_iter = has_iter | i;
<_ as
::quote::__private::CheckHasIterator<true>>::check(has_iter);
while true {
let lookup_sql_type_bounds =
match lookup_sql_type_bounds.next() {
Some(_x) => ::quote::__private::RepInterp(_x),
None => break,
};
::quote::ToTokens::to_tokens(&lookup_sql_type_bounds,
&mut _s);
::quote::__private::push_comma(&mut _s);
}
}
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "let");
::quote::__private::push_ident(&mut _s, "mut");
::quote::__private::push_ident(&mut _s, "ret");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s,
"MultiTypeMetadata");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "default");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
::quote::__private::push_semi(&mut _s);
{
use ::quote::__private::ext::*;
let has_iter = ::quote::__private::HasIterator::<false>;
#[allow(unused_mut)]
let (mut lookup_impl, i) = lookup_impl.quote_into_iter();
let has_iter = has_iter | i;
<_ as
::quote::__private::CheckHasIterator<true>>::check(has_iter);
while true {
let lookup_impl =
match lookup_impl.next() {
Some(_x) => ::quote::__private::RepInterp(_x),
None => break,
};
::quote::ToTokens::to_tokens(&lookup_impl, &mut _s);
}
}
::quote::__private::push_ident(&mut _s, "ret");
_s
});
_s
});
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "pub");
::quote::__private::push_ident(&mut _s, "fn");
::quote::__private::push_ident(&mut _s, "walk_variant_ast");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'b");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "T");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "ast_node");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_and(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'b");
::quote::__private::push_ident(&mut _s, "T");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "pass");
::quote::__private::push_colon(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "AstPass");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'_");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'b");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "Self");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_comma(&mut _s);
_s
});
::quote::__private::push_rarrow(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "QueryResult");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "where");
{
use ::quote::__private::ext::*;
let has_iter = ::quote::__private::HasIterator::<false>;
#[allow(unused_mut)]
let (mut query_fragment_impl_bounds, i) =
query_fragment_impl_bounds.quote_into_iter();
let has_iter = has_iter | i;
<_ as
::quote::__private::CheckHasIterator<true>>::check(has_iter);
while true {
let query_fragment_impl_bounds =
match query_fragment_impl_bounds.next() {
Some(_x) => ::quote::__private::RepInterp(_x),
None => break,
};
::quote::ToTokens::to_tokens(&query_fragment_impl_bounds,
&mut _s);
::quote::__private::push_comma(&mut _s);
}
}
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "use");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "derives");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multiconnection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "AstPassHelper");
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "match");
::quote::__private::push_ident(&mut _s, "pass");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
::quote::__private::TokenStream::new());
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
{
use ::quote::__private::ext::*;
let has_iter = ::quote::__private::HasIterator::<false>;
#[allow(unused_mut)]
let (mut query_fragment_impl_variants, i) =
query_fragment_impl_variants.quote_into_iter();
let has_iter = has_iter | i;
<_ as
::quote::__private::CheckHasIterator<true>>::check(has_iter);
while true {
let query_fragment_impl_variants =
match query_fragment_impl_variants.next() {
Some(_x) => ::quote::__private::RepInterp(_x),
None => break,
};
::quote::ToTokens::to_tokens(&query_fragment_impl_variants,
&mut _s);
::quote::__private::push_comma(&mut _s);
}
}
_s
});
_s
});
_s
});
::quote::__private::push_ident(&mut _s, "pub");
::quote::__private::push_ident(&mut _s, "enum");
::quote::__private::push_ident(&mut _s, "MultiRawValue");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'a");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
{
use ::quote::__private::ext::*;
let has_iter = ::quote::__private::HasIterator::<false>;
#[allow(unused_mut)]
let (mut value_variants, i) =
value_variants.quote_into_iter();
let has_iter = has_iter | i;
<_ as
::quote::__private::CheckHasIterator<true>>::check(has_iter);
while true {
let value_variants =
match value_variants.next() {
Some(_x) => ::quote::__private::RepInterp(_x),
None => break,
};
::quote::ToTokens::to_tokens(&value_variants, &mut _s);
::quote::__private::push_comma(&mut _s);
}
}
_s
});
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_ident(&mut _s, "MultiRawValue");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'_");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "pub");
::quote::__private::push_ident(&mut _s, "fn");
::quote::__private::push_ident(&mut _s, "from_sql");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "T");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "ST");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "self");
_s
});
::quote::__private::push_rarrow(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "deserialize");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Result");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "T");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_ident(&mut _s, "where");
{
use ::quote::__private::ext::*;
let has_iter = ::quote::__private::HasIterator::<false>;
#[allow(unused_mut)]
let (mut backend_from_sql_bounds, i) =
backend_from_sql_bounds.quote_into_iter();
let has_iter = has_iter | i;
<_ as
::quote::__private::CheckHasIterator<true>>::check(has_iter);
while true {
let backend_from_sql_bounds =
match backend_from_sql_bounds.next() {
Some(_x) => ::quote::__private::RepInterp(_x),
None => break,
};
::quote::ToTokens::to_tokens(&backend_from_sql_bounds,
&mut _s);
::quote::__private::push_comma(&mut _s);
}
}
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "match");
::quote::__private::push_ident(&mut _s, "self");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
{
use ::quote::__private::ext::*;
let has_iter = ::quote::__private::HasIterator::<false>;
#[allow(unused_mut)]
let (mut from_sql_match_arms, i) =
from_sql_match_arms.quote_into_iter();
let has_iter = has_iter | i;
<_ as
::quote::__private::CheckHasIterator<true>>::check(has_iter);
while true {
let from_sql_match_arms =
match from_sql_match_arms.next() {
Some(_x) => ::quote::__private::RepInterp(_x),
None => break,
};
::quote::ToTokens::to_tokens(&from_sql_match_arms, &mut _s);
::quote::__private::push_comma(&mut _s);
}
}
_s
});
_s
});
_s
});
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Backend");
::quote::__private::push_ident(&mut _s, "for");
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "type");
::quote::__private::push_ident(&mut _s, "QueryBuilder");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "query_builder");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiQueryBuilder");
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "type");
::quote::__private::push_ident(&mut _s, "RawValue");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'a");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiRawValue");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'a");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "type");
::quote::__private::push_ident(&mut _s, "BindCollector");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'a");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "super");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "bind_collector");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiBindCollector");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'a");
::quote::__private::push_gt(&mut _s);
::quote::__private::push_semi(&mut _s);
_s
});
::quote::__private::push_pound(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Bracket,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "derive");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "Default");
_s
});
_s
});
::quote::__private::push_pound(&mut _s);
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Bracket,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "allow");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Parenthesis,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "non_snake_case");
_s
});
_s
});
::quote::__private::push_ident(&mut _s, "pub");
::quote::__private::push_ident(&mut _s, "struct");
::quote::__private::push_ident(&mut _s, "MultiTypeMetadata");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
{
use ::quote::__private::ext::*;
let has_iter = ::quote::__private::HasIterator::<false>;
#[allow(unused_mut)]
let (mut type_metadata_variants, i) =
type_metadata_variants.quote_into_iter();
let has_iter = has_iter | i;
<_ as
::quote::__private::CheckHasIterator<true>>::check(has_iter);
while true {
let type_metadata_variants =
match type_metadata_variants.next() {
Some(_x) => ::quote::__private::RepInterp(_x),
None => break,
};
::quote::ToTokens::to_tokens(&type_metadata_variants,
&mut _s);
::quote::__private::push_comma(&mut _s);
}
}
_s
});
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "sql_types");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "TypeMetadata");
::quote::__private::push_ident(&mut _s, "for");
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "type");
::quote::__private::push_ident(&mut _s, "TypeMetadata");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiTypeMetadata");
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "type");
::quote::__private::push_ident(&mut _s, "MetadataLookup");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "dyn");
::quote::__private::push_ident(&mut _s, "std");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "any");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Any");
::quote::__private::push_semi(&mut _s);
_s
});
::quote::__private::push_ident(&mut _s, "pub");
::quote::__private::push_ident(&mut _s, "struct");
::quote::__private::push_ident(&mut _s, "MultiReturningClause");
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "pub");
::quote::__private::push_ident(&mut _s, "struct");
::quote::__private::push_ident(&mut _s, "MultiInsertWithDefaultKeyword");
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "pub");
::quote::__private::push_ident(&mut _s, "struct");
::quote::__private::push_ident(&mut _s, "MultiBatchInsertSupport");
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "pub");
::quote::__private::push_ident(&mut _s, "struct");
::quote::__private::push_ident(&mut _s,
"MultiDefaultValueClauseForInsert");
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "pub");
::quote::__private::push_ident(&mut _s, "struct");
::quote::__private::push_ident(&mut _s, "MultiEmptyFromClauseSyntax");
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "pub");
::quote::__private::push_ident(&mut _s, "struct");
::quote::__private::push_ident(&mut _s, "MultiExistsSyntax");
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "pub");
::quote::__private::push_ident(&mut _s, "struct");
::quote::__private::push_ident(&mut _s, "MultiArrayComparisonSyntax");
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "pub");
::quote::__private::push_ident(&mut _s, "struct");
::quote::__private::push_ident(&mut _s, "MultiConcatClauseSyntax");
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "pub");
::quote::__private::push_ident(&mut _s, "struct");
::quote::__private::push_ident(&mut _s, "MultiSelectStatementSyntax");
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "pub");
::quote::__private::push_ident(&mut _s, "struct");
::quote::__private::push_ident(&mut _s, "MultiAliasSyntax");
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "pub");
::quote::__private::push_ident(&mut _s, "struct");
::quote::__private::push_ident(&mut _s,
"MultiWindowFrameClauseGroupSupport");
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "pub");
::quote::__private::push_ident(&mut _s, "struct");
::quote::__private::push_ident(&mut _s,
"MultiWindowFrameExclusionSupport");
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "pub");
::quote::__private::push_ident(&mut _s, "struct");
::quote::__private::push_ident(&mut _s,
"MultiAggregateFunctionExpressions");
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "pub");
::quote::__private::push_ident(&mut _s, "struct");
::quote::__private::push_ident(&mut _s,
"MultiBuiltInWindowFunctionRequireOrder");
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "backend");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "SqlDialect");
::quote::__private::push_ident(&mut _s, "for");
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
{
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "type");
::quote::__private::push_ident(&mut _s, "ReturningClause");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiReturningClause");
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "type");
::quote::__private::push_ident(&mut _s, "OnConflictClause");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "derives");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multiconnection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "sql_dialect");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "on_conflict_clause");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s,
"DoesNotSupportOnConflictClause");
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "type");
::quote::__private::push_ident(&mut _s,
"InsertWithDefaultKeyword");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s,
"MultiInsertWithDefaultKeyword");
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "type");
::quote::__private::push_ident(&mut _s, "BatchInsertSupport");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s,
"MultiBatchInsertSupport");
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "type");
::quote::__private::push_ident(&mut _s,
"DefaultValueClauseForInsert");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s,
"MultiDefaultValueClauseForInsert");
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "type");
::quote::__private::push_ident(&mut _s, "EmptyFromClauseSyntax");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s,
"MultiEmptyFromClauseSyntax");
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "type");
::quote::__private::push_ident(&mut _s, "ExistsSyntax");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiExistsSyntax");
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "type");
::quote::__private::push_ident(&mut _s, "ArrayComparison");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s,
"MultiArrayComparisonSyntax");
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "type");
::quote::__private::push_ident(&mut _s, "ConcatClause");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s,
"MultiConcatClauseSyntax");
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "type");
::quote::__private::push_ident(&mut _s, "SelectStatementSyntax");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s,
"MultiSelectStatementSyntax");
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "type");
::quote::__private::push_ident(&mut _s, "AliasSyntax");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s, "MultiAliasSyntax");
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "type");
::quote::__private::push_ident(&mut _s,
"WindowFrameClauseGroupSupport");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s,
"MultiWindowFrameClauseGroupSupport");
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "type");
::quote::__private::push_ident(&mut _s,
"WindowFrameExclusionSupport");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s,
"MultiWindowFrameExclusionSupport");
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "type");
::quote::__private::push_ident(&mut _s,
"AggregateFunctionExpressions");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s,
"MultiAggregateFunctionExpressions");
::quote::__private::push_semi(&mut _s);
::quote::__private::push_ident(&mut _s, "type");
::quote::__private::push_ident(&mut _s,
"BuiltInWindowFunctionRequireOrder");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s,
"MultiBuiltInWindowFunctionRequireOrder");
::quote::__private::push_semi(&mut _s);
_s
});
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "derives");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multiconnection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "TrustedBackend");
::quote::__private::push_ident(&mut _s, "for");
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
::quote::__private::TokenStream::new());
::quote::__private::push_ident(&mut _s, "impl");
::quote::__private::push_ident(&mut _s, "diesel");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "internal");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "derives");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "multiconnection");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "DieselReserveSpecialization");
::quote::__private::push_ident(&mut _s, "for");
::quote::__private::push_ident(&mut _s, "MultiBackend");
::quote::__private::push_group(&mut _s,
::quote::__private::Delimiter::Brace,
::quote::__private::TokenStream::new());
{
use ::quote::__private::ext::*;
let has_iter = ::quote::__private::HasIterator::<false>;
#[allow(unused_mut)]
let (mut has_sql_type_impls, i) =
has_sql_type_impls.quote_into_iter();
let has_iter = has_iter | i;
<_ as ::quote::__private::CheckHasIterator<true>>::check(has_iter);
while true {
let has_sql_type_impls =
match has_sql_type_impls.next() {
Some(_x) => ::quote::__private::RepInterp(_x),
None => break,
};
::quote::ToTokens::to_tokens(&has_sql_type_impls, &mut _s);
}
}
_s
}quote::quote! {
1949 pub enum MultiBackend {
1950 #(#backend_variants,)*
1951 }
1952
1953 impl MultiBackend {
1954 #(#into_variant_functions)*
1955
1956 pub fn lookup_sql_type<ST>(lookup: &mut dyn std::any::Any) -> MultiTypeMetadata
1957 where #(#lookup_sql_type_bounds,)*
1958 {
1959 let mut ret = MultiTypeMetadata::default();
1960 #(#lookup_impl)*
1961 ret
1962 }
1963 }
1964
1965 impl MultiBackend {
1966 pub fn walk_variant_ast<'b, T>(
1967 ast_node: &'b T,
1968 pass: diesel::query_builder::AstPass<'_, 'b, Self>,
1969 ) -> diesel::QueryResult<()>
1970 where #(#query_fragment_impl_bounds,)*
1971 {
1972 use diesel::internal::derives::multiconnection::AstPassHelper;
1973 match pass.backend() {
1974 #(#query_fragment_impl_variants,)*
1975 }
1976 }
1977 }
1978
1979 pub enum MultiRawValue<'a> {
1980 #(#value_variants,)*
1981 }
1982
1983 impl MultiRawValue<'_> {
1984 pub fn from_sql<T, ST>(self) -> diesel::deserialize::Result<T>
1985 where #(#backend_from_sql_bounds,)*
1986 {
1987 match self {
1988 #(#from_sql_match_arms,)*
1989 }
1990 }
1991 }
1992
1993 impl diesel::backend::Backend for MultiBackend {
1994 type QueryBuilder = super::query_builder::MultiQueryBuilder;
1995 type RawValue<'a> = MultiRawValue<'a>;
1996 type BindCollector<'a> = super::bind_collector::MultiBindCollector<'a>;
1997 }
1998
1999 #[derive(Default)]
2000 #[allow(non_snake_case)]
2001 pub struct MultiTypeMetadata {
2002 #(#type_metadata_variants,)*
2003 }
2004
2005 impl diesel::sql_types::TypeMetadata for MultiBackend {
2006 type TypeMetadata = MultiTypeMetadata;
2007
2008 type MetadataLookup = dyn std::any::Any;
2009 }
2010
2011 pub struct MultiReturningClause;
2012 pub struct MultiInsertWithDefaultKeyword;
2013 pub struct MultiBatchInsertSupport;
2014 pub struct MultiDefaultValueClauseForInsert;
2015 pub struct MultiEmptyFromClauseSyntax;
2016 pub struct MultiExistsSyntax;
2017 pub struct MultiArrayComparisonSyntax;
2018 pub struct MultiConcatClauseSyntax;
2019 pub struct MultiSelectStatementSyntax;
2020 pub struct MultiAliasSyntax;
2021
2022 pub struct MultiWindowFrameClauseGroupSupport;
2023 pub struct MultiWindowFrameExclusionSupport;
2024 pub struct MultiAggregateFunctionExpressions;
2025 pub struct MultiBuiltInWindowFunctionRequireOrder;
2026
2027 impl diesel::backend::SqlDialect for MultiBackend {
2028 type ReturningClause = MultiReturningClause;
2029 type OnConflictClause = diesel::internal::derives::multiconnection::sql_dialect::on_conflict_clause::DoesNotSupportOnConflictClause;
2031 type InsertWithDefaultKeyword = MultiInsertWithDefaultKeyword;
2032 type BatchInsertSupport = MultiBatchInsertSupport;
2033 type DefaultValueClauseForInsert = MultiDefaultValueClauseForInsert;
2034 type EmptyFromClauseSyntax = MultiEmptyFromClauseSyntax;
2035 type ExistsSyntax = MultiExistsSyntax;
2036 type ArrayComparison = MultiArrayComparisonSyntax;
2037 type ConcatClause = MultiConcatClauseSyntax;
2038 type SelectStatementSyntax = MultiSelectStatementSyntax;
2039 type AliasSyntax = MultiAliasSyntax;
2040 type WindowFrameClauseGroupSupport = MultiWindowFrameClauseGroupSupport;
2041 type WindowFrameExclusionSupport = MultiWindowFrameExclusionSupport;
2042 type AggregateFunctionExpressions = MultiAggregateFunctionExpressions;
2043 type BuiltInWindowFunctionRequireOrder = MultiBuiltInWindowFunctionRequireOrder;
2044 }
2045
2046 impl diesel::internal::derives::multiconnection::TrustedBackend for MultiBackend {}
2047 impl diesel::internal::derives::multiconnection::DieselReserveSpecialization for MultiBackend {}
2048
2049 #(#has_sql_type_impls)*
2050 }
2051}