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::__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);
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, "diesel_async");
::quote::__private::push_colon2(&mut _s);
::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_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "await");
::quote::__private::push_question(&mut _s);
::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 diesel_async::futures_util::StreamExt::map(r.await?, |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, "diesel_async");
::quote::__private::push_colon2(&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, "diesel_async");
::quote::__private::push_colon2(&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, "diesel_async");
::quote::__private::push_colon2(&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> = diesel_async::futures_util::future::BoxFuture<'conn, diesel::QueryResult<Self::Stream<'conn, 'query>>>;
280 type ExecuteFuture<'conn, 'query> = diesel_async::futures_util::future::BoxFuture<'conn, diesel::QueryResult<usize>>;
281 type Stream<'conn, 'query> = diesel_async::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");
::quote::__private::push_question(&mut _s);
_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, "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, "count");
::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, "count_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_star(&mut _s);
::quote::__private::push_ident(&mut _s, "count");
::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, "inner");
::quote::__private::push_dot(&mut _s);
::quote::__private::push_ident(&mut _s, "count_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, "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);
_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 if let Some((count, _backend)) = pass.count_binds() {
599 *count = self.inner.count_binds(&self.backend)?;
600 }
601 Ok(())
602 }
603 }
604
605 impl<T, C> diesel::query_builder::QueryId for SerializedQuery<T, C>
606 where
607 T: diesel::query_builder::QueryId,
608 {
609 type QueryId = <T as diesel::query_builder::QueryId>::QueryId;
610
611 const HAS_STATIC_QUERY_ID: bool = <T as diesel::query_builder::QueryId>::HAS_STATIC_QUERY_ID;
612 }
613
614 impl<T, C> diesel::query_builder::Query for SerializedQuery<T, C>
615 where
616 T: diesel::query_builder::Query
617 {
618 type SqlType = diesel::sql_types::Untyped;
621 }
622
623 impl #conn for MultiConnection {
624 #conn_backend_impl
625
626 type TransactionManager = Self;
627
628 #async_token fn establish(database_url: &str) -> diesel::ConnectionResult<Self> {
629 #(#establish_impls)*
630 Err(diesel::ConnectionError::BadConnection("Invalid connection url for multiconnection".into()))
631 }
632 #impl_execute_returning_count
633
634 fn transaction_state(
635 &mut self,
636 ) -> &mut <Self::TransactionManager as #transaction_manager<Self>>::TransactionStateData {
637 self
638 }
639
640 fn instrumentation(&mut self) -> &mut dyn diesel::connection::Instrumentation {
641 match self {
642 #(#get_instrumentation_impl,)*
643 }
644 }
645
646 fn set_instrumentation(&mut self, instrumentation: impl diesel::connection::Instrumentation) {
647 match self {
648 #(#instrumentation_impl,)*
649 }
650 }
651
652 fn set_prepared_statement_cache_size(&mut self, size: diesel::connection::CacheSize) {
653 match self {
654 #(#set_cache_impl,)*
655 }
656 }
657
658 #async_token fn begin_test_transaction(&mut self) -> diesel::QueryResult<()> {
659 match self {
660 #(#impl_begin_test_transaction,)*
661 }
662 }
663 }
664
665 #load_impl
666
667 impl #transaction_manager<MultiConnection> for MultiConnection {
668 type TransactionStateData = Self;
669
670 #async_token fn begin_transaction(conn: &mut MultiConnection) -> diesel::QueryResult<()> {
671 match conn {
672 #(#begin_transaction_impl,)*
673 }
674 }
675
676 #async_token fn rollback_transaction(conn: &mut MultiConnection) -> diesel::QueryResult<()> {
677 match conn {
678 #(#rollback_transaction_impl,)*
679 }
680 }
681
682 #async_token fn commit_transaction(conn: &mut MultiConnection) -> diesel::QueryResult<()> {
683 match conn {
684 #(#commit_transaction_impl,)*
685 }
686 }
687
688 fn transaction_manager_status_mut(conn: &mut MultiConnection) -> &mut diesel::connection::TransactionManagerStatus {
689 match conn {
690 #(#transaction_manager_status_mut_impl,)*
691 }
692 }
693
694 fn is_broken_transaction_manager(conn: &mut MultiConnection) -> bool {
695 match conn {
696 #(#is_broken_transaction_manager_impl,)*
697 }
698 }
699 }
700
701 #migration_connection_impl
702
703 #r2d2_impl
704 }
705}
706
707fn generate_row(connection_types: &[ConnectionVariant], helper: &MultiHelper) -> TokenStream {
708 let MultiHelper {
709 is_async,
710 conn_load,
711 conn_backend,
712 ..
713 } = helper;
714 let is_async = *is_async;
715 let row_variants = connection_types.iter().map(|c| {
716 let ident = c.name;
717 let ty = c.ty;
718 {
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! {
719 #ident(<#ty as #conn_load>::Row<'conn, 'query>)
720 }
721 });
722
723 let field_variants = connection_types.iter().map(|c| {
724 let ident = c.name;
725 let ty = c.ty;
726 {
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! {
727 #ident(<<#ty as #conn_load>::Row<'conn, 'query> as diesel::row::Row<'conn, <#ty as #conn_backend>::Backend>>::Field<'query>)
728 }
729 });
730
731 let field_name_impl = connection_types.iter().map(|c| {
732 let ident = c.name;
733 {
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! {
734 Self::#ident(f) => f.field_name()
735 }
736 });
737
738 let field_value_impl = connection_types.iter().map(|c| {
739 let ident = c.name;
740 {
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! {
741 Self::#ident(f) => f.value().map(super::MultiRawValue::#ident)
742 }
743 });
744
745 let row_index_impl = connection_types
746 .iter()
747 .map(|c| {
748 let ident = c.name;
749 {
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! {
750 Self::#ident(r) => r.idx(idx)
751 }
752 })
753 .collect::<Vec<_>>();
754 let row_index_impl = &row_index_impl;
755
756 let cursor_impl = if is_async {
757 None
758 } else {
759 let cursor_variants = connection_types.iter().map(|c| {
760 let ident = c.name;
761 let ty = c.ty;
762 {
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! {
763 #ident(<#ty as #conn_load>::Cursor<'conn, 'query>)
764 }
765 });
766 let iterator_impl = connection_types.iter().map(|c| {
767 let ident = c.name;
768 {
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! {
769 Self::#ident(r) => Some(r.next()?.map(MultiRow::#ident))
770 }
771 });
772
773 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! {
774 pub enum MultiCursor<'conn, 'query> {
775 #(#cursor_variants,)*
776 }
777
778 impl<'conn, 'query> Iterator for MultiCursor<'conn, 'query> {
779 type Item = diesel::QueryResult<MultiRow<'conn, 'query>>;
780
781 fn next(&mut self) -> Option<Self::Item> {
782 match self {
783 #(#iterator_impl,)*
784 }
785 }
786 }
787 })
788 };
789
790 let field_count_impl = connection_types.iter().map(|c| {
791 let ident = c.name;
792 {
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! {
793 Self::#ident(r) => r.field_count()
794 }
795 });
796
797 let get_field_impl = connection_types.iter().map(|c| {
798 let ident = c.name;
799 {
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! {
800 Self::#ident(r) => r.get(idx).map(MultiField::#ident)
801 }
802 });
803
804 {
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! {
805
806 pub enum MultiRow<'conn, 'query> {
807 #(#row_variants,)*
808
809 }
810
811 impl<'conn, 'query> diesel::internal::derives::multiconnection::RowSealed for MultiRow<'conn, 'query> {}
812
813 pub enum MultiField<'conn: 'query, 'query> {
814 #(#field_variants,)*
815 }
816
817 impl<'conn, 'query> diesel::row::Field<'conn, super::MultiBackend> for MultiField<'conn, 'query> {
818 fn field_name(&self) -> Option<&str> {
819 use diesel::row::Field;
820
821 match self {
822 #(#field_name_impl,)*
823 }
824 }
825
826 fn value(&self) -> Option<<super::MultiBackend as diesel::backend::Backend>::RawValue<'_>> {
827 use diesel::row::Field;
828
829 match self {
830 #(#field_value_impl,)*
831 }
832 }
833 }
834
835 impl<'conn, 'query, 'c> diesel::row::RowIndex<&'c str> for MultiRow<'conn, 'query> {
836 fn idx(&self, idx: &'c str) -> Option<usize> {
837 use diesel::row::RowIndex;
838
839 match self {
840 #(#row_index_impl,)*
841 }
842 }
843 }
844
845 impl<'conn, 'query> diesel::row::RowIndex<usize> for MultiRow<'conn, 'query> {
846 fn idx(&self, idx: usize) -> Option<usize> {
847 use diesel::row::RowIndex;
848
849 match self {
850 #(#row_index_impl,)*
851 }
852 }
853 }
854
855 impl<'conn, 'query> diesel::row::Row<'conn, super::MultiBackend> for MultiRow<'conn, 'query> {
856 type Field<'a> = MultiField<'a, 'a> where 'conn: 'a, Self: 'a;
857 type InnerPartialRow = Self;
858
859 fn field_count(&self) -> usize {
860 use diesel::row::Row;
861 match self {
862 #(#field_count_impl,)*
863 }
864 }
865
866 fn get<'b, I>(&'b self, idx: I) -> Option<Self::Field<'b>>
867 where
868 'conn: 'b,
869 Self: diesel::row::RowIndex<I>,
870 {
871 use diesel::row::{RowIndex, Row};
872 let idx = self.idx(idx)?;
873
874 match self {
875 #(#get_field_impl,)*
876 }
877 }
878
879 fn partial_row(
880 &self,
881 range: std::ops::Range<usize>,
882 ) -> diesel::internal::derives::multiconnection::PartialRow<'_, Self::InnerPartialRow> {
883 diesel::internal::derives::multiconnection::PartialRow::new(self, range)
884 }
885 }
886 #cursor_impl
887
888 }
889}
890
891fn generate_bind_collector(
892 connection_types: &[ConnectionVariant],
893 helper: &MultiHelper,
894) -> TokenStream {
895 let MultiHelper {
896 multi_conn_helper,
897 conn_backend,
898 ..
899 } = helper;
900
901 let mut to_sql_impls = [
902 (
903 {
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),
904 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "i16");
_s
}quote::quote!(i16),
905 ),
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, "Integer");
_s
}quote::quote!(diesel::sql_types::Integer),
908 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "i32");
_s
}quote::quote!(i32),
909 ),
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, "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)),
911 ({
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)),
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, "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)),
913 ({
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)),
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, "Binary");
_s
}quote::quote!(diesel::sql_types::Binary),
916 {
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]),
917 ),
918 ({
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)),
919 ]
920 .into_iter()
921 .map(|t| generate_to_sql_impls(t, connection_types))
922 .collect::<Vec<_>>();
923 let numeric_impl = generate_to_sql_impls(
924 (
925 {
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),
926 {
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),
927 ),
928 connection_types,
929 );
930 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! {
931 diesel::internal::derives::multiconnection::expand_numeric! {#numeric_impl}
932 });
933 let chrono_impls = [
934 (
935 {
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),
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, "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),
937 ),
938 (
939 {
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),
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, "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),
941 ),
942 (
943 {
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),
944 {
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),
945 ),
946 ]
947 .into_iter()
948 .map(|t| generate_to_sql_impls(t, connection_types))
949 .map(|p| {
950 {
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! {
951 diesel::internal::derives::multiconnection::expand_chrono! {#p}
952 }
953 });
954 to_sql_impls.extend(chrono_impls);
955
956 let time_impls = [
957 (
958 {
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),
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, "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),
960 ),
961 (
962 {
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),
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, "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),
964 ),
965 (
966 {
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),
967 {
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),
968 ),
969 ]
970 .into_iter()
971 .map(|t| generate_to_sql_impls(t, connection_types))
972 .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}});
973 to_sql_impls.extend(time_impls);
974
975 let mut from_sql_impls = [
976 (
977 {
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),
978 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "i16");
_s
}quote::quote!(i16),
979 ),
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, "Integer");
_s
}quote::quote!(diesel::sql_types::Integer),
982 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "i32");
_s
}quote::quote!(i32),
983 ),
984 ({
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)),
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, "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)),
986 ({
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)),
987 (
988 {
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),
989 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_ident(&mut _s, "String");
_s
}quote::quote!(String),
990 ),
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, "Binary");
_s
}quote::quote!(diesel::sql_types::Binary),
993 {
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>),
994 ),
995 ({
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)),
996 ]
997 .into_iter()
998 .map(generate_from_sql_impls)
999 .collect::<Vec<_>>();
1000 let numeric_impl = generate_from_sql_impls((
1001 {
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),
1002 {
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),
1003 ));
1004 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! {
1005 diesel::internal::derives::multiconnection::expand_numeric! {#numeric_impl}
1006 });
1007 let chrono_impls = [
1008 (
1009 {
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),
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, "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),
1011 ),
1012 (
1013 {
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),
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, "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),
1015 ),
1016 (
1017 {
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),
1018 {
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),
1019 ),
1020 ]
1021 .into_iter()
1022 .map(generate_from_sql_impls)
1023 .map(|p| {
1024 {
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! {
1025 diesel::internal::derives::multiconnection::expand_chrono!{#p}}
1026 });
1027 from_sql_impls.extend(chrono_impls);
1028
1029 let time_impls = [
1030 (
1031 {
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),
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, "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),
1033 ),
1034 (
1035 {
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),
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, "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),
1037 ),
1038 (
1039 {
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),
1040 {
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),
1041 ),
1042 ]
1043 .into_iter()
1044 .map(generate_from_sql_impls)
1045 .map(|p| {
1046 {
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! {
1047 diesel::internal::derives::multiconnection::expand_time!{ #p }
1048 }
1049 });
1050 from_sql_impls.extend(time_impls);
1051
1052 let into_bind_value_bounds = connection_types.iter().map(|c| {
1053 let ty = c.ty;
1054 {
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! {
1055 diesel::serialize::ToSql<ST, <#ty as #conn_backend>::Backend>
1056 }
1057 });
1058
1059 let has_sql_type_bounds = connection_types.iter().map(|c| {
1060 let ty = c.ty;
1061 {
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! {
1062 <#ty as #conn_backend>::Backend: diesel::sql_types::HasSqlType<ST>
1063 }
1064 });
1065
1066 let multi_bind_collector_variants = connection_types.iter().map(|c| {
1067 let ident = c.name;
1068 let ty = c.ty;
1069 {
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! {
1070 #ident(<<#ty as #conn_backend>::Backend as diesel::backend::Backend>::BindCollector<'a>)
1071 }
1072 });
1073
1074 let multi_bind_collector_accessor = connection_types.iter().map(|c| {
1075 let ident = c.name;
1076 let lower_ident = syn::Ident::new(&c.name.to_string().to_lowercase(), c.name.span());
1077 let ty = c.ty;
1078 {
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! {
1079 pub(super) fn #lower_ident(
1080 &mut self,
1081 ) -> &mut <<#ty as #conn_backend>::Backend as diesel::backend::Backend>::BindCollector<'a> {
1082 match self {
1083 Self::#ident(bc) => bc,
1084 _ => unreachable!(),
1085 }
1086 }
1087
1088 }
1089
1090 });
1091
1092 let push_to_inner_collector = connection_types.iter().map(|c| {
1093 let ident = c.name;
1094 let ty = c.ty;
1095 {
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! {
1096 Self::#ident(bc) => {
1097 let out = out.inner.expect("This inner value is set via our custom `ToSql` impls");
1098 let callback = out.push_bound_value_to_collector;
1099 let value = out.value;
1100 <_ as PushBoundValueToCollectorDB<<#ty as #conn_backend>::Backend>>::push_bound_value(
1101 callback,
1102 value,
1103 bc,
1104 <#ty as #multi_conn_helper>::from_any(metadata_lookup)
1105 .expect("We can downcast the metadata lookup to the right type")
1106 )?
1107 }
1108 }
1109 });
1110
1111 let push_null_to_inner_collector = connection_types
1112 .iter()
1113 .map(|c| {
1114 let ident = c.name;
1115 {
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! {
1116 (Self::#ident(bc), super::backend::MultiTypeMetadata{ #ident: Some(metadata), .. }) => {
1117 bc.push_null_value(metadata)?;
1118 }
1119 }
1120 })
1121 .collect::<Vec<_>>();
1122
1123 let push_bound_value_super_traits = connection_types
1124 .iter()
1125 .map(|c| {
1126 let ty = c.ty;
1127 {
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! {
1128 PushBoundValueToCollectorDB<<#ty as #conn_backend>::Backend>
1129 }
1130 })
1131 .collect::<Vec<_>>();
1132
1133 {
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! {
1134 pub enum MultiBindCollector<'a> {
1135 #(#multi_bind_collector_variants,)*
1136 }
1137
1138 impl<'a> MultiBindCollector<'a> {
1139 #(#multi_bind_collector_accessor)*
1140 }
1141
1142 trait PushBoundValueToCollectorDB<DB: diesel::backend::Backend> {
1143 fn push_bound_value<'a: 'b, 'b>(
1144 &self,
1145 v: InnerBindValueKind<'a>,
1146 collector: &mut <DB as diesel::backend::Backend>::BindCollector<'b>,
1147 lookup: &mut <DB as diesel::sql_types::TypeMetadata>::MetadataLookup,
1148 ) -> diesel::result::QueryResult<()>;
1149 }
1150
1151 struct PushBoundValueToCollectorImpl<ST, T: ?Sized> {
1152 p: std::marker::PhantomData<(ST, T)>
1153 }
1154
1155 impl<ST, T, DB> PushBoundValueToCollectorDB<DB> for PushBoundValueToCollectorImpl<ST, T>
1159 where DB: diesel::backend::Backend
1160 + diesel::sql_types::HasSqlType<ST>,
1161 T: diesel::serialize::ToSql<ST, DB> + 'static,
1162 Option<T>: diesel::serialize::ToSql<diesel::sql_types::Nullable<ST>, DB> + 'static,
1163 ST: diesel::sql_types::SqlType,
1164 {
1165 fn push_bound_value<'a: 'b, 'b>(
1166 &self,
1167 v: InnerBindValueKind<'a>,
1168 collector: &mut <DB as diesel::backend::Backend>::BindCollector<'b>,
1169 lookup: &mut <DB as diesel::sql_types::TypeMetadata>::MetadataLookup,
1170 ) -> diesel::result::QueryResult<()> {
1171 use diesel::query_builder::BindCollector;
1172 match v {
1173 InnerBindValueKind::Sized(v) => {
1174 let v = v.downcast_ref::<T>().expect("We know the type statically here");
1175 collector.push_bound_value::<ST, T>(v, lookup)
1176 }
1177 InnerBindValueKind::Null => {
1178 collector.push_bound_value::<diesel::sql_types::Nullable<ST>, Option<T>>(&None, lookup)
1179 },
1180 _ => unreachable!("We set the value to `InnerBindValueKind::Sized` or `InnerBindValueKind::Null`")
1181 }
1182 }
1183 }
1184
1185 impl<DB> PushBoundValueToCollectorDB<DB> for PushBoundValueToCollectorImpl<diesel::sql_types::Text, str>
1186 where DB: diesel::backend::Backend + diesel::sql_types::HasSqlType<diesel::sql_types::Text>,
1187 str: diesel::serialize::ToSql<diesel::sql_types::Text, DB> + 'static,
1188 {
1189 fn push_bound_value<'a: 'b, 'b>(
1190 &self,
1191 v: InnerBindValueKind<'a>,
1192 collector: &mut <DB as diesel::backend::Backend>::BindCollector<'b>,
1193 lookup: &mut <DB as diesel::sql_types::TypeMetadata>::MetadataLookup,
1194 ) -> diesel::result::QueryResult<()> {
1195 use diesel::query_builder::BindCollector;
1196 if let InnerBindValueKind::Str(v) = v {
1197 collector.push_bound_value::<diesel::sql_types::Text, str>(v, lookup)
1198 } else {
1199 unreachable!("We set the value to `InnerBindValueKind::Str`")
1200 }
1201 }
1202 }
1203
1204 impl<DB> PushBoundValueToCollectorDB<DB> for PushBoundValueToCollectorImpl<diesel::sql_types::Binary, [u8]>
1205 where DB: diesel::backend::Backend + diesel::sql_types::HasSqlType<diesel::sql_types::Binary>,
1206 [u8]: diesel::serialize::ToSql<diesel::sql_types::Binary, DB> + 'static,
1207 {
1208 fn push_bound_value<'a: 'b, 'b>(
1209 &self,
1210 v: InnerBindValueKind<'a>,
1211 collector: &mut <DB as diesel::backend::Backend>::BindCollector<'b>,
1212 lookup: &mut <DB as diesel::sql_types::TypeMetadata>::MetadataLookup,
1213 ) -> diesel::result::QueryResult<()> {
1214 use diesel::query_builder::BindCollector;
1215 if let InnerBindValueKind::Bytes(v) = v {
1216 collector.push_bound_value::<diesel::sql_types::Binary, [u8]>(v, lookup)
1217 } else {
1218 unreachable!("We set the value to `InnerBindValueKind::Binary`")
1219 }
1220 }
1221 }
1222
1223 trait PushBoundValueToCollector: #(#push_bound_value_super_traits +)* {}
1224
1225 impl<T> PushBoundValueToCollector for T
1226 where T: #(#push_bound_value_super_traits + )* {}
1227
1228 #[derive(Default)]
1229 pub struct BindValue<'a> {
1230 inner: Option<InnerBindValue<'a>>
1233 }
1234
1235 struct InnerBindValue<'a> {
1236 value: InnerBindValueKind<'a>,
1237 push_bound_value_to_collector: &'static dyn PushBoundValueToCollector
1238 }
1239
1240 enum InnerBindValueKind<'a> {
1241 Sized(&'a (dyn std::any::Any + std::marker::Send + std::marker::Sync)),
1242 Str(&'a str),
1243 Bytes(&'a [u8]),
1244 Null,
1245 }
1246
1247 impl<'a> From<(diesel::sql_types::Text, &'a str)> for BindValue<'a> {
1248 fn from((_, v): (diesel::sql_types::Text, &'a str)) -> Self {
1249 Self {
1250 inner: Some(InnerBindValue{
1251 value: InnerBindValueKind::Str(v),
1252 push_bound_value_to_collector: &PushBoundValueToCollectorImpl {
1253 p: std::marker::PhantomData::<(diesel::sql_types::Text, str)>
1254 }
1255 })
1256 }
1257 }
1258 }
1259
1260 impl<'a> From<(diesel::sql_types::Binary, &'a [u8])> for BindValue<'a> {
1261 fn from((_, v): (diesel::sql_types::Binary, &'a [u8])) -> Self {
1262 Self {
1263 inner: Some(InnerBindValue {
1264 value: InnerBindValueKind::Bytes(v),
1265 push_bound_value_to_collector: &PushBoundValueToCollectorImpl {
1266 p: std::marker::PhantomData::<(diesel::sql_types::Binary, [u8])>
1267 }
1268 })
1269 }
1270 }
1271 }
1272
1273 impl<'a, T, ST> From<(ST, &'a T)> for BindValue<'a>
1274 where
1275 T: std::any::Any #(+ #into_bind_value_bounds)* + Send + Sync + 'static,
1276 ST: Send + diesel::sql_types::SqlType<IsNull = diesel::sql_types::is_nullable::NotNull> + 'static,
1277 #(#has_sql_type_bounds,)*
1278 {
1279 fn from((_, v): (ST, &'a T)) -> Self {
1280 Self {
1281 inner: Some(InnerBindValue{
1282 value: InnerBindValueKind::Sized(v),
1283 push_bound_value_to_collector: &PushBoundValueToCollectorImpl {
1284 p: std::marker::PhantomData::<(ST, T)>
1285 }
1286 })
1287 }
1288 }
1289 }
1290
1291 impl<'a> diesel::query_builder::BindCollector<'a, MultiBackend> for MultiBindCollector<'a> {
1292 type Buffer = multi_connection_impl::bind_collector::BindValue<'a>;
1293
1294 fn push_bound_value<T, U>(
1295 &mut self,
1296 bind: &'a U,
1297 metadata_lookup: &mut (dyn std::any::Any + 'static),
1298 ) -> diesel::QueryResult<()>
1299 where
1300 MultiBackend: diesel::sql_types::HasSqlType<T>,
1301 U: diesel::serialize::ToSql<T, MultiBackend> + ?Sized + 'a,
1302 {
1303 let out = {
1304 let out = multi_connection_impl::bind_collector::BindValue::default();
1305 let mut out =
1306 diesel::serialize::Output::<MultiBackend>::new(out, metadata_lookup);
1307 let bind_is_null = bind.to_sql(&mut out).map_err(diesel::result::Error::SerializationError)?;
1308 if matches!(bind_is_null, diesel::serialize::IsNull::Yes) {
1309 let metadata = <MultiBackend as diesel::sql_types::HasSqlType<T>>::metadata(metadata_lookup);
1315 match (self, metadata) {
1316 #(#push_null_to_inner_collector)*
1317 _ => {
1318 unreachable!("We have matching metadata")
1319 },
1320 }
1321 return Ok(());
1322 } else {
1323 out.into_inner()
1324 }
1325 };
1326 match self {
1327 #(#push_to_inner_collector)*
1328 }
1329
1330 Ok(())
1331 }
1332
1333 fn push_null_value(&mut self, metadata: super::backend::MultiTypeMetadata) -> diesel::QueryResult<()> {
1334 match (self, metadata) {
1335 #(#push_null_to_inner_collector)*
1336 _ => unreachable!("We have matching metadata"),
1337 }
1338 Ok(())
1339 }
1340 }
1341
1342 #(#to_sql_impls)*
1343 #(#from_sql_impls)*
1344
1345 impl<T, ST> diesel::internal::derives::multiconnection::EnumMapping<super::MultiBackend> for diesel::internal::derives::multiconnection::IntMapping<T, ST>
1346 where
1347 ST: Default,
1348 T: diesel::deserialize::FromSql<ST, super::MultiBackend> + 'static + diesel::internal::derives::multiconnection::IntegerMappingHelper,
1349 for<'a> BindValue<'a>: From<(ST, &'a T)>,
1350 i128: TryFrom<T, Error: core::fmt::Display>,
1351 {
1352 fn map_to_database_value<'b>(
1353 output: &mut diesel::serialize::Output<'b, '_, super::MultiBackend>,
1354 variant: &'static diesel::internal::derives::multiconnection::EnumVariant,
1355 ) -> diesel::serialize::Result {
1356 let v = <T as diesel::internal::derives::multiconnection::IntegerMappingHelper>::as_ref(&variant.discriminant)?;
1357 output.set_value((ST::default(), v));
1358 Ok(diesel::serialize::IsNull::No)
1359 }
1360
1361 fn map_from_database_value(
1362 raw: <super::MultiBackend as diesel::backend::Backend>::RawValue<'_>,
1363 type_name: &'static str,
1364 variants: &'static [diesel::internal::derives::multiconnection::EnumVariant],
1365 ) -> diesel::deserialize::Result<usize> {
1366 let i = <T as diesel::deserialize::FromSql<ST, super::MultiBackend>>::from_sql(raw)?;
1367 Self::from_discriminant(type_name, variants, i)
1368 }
1369 }
1370
1371 impl diesel::internal::derives::multiconnection::EnumMapping<super::MultiBackend> for diesel::internal::derives::multiconnection::StringMapping {
1372 fn map_to_database_value<'b>(
1373 output: &mut diesel::serialize::Output<'b, '_, super::MultiBackend>,
1374 variant: &'static diesel::internal::derives::multiconnection::EnumVariant,
1375 ) -> diesel::serialize::Result {
1376 <&str as diesel::serialize::ToSql<diesel::sql_types::Text, super::MultiBackend>>::to_sql(
1377 &variant.sql_name,
1378 output,
1379 )
1380 }
1381
1382 fn map_from_database_value(
1383 raw: <super::MultiBackend as diesel::backend::Backend>::RawValue<'_>,
1384 type_name: &'static str,
1385 variants: &'static [diesel::internal::derives::multiconnection::EnumVariant],
1386 ) -> diesel::deserialize::Result<usize> {
1387 let s = <String as diesel::deserialize::FromSql<diesel::sql_types::Text, super::MultiBackend>>::from_sql(raw)?;
1388 Self::from_variant_name(type_name, variants, &s)
1389 }
1390 }
1391
1392 }
1393}
1394
1395fn generate_has_sql_type_impls(sql_type: TokenStream) -> TokenStream {
1396 {
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! {
1397 impl diesel::sql_types::HasSqlType<#sql_type> for super::MultiBackend {
1398 fn metadata(lookup: &mut Self::MetadataLookup) -> Self::TypeMetadata {
1399 Self::lookup_sql_type::<#sql_type>(lookup)
1400 }
1401 }
1402 }
1403}
1404
1405fn generate_from_sql_impls((sql_type, tpe): (TokenStream, TokenStream)) -> TokenStream {
1406 {
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! {
1407 impl diesel::deserialize::FromSql<#sql_type, super::MultiBackend> for #tpe {
1408 fn from_sql(
1409 bytes: <super::MultiBackend as diesel::backend::Backend>::RawValue<'_>,
1410 ) -> diesel::deserialize::Result<Self> {
1411 bytes.from_sql::<Self, #sql_type>()
1412 }
1413 }
1414
1415 }
1416}
1417
1418fn generate_to_sql_impls(
1419 (sql_type, tpe): (TokenStream, TokenStream),
1420 _connection_types: &[ConnectionVariant],
1421) -> TokenStream {
1422 {
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! {
1423 impl diesel::serialize::ToSql<#sql_type, super::MultiBackend> for #tpe {
1424 fn to_sql<'b>(
1425 &'b self,
1426 out: &mut diesel::serialize::Output<'b, '_, super::MultiBackend>,
1427 ) -> diesel::serialize::Result {
1428 out.set_value((#sql_type, self));
1429 Ok(diesel::serialize::IsNull::No)
1430 }
1431 }
1432 }
1433}
1434
1435fn generate_queryfragment_impls(
1436 trait_def: TokenStream,
1437 query_fragment_bounds: &[TokenStream],
1438) -> TokenStream {
1439 {
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! {
1440 impl #trait_def
1441 where
1442 Self: #(#query_fragment_bounds+)*
1443 {
1444 fn walk_ast<'b>(
1445 &'b self,
1446 pass: diesel::query_builder::AstPass<'_, 'b, MultiBackend>,
1447 ) -> diesel::QueryResult<()> {
1448 super::backend::MultiBackend::walk_variant_ast(self, pass)
1449 }
1450 }
1451 }
1452}
1453
1454fn generate_querybuilder(
1455 connection_types: &[ConnectionVariant],
1456 helper: &MultiHelper,
1457) -> TokenStream {
1458 let MultiHelper {
1459 multi_conn_helper,
1460 conn_backend,
1461 ..
1462 } = helper;
1463 let variants = connection_types.iter().map(|c| {
1464 let ident = c.name;
1465 let ty = c.ty;
1466 {
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! {
1467 #ident(<<#ty as #conn_backend>::Backend as diesel::backend::Backend>::QueryBuilder)
1468 }
1469 });
1470
1471 let push_sql_impl = connection_types.iter().map(|c| {
1472 let ident = c.name;
1473 {
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! {
1474 Self::#ident(q) => q.push_sql(sql)
1475 }
1476 });
1477
1478 let push_identifier_impl = connection_types.iter().map(|c| {
1479 let ident = c.name;
1480 {
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! {
1481 Self::#ident(q) => q.push_identifier(identifier)
1482 }
1483 });
1484
1485 let push_bind_param_impl = connection_types.iter().map(|c| {
1486 let ident = c.name;
1487 {
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! {
1488 Self::#ident(q) => q.push_bind_param()
1489 }
1490 });
1491
1492 let finish_impl = connection_types.iter().map(|c| {
1493 let ident = c.name;
1494 {
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! {
1495 Self::#ident(q) => q.finish()
1496 }
1497 });
1498
1499 let into_variant_functions = connection_types.iter().map(|c|{
1500 let ty = c.ty;
1501 let ident = c.name;
1502 let lower_ident = syn::Ident::new(&ident.to_string().to_lowercase(), ident.span());
1503 {
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! {
1504 pub(super) fn #lower_ident(&mut self) -> &mut <<#ty as #conn_backend>::Backend as diesel::backend::Backend>::QueryBuilder {
1505 match self {
1506 Self::#ident(qb) => qb,
1507 _ => unreachable!(),
1508 }
1509 }
1510 }
1511 });
1512
1513 let query_fragment_bounds = connection_types
1514 .iter()
1515 .map(|c| {
1516 let ty = c.ty;
1517 {
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! {
1518 diesel::query_builder::QueryFragment<<#ty as #conn_backend>::Backend>
1519 }
1520 })
1521 .collect::<Vec<_>>();
1522
1523 let duplicate_query_builder = connection_types.iter().map(|c| {
1524 let ident = c.name;
1525 {
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! {
1526 Self::#ident(_) => Self::#ident(Default::default())
1527 }
1528 });
1529
1530 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! {
1531 diesel::query_builder::QueryFragment<super::backend::MultiBackend>
1532 };
1533
1534 let query_fragment_impls = IntoIterator::into_iter([
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, "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!{
1536 <L, O> #query_fragment for diesel::internal::derives::multiconnection::LimitOffsetClause<L, O>
1537 },
1538 {
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! {
1539 <L, R> diesel::query_builder::QueryFragment<super::backend::MultiBackend, super::backend::MultiConcatClauseSyntax>
1540 for diesel::internal::derives::multiconnection::Concat<L, R>
1541 },
1542 {
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! {
1543 <T, U> diesel::query_builder::QueryFragment<super::backend::MultiBackend, super::backend::MultiArrayComparisonSyntax>
1544 for diesel::internal::derives::multiconnection::array_comparison::In<T, U>
1545 },
1546 {
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! {
1547 <T, U> diesel::query_builder::QueryFragment<super::backend::MultiBackend, super::backend::MultiArrayComparisonSyntax>
1548 for diesel::internal::derives::multiconnection::array_comparison::NotIn<T, U>
1549 },
1550 {
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! {
1551 <ST, I> diesel::query_builder::QueryFragment<super::backend::MultiBackend, super::backend::MultiArrayComparisonSyntax>
1552 for diesel::internal::derives::multiconnection::array_comparison::Many<ST, I>
1553 },
1554 {
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! {
1555 <T> diesel::query_builder::QueryFragment<super::backend::MultiBackend, super::backend::MultiExistsSyntax>
1556 for diesel::internal::derives::multiconnection::Exists<T>
1557 },
1558 {
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! {
1559 diesel::query_builder::QueryFragment<super::backend::MultiBackend, super::backend::MultiEmptyFromClauseSyntax>
1560 for diesel::internal::derives::multiconnection::NoFromClause
1561 },
1562 {
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! {
1563 diesel::query_builder::QueryFragment<super::backend::MultiBackend, super::backend::MultiDefaultValueClauseForInsert>
1564 for diesel::internal::derives::multiconnection::DefaultValues
1565 },
1566 {
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! {
1567 <Expr> diesel::query_builder::QueryFragment<super::backend::MultiBackend, super::backend::MultiReturningClause>
1568 for diesel::internal::derives::multiconnection::ReturningClause<Expr>
1569 },
1570 {
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! {
1571 <Expr> diesel::query_builder::QueryFragment<super::backend::MultiBackend, super::backend::MultiInsertWithDefaultKeyword>
1572 for diesel::insertable::DefaultableColumnInsertValue<Expr>
1573 },
1574 {
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! {
1575 <Tab, V, QId, const HAS_STATIC_QUERY_ID: bool> diesel::query_builder::QueryFragment<super::backend::MultiBackend, super::backend::MultiBatchInsertSupport>
1576 for diesel::internal::derives::multiconnection::BatchInsert<V, Tab, QId, HAS_STATIC_QUERY_ID>
1577 },
1578 {
let mut _s = ::quote::__private::TokenStream::new();
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "I");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "C");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "PK");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "Tab");
::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, "MultiBatchUpdateSupport");
::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, "BatchUpdate");
::quote::__private::push_lt(&mut _s);
::quote::__private::push_ident(&mut _s, "I");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "C");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "PK");
::quote::__private::push_comma(&mut _s);
::quote::__private::push_ident(&mut _s, "Tab");
::quote::__private::push_gt(&mut _s);
_s
}quote::quote! {
1579 <I, C, PK, Tab> diesel::query_builder::QueryFragment<super::backend::MultiBackend, super::backend::MultiBatchUpdateSupport>
1580 for diesel::internal::derives::multiconnection::BatchUpdate<I, C, PK, Tab>
1581 },
1582 {
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! {
1583 <S> diesel::query_builder::QueryFragment<super::backend::MultiBackend, super::backend::MultiAliasSyntax>
1584 for diesel::query_source::Alias<S>
1585 },
1586 ])
1587 .map(|t| generate_queryfragment_impls(t, &query_fragment_bounds));
1588
1589 let insert_values_impl_variants = connection_types.iter().map(|c| {
1590 let ident = c.name;
1591 let lower_ident = syn::Ident::new(&ident.to_string().to_lowercase(), c.name.span());
1592 let ty = c.ty;
1593 {
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! {
1594 super::backend::MultiBackend::#ident(_) => {
1595 <Self as diesel::insertable::InsertValues<<#ty as #conn_backend>::Backend, Col::Table>>::column_names(
1596 &self,
1597 out.cast_database(
1598 super::bind_collector::MultiBindCollector::#lower_ident,
1599 super::query_builder::MultiQueryBuilder::#lower_ident,
1600 super::backend::MultiBackend::#lower_ident,
1601 |l| {
1602 <#ty as #multi_conn_helper>::from_any(l)
1603 .expect("It's possible to downcast the metadata lookup type to the correct type")
1604 },
1605 ),
1606 )
1607 }
1608 }
1609 });
1610
1611 let insert_values_backend_bounds = connection_types.iter().map(|c| {
1612 let ty = c.ty;
1613 {
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! {
1614 diesel::insertable::DefaultableColumnInsertValue<diesel::insertable::ColumnInsertValue<Col, Expr>>: diesel::insertable::InsertValues<<#ty as #conn_backend>::Backend, Col::Table>
1615 }
1616 });
1617
1618 {
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_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, "BoxedCloneSelectStatement");
::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,
"BoxedCloneQueryHelper");
::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, "BoxedCloneLimitOffsetClause");
::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, "IntoBoxedCloneClause");
::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, "BoxedCloneClause");
::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,
"BoxedCloneLimitOffsetClause");
::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_clone");
::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, "BoxedCloneClause");
::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,
"BoxedCloneLimitOffsetClause");
::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, "IntoBoxedCloneClause");
::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_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_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, "BoxedCloneClause");
::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,
"BoxedCloneLimitOffsetClause");
::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_clone");
::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, "BoxedCloneClause");
::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,
"BoxedCloneLimitOffsetClause");
::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, "std");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "sync");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Arc");
::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, "IntoBoxedCloneClause");
::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_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_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, "BoxedCloneClause");
::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,
"BoxedCloneLimitOffsetClause");
::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_clone");
::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, "BoxedCloneClause");
::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,
"BoxedCloneLimitOffsetClause");
::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, "std");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "sync");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Arc");
::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, "IntoBoxedCloneClause");
::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, "L");
::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_ident(&mut _s, "Sync");
::quote::__private::push_add(&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_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_ident(&mut _s, "Sync");
::quote::__private::push_add(&mut _s);
::quote::__private::push_lifetime(&mut _s, "\'a");
::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, "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_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_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, "BoxedCloneClause");
::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,
"BoxedCloneLimitOffsetClause");
::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_clone");
::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, "BoxedCloneClause");
::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,
"BoxedCloneLimitOffsetClause");
::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, "std");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "sync");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Arc");
::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, "std");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "sync");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "Arc");
::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! {
1619 pub enum MultiQueryBuilder {
1620 #(#variants,)*
1621 }
1622
1623 impl MultiQueryBuilder {
1624 pub(super) fn duplicate(&self) -> Self {
1625 match self {
1626 #(#duplicate_query_builder,)*
1627 }
1628 }
1629 }
1630
1631 impl MultiQueryBuilder {
1632 #(#into_variant_functions)*
1633 }
1634
1635 impl diesel::query_builder::QueryBuilder<super::MultiBackend> for MultiQueryBuilder {
1636 fn push_sql(&mut self, sql: &str) {
1637 match self {
1638 #(#push_sql_impl,)*
1639 }
1640 }
1641
1642 fn push_identifier(&mut self, identifier: &str) -> diesel::QueryResult<()> {
1643 match self {
1644 #(#push_identifier_impl,)*
1645 }
1646 }
1647
1648 fn push_bind_param(&mut self) {
1649 match self {
1650 #(#push_bind_param_impl,)*
1651 }
1652 }
1653
1654 fn finish(self) -> String {
1655 match self {
1656 #(#finish_impl,)*
1657 }
1658 }
1659 }
1660
1661 #(#query_fragment_impls)*
1662
1663 impl<F, S, D, W, O, LOf, G, H, LC>
1664 diesel::query_builder::QueryFragment<
1665 super::backend::MultiBackend,
1666 super::backend::MultiSelectStatementSyntax,
1667 >
1668 for diesel::internal::derives::multiconnection::SelectStatement<
1669 F,
1670 S,
1671 D,
1672 W,
1673 O,
1674 LOf,
1675 G,
1676 H,
1677 LC,
1678 >
1679 where
1680 S: diesel::query_builder::QueryFragment<super::backend::MultiBackend>,
1681 F: diesel::query_builder::QueryFragment<super::backend::MultiBackend>,
1682 D: diesel::query_builder::QueryFragment<super::backend::MultiBackend>,
1683 W: diesel::query_builder::QueryFragment<super::backend::MultiBackend>,
1684 O: diesel::query_builder::QueryFragment<super::backend::MultiBackend>,
1685 LOf: diesel::query_builder::QueryFragment<super::backend::MultiBackend>,
1686 G: diesel::query_builder::QueryFragment<super::backend::MultiBackend>,
1687 H: diesel::query_builder::QueryFragment<super::backend::MultiBackend>,
1688 LC: diesel::query_builder::QueryFragment<super::backend::MultiBackend>,
1689 {
1690 fn walk_ast<'b>(
1691 &'b self,
1692 mut out: diesel::query_builder::AstPass<'_, 'b, MultiBackend>,
1693 ) -> diesel::QueryResult<()> {
1694 use diesel::internal::derives::multiconnection::SelectStatementAccessor;
1695
1696 out.push_sql("SELECT ");
1697 self.distinct_clause().walk_ast(out.reborrow())?;
1698 self.select_clause().walk_ast(out.reborrow())?;
1699 self.from_clause().walk_ast(out.reborrow())?;
1700 self.where_clause().walk_ast(out.reborrow())?;
1701 self.group_by_clause().walk_ast(out.reborrow())?;
1702 self.having_clause().walk_ast(out.reborrow())?;
1703 self.order_clause().walk_ast(out.reborrow())?;
1704 self.limit_offset_clause().walk_ast(out.reborrow())?;
1705 self.locking_clause().walk_ast(out.reborrow())?;
1706 Ok(())
1707 }
1708 }
1709
1710 impl<'a, ST, QS, GB>
1711 diesel::query_builder::QueryFragment<
1712 super::backend::MultiBackend,
1713 super::backend::MultiSelectStatementSyntax,
1714 >
1715 for diesel::internal::derives::multiconnection::BoxedSelectStatement<
1716 'a,
1717 ST,
1718 QS,
1719 super::backend::MultiBackend,
1720 GB,
1721 >
1722 where
1723 QS: diesel::query_builder::QueryFragment<super::backend::MultiBackend>
1724 {
1725 fn walk_ast<'b>(
1726 &'b self,
1727 pass: diesel::query_builder::AstPass<'_, 'b, MultiBackend>,
1728 ) -> diesel::QueryResult<()> {
1729 use diesel::internal::derives::multiconnection::BoxedQueryHelper;
1730 self.build_query(pass, |where_clause, pass| where_clause.walk_ast(pass))
1731 }
1732 }
1733
1734 impl diesel::query_builder::QueryFragment<super::backend::MultiBackend>
1735 for diesel::internal::derives::multiconnection::BoxedLimitOffsetClause<
1736 '_,
1737 super::backend::MultiBackend,
1738 >
1739 {
1740 fn walk_ast<'b>(
1741 &'b self,
1742 mut pass: diesel::query_builder::AstPass<'_, 'b, MultiBackend>,
1743 ) -> diesel::QueryResult<()> {
1744 if let Some(limit) = &self.limit {
1745 limit.walk_ast(pass.reborrow())?;
1746 }
1747 if let Some(offset) = &self.offset {
1748 offset.walk_ast(pass.reborrow())?;
1749 }
1750 Ok(())
1751 }
1752 }
1753
1754 impl<'a> diesel::query_builder::IntoBoxedClause<'a, super::multi_connection_impl::backend::MultiBackend>
1755 for diesel::internal::derives::multiconnection::LimitOffsetClause<diesel::internal::derives::multiconnection::NoLimitClause, diesel::internal::derives::multiconnection::NoOffsetClause>
1756 {
1757 type BoxedClause = diesel::internal::derives::multiconnection::BoxedLimitOffsetClause<'a, super::multi_connection_impl::backend::MultiBackend>;
1758
1759 fn into_boxed(self) -> Self::BoxedClause {
1760 diesel::internal::derives::multiconnection::BoxedLimitOffsetClause {
1761 limit: None,
1762 offset: None,
1763 }
1764 }
1765 }
1766 impl<'a, L> diesel::query_builder::IntoBoxedClause<'a, super::multi_connection_impl::backend::MultiBackend>
1767 for diesel::internal::derives::multiconnection::LimitOffsetClause<diesel::internal::derives::multiconnection::LimitClause<L>, diesel::internal::derives::multiconnection::NoOffsetClause>
1768 where diesel::internal::derives::multiconnection::LimitClause<L>: diesel::query_builder::QueryFragment<super::backend::MultiBackend> + Send + 'static,
1769 {
1770 type BoxedClause = diesel::internal::derives::multiconnection::BoxedLimitOffsetClause<'a, super::multi_connection_impl::backend::MultiBackend>;
1771 fn into_boxed(self) -> Self::BoxedClause {
1772 diesel::internal::derives::multiconnection::BoxedLimitOffsetClause {
1773 limit: Some(Box::new(self.limit_clause)),
1774 offset: None,
1775 }
1776 }
1777 }
1778 impl<'a, O> diesel::query_builder::IntoBoxedClause<'a, super::multi_connection_impl::backend::MultiBackend>
1779 for diesel::internal::derives::multiconnection::LimitOffsetClause<diesel::internal::derives::multiconnection::NoLimitClause, diesel::internal::derives::multiconnection::OffsetClause<O>>
1780 where diesel::internal::derives::multiconnection::OffsetClause<O>: diesel::query_builder::QueryFragment<super::backend::MultiBackend> + Send + 'static,
1781
1782 {
1783 type BoxedClause = diesel::internal::derives::multiconnection::BoxedLimitOffsetClause<'a, super::multi_connection_impl::backend::MultiBackend>;
1784 fn into_boxed(self) -> Self::BoxedClause {
1785 diesel::internal::derives::multiconnection::BoxedLimitOffsetClause {
1786 limit: None,
1787 offset: Some(Box::new(self.offset_clause)),
1788 }
1789 }
1790 }
1791 impl<'a, L, O> diesel::query_builder::IntoBoxedClause<'a, super::multi_connection_impl::backend::MultiBackend>
1792 for diesel::internal::derives::multiconnection::LimitOffsetClause<diesel::internal::derives::multiconnection::LimitClause<L>, diesel::internal::derives::multiconnection::OffsetClause<O>>
1793 where diesel::internal::derives::multiconnection::LimitClause<L>: diesel::query_builder::QueryFragment<super::backend::MultiBackend> + Send + 'static,
1794 diesel::internal::derives::multiconnection::OffsetClause<O>: diesel::query_builder::QueryFragment<super::backend::MultiBackend> + Send + 'static,
1795 {
1796 type BoxedClause = diesel::internal::derives::multiconnection::BoxedLimitOffsetClause<'a, super::multi_connection_impl::backend::MultiBackend>;
1797 fn into_boxed(self) -> Self::BoxedClause {
1798 diesel::internal::derives::multiconnection::BoxedLimitOffsetClause {
1799 limit: Some(Box::new(self.limit_clause)),
1800 offset: Some(Box::new(self.offset_clause)),
1801 }
1802 }
1803 }
1804
1805 impl<'a, ST, QS, GB>
1806 diesel::query_builder::QueryFragment<
1807 super::backend::MultiBackend,
1808 super::backend::MultiSelectStatementSyntax,
1809 >
1810 for diesel::internal::derives::multiconnection::BoxedCloneSelectStatement<
1811 'a,
1812 ST,
1813 QS,
1814 super::backend::MultiBackend,
1815 GB,
1816 >
1817 where
1818 QS: diesel::query_builder::QueryFragment<super::backend::MultiBackend>
1819 {
1820 fn walk_ast<'b>(
1821 &'b self,
1822 pass: diesel::query_builder::AstPass<'_, 'b, MultiBackend>,
1823 ) -> diesel::QueryResult<()> {
1824 use diesel::internal::derives::multiconnection::BoxedCloneQueryHelper;
1825 self.build_query(pass, |where_clause, pass| where_clause.walk_ast(pass))
1826 }
1827 }
1828
1829 impl diesel::query_builder::QueryFragment<super::backend::MultiBackend>
1830 for diesel::internal::derives::multiconnection::BoxedCloneLimitOffsetClause<
1831 '_,
1832 super::backend::MultiBackend,
1833 >
1834 {
1835 fn walk_ast<'b>(
1836 &'b self,
1837 mut pass: diesel::query_builder::AstPass<'_, 'b, MultiBackend>,
1838 ) -> diesel::QueryResult<()> {
1839 if let Some(limit) = &self.limit {
1840 limit.walk_ast(pass.reborrow())?;
1841 }
1842 if let Some(offset) = &self.offset {
1843 offset.walk_ast(pass.reborrow())?;
1844 }
1845 Ok(())
1846 }
1847 }
1848
1849 impl<'a> diesel::query_builder::IntoBoxedCloneClause<'a, super::multi_connection_impl::backend::MultiBackend>
1850 for diesel::internal::derives::multiconnection::LimitOffsetClause<diesel::internal::derives::multiconnection::NoLimitClause, diesel::internal::derives::multiconnection::NoOffsetClause>
1851 {
1852 type BoxedCloneClause = diesel::internal::derives::multiconnection::BoxedCloneLimitOffsetClause<'a, super::multi_connection_impl::backend::MultiBackend>;
1853
1854 fn into_boxed_clone(self) -> Self::BoxedCloneClause {
1855 diesel::internal::derives::multiconnection::BoxedCloneLimitOffsetClause {
1856 limit: None,
1857 offset: None,
1858 }
1859 }
1860 }
1861 impl<'a, L> diesel::query_builder::IntoBoxedCloneClause<'a, super::multi_connection_impl::backend::MultiBackend>
1862 for diesel::internal::derives::multiconnection::LimitOffsetClause<diesel::internal::derives::multiconnection::LimitClause<L>, diesel::internal::derives::multiconnection::NoOffsetClause>
1863 where diesel::internal::derives::multiconnection::LimitClause<L>: diesel::query_builder::QueryFragment<super::backend::MultiBackend> + Send + Sync + 'static,
1864 {
1865 type BoxedCloneClause = diesel::internal::derives::multiconnection::BoxedCloneLimitOffsetClause<'a, super::multi_connection_impl::backend::MultiBackend>;
1866 fn into_boxed_clone(self) -> Self::BoxedCloneClause {
1867 diesel::internal::derives::multiconnection::BoxedCloneLimitOffsetClause {
1868 limit: Some(std::sync::Arc::new(self.limit_clause)),
1869 offset: None,
1870 }
1871 }
1872 }
1873 impl<'a, O> diesel::query_builder::IntoBoxedCloneClause<'a, super::multi_connection_impl::backend::MultiBackend>
1874 for diesel::internal::derives::multiconnection::LimitOffsetClause<diesel::internal::derives::multiconnection::NoLimitClause, diesel::internal::derives::multiconnection::OffsetClause<O>>
1875 where diesel::internal::derives::multiconnection::OffsetClause<O>: diesel::query_builder::QueryFragment<super::backend::MultiBackend> + Send + Sync + 'static,
1876
1877 {
1878 type BoxedCloneClause = diesel::internal::derives::multiconnection::BoxedCloneLimitOffsetClause<'a, super::multi_connection_impl::backend::MultiBackend>;
1879 fn into_boxed_clone(self) -> Self::BoxedCloneClause {
1880 diesel::internal::derives::multiconnection::BoxedCloneLimitOffsetClause {
1881 limit: None,
1882 offset: Some(std::sync::Arc::new(self.offset_clause)),
1883 }
1884 }
1885 }
1886 impl<'a, L, O> diesel::query_builder::IntoBoxedCloneClause<'a, super::multi_connection_impl::backend::MultiBackend>
1887 for diesel::internal::derives::multiconnection::LimitOffsetClause<diesel::internal::derives::multiconnection::LimitClause<L>, diesel::internal::derives::multiconnection::OffsetClause<O>>
1888 where L: diesel::query_builder::QueryFragment<super::backend::MultiBackend> + Send + Sync + 'a,
1889 O: diesel::query_builder::QueryFragment<super::backend::MultiBackend> + Send + Sync + 'a,
1890 diesel::internal::derives::multiconnection::LimitClause<L>: diesel::query_builder::QueryFragment<super::backend::MultiBackend>,
1891 diesel::internal::derives::multiconnection::OffsetClause<O>: diesel::query_builder::QueryFragment<super::backend::MultiBackend>,
1892 {
1893 type BoxedCloneClause = diesel::internal::derives::multiconnection::BoxedCloneLimitOffsetClause<'a, super::multi_connection_impl::backend::MultiBackend>;
1894 fn into_boxed_clone(self) -> Self::BoxedCloneClause {
1895 diesel::internal::derives::multiconnection::BoxedCloneLimitOffsetClause {
1896 limit: Some(std::sync::Arc::new(self.limit_clause)),
1897 offset: Some(std::sync::Arc::new(self.offset_clause)),
1898 }
1899 }
1900 }
1901
1902 impl<Col, Expr> diesel::insertable::InsertValues<super::multi_connection_impl::backend::MultiBackend, Col::Table>
1903 for diesel::insertable::DefaultableColumnInsertValue<diesel::insertable::ColumnInsertValue<Col, Expr>>
1904 where
1905 Col: diesel::prelude::Column,
1906 Expr: diesel::prelude::Expression<SqlType = Col::SqlType>,
1907 Expr: diesel::prelude::AppearsOnTable<diesel::internal::derives::multiconnection::NoFromClause>,
1908 Self: diesel::query_builder::QueryFragment<super::multi_connection_impl::backend::MultiBackend>,
1909 #(#insert_values_backend_bounds,)*
1910 {
1911 fn column_names(
1912 &self,
1913 mut out: diesel::query_builder::AstPass<'_, '_, super::multi_connection_impl::backend::MultiBackend>
1914 ) -> diesel::QueryResult<()> {
1915 use diesel::internal::derives::multiconnection::AstPassHelper;
1916
1917 match out.backend() {
1918 #(#insert_values_impl_variants,)*
1919 }
1920 }
1921 }
1922 }
1923}
1924
1925fn generate_backend(connection_types: &[ConnectionVariant], helper: &MultiHelper) -> TokenStream {
1926 let MultiHelper {
1927 multi_conn_helper,
1928 conn_backend,
1929 ..
1930 } = helper;
1931 let backend_variants = connection_types.iter().map(|c| {
1932 let ident = c.name;
1933 let ty = c.ty;
1934 {
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! {
1935 #ident(<#ty as #conn_backend>::Backend)
1936 }
1937 });
1938
1939 let value_variants = connection_types.iter().map(|c| {
1940 let ident = c.name;
1941 let ty = c.ty;
1942 {
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! {
1943 #ident(<<#ty as #conn_backend>::Backend as diesel::backend::Backend>::RawValue<'a>)
1944 }
1945 });
1946
1947 let type_metadata_variants = connection_types.iter().map(|c| {
1948 let ident = c.name;
1949 let ty = c.ty;
1950 {
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! {
1951 pub(super) #ident: Option<<<#ty as #conn_backend>::Backend as diesel::sql_types::TypeMetadata>::TypeMetadata>
1952 }
1953 });
1954
1955 let has_sql_type_impls = [
1956 {
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),
1957 {
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),
1958 {
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),
1959 {
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),
1960 {
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),
1961 {
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),
1962 {
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),
1963 {
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),
1964 {
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),
1965 {
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),
1966 {
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),
1967 {
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),
1968 ]
1969 .into_iter()
1970 .map(generate_has_sql_type_impls);
1971
1972 let into_variant_functions = connection_types.iter().map(|c| {
1973 let ty = c.ty;
1974 let ident = c.name;
1975 let lower_ident = syn::Ident::new(&ident.to_string().to_lowercase(), ident.span());
1976 {
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! {
1977 pub(super) fn #lower_ident(&self) -> &<#ty as #conn_backend>::Backend {
1978 match self {
1979 Self::#ident(b) => b,
1980 _ => unreachable!(),
1981 }
1982 }
1983 }
1984 });
1985
1986 let from_sql_match_arms = connection_types.iter().map(|v| {
1987 let ident = v.name;
1988 let ty = v.ty;
1989 {
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!{
1990 Self::#ident(b) => {
1991 <T as diesel::deserialize::FromSql<ST, <#ty as #conn_backend>::Backend>>::from_sql(b)
1992 }
1993 }
1994 });
1995
1996 let backend_from_sql_bounds = connection_types.iter().map(|v| {
1997 let ty = v.ty;
1998 {
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! {
1999 T: diesel::deserialize::FromSql<ST, <#ty as #conn_backend>::Backend>
2000 }
2001 });
2002
2003 let query_fragment_impl_variants = connection_types.iter().map(|c| {
2004 let ident = c.name;
2005 let lower_ident = syn::Ident::new(&ident.to_string().to_lowercase(), c.name.span());
2006 let ty = c.ty;
2007 {
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! {
2008 super::backend::MultiBackend::#ident(_) => {
2009 <T as diesel::query_builder::QueryFragment<<#ty as #conn_backend>::Backend>>::walk_ast(
2010 ast_node,
2011 pass.cast_database(
2012 super::bind_collector::MultiBindCollector::#lower_ident,
2013 super::query_builder::MultiQueryBuilder::#lower_ident,
2014 super::backend::MultiBackend::#lower_ident,
2015 |l| {
2016 <#ty as #multi_conn_helper>::from_any(l)
2017 .expect("It's possible to downcast the metadata lookup type to the correct type")
2018 },
2019 ),
2020 )
2021 }
2022 }
2023 });
2024
2025 let query_fragment_impl_bounds = connection_types.iter().map(|c| {
2026 let ty = c.ty;
2027
2028 {
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! {
2029 T: diesel::query_builder::QueryFragment<<#ty as #conn_backend>::Backend>
2030 }
2031 });
2032
2033 let lookup_impl = connection_types.iter().map(|v| {
2034 let name = v.name;
2035 let ty = v.ty;
2036
2037 {
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!{
2038 if let Some(lookup) = <#ty as #multi_conn_helper>::from_any(lookup) {
2039 ret.#name = Some(<<#ty as #conn_backend>::Backend as diesel::sql_types::HasSqlType<ST>>::metadata(lookup));
2040 }
2041 }
2042
2043 });
2044
2045 let lookup_sql_type_bounds = connection_types.iter().map(|c| {
2046 let ty = c.ty;
2047 {
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! {
2048 <#ty as #conn_backend>::Backend: diesel::sql_types::HasSqlType<ST>
2049 }
2050 });
2051
2052 {
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, "MultiBatchUpdateSupport");
::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, "BatchUpdateSupport");
::quote::__private::push_eq(&mut _s);
::quote::__private::push_ident(&mut _s,
"MultiBatchUpdateSupport");
::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);
::quote::__private::push_ident(&mut _s, "type");
::quote::__private::push_ident(&mut _s,
"SqlFunctionParameterNotation");
::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,
"sql_function_parameter_notation");
::quote::__private::push_colon2(&mut _s);
::quote::__private::push_ident(&mut _s, "PositionalNotationOnly");
::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! {
2053 pub enum MultiBackend {
2054 #(#backend_variants,)*
2055 }
2056
2057 impl MultiBackend {
2058 #(#into_variant_functions)*
2059
2060 pub fn lookup_sql_type<ST>(lookup: &mut dyn std::any::Any) -> MultiTypeMetadata
2061 where #(#lookup_sql_type_bounds,)*
2062 {
2063 let mut ret = MultiTypeMetadata::default();
2064 #(#lookup_impl)*
2065 ret
2066 }
2067 }
2068
2069 impl MultiBackend {
2070 pub fn walk_variant_ast<'b, T>(
2071 ast_node: &'b T,
2072 pass: diesel::query_builder::AstPass<'_, 'b, Self>,
2073 ) -> diesel::QueryResult<()>
2074 where #(#query_fragment_impl_bounds,)*
2075 {
2076 use diesel::internal::derives::multiconnection::AstPassHelper;
2077 match pass.backend() {
2078 #(#query_fragment_impl_variants,)*
2079 }
2080 }
2081 }
2082
2083 pub enum MultiRawValue<'a> {
2084 #(#value_variants,)*
2085 }
2086
2087 impl MultiRawValue<'_> {
2088 pub fn from_sql<T, ST>(self) -> diesel::deserialize::Result<T>
2089 where #(#backend_from_sql_bounds,)*
2090 {
2091 match self {
2092 #(#from_sql_match_arms,)*
2093 }
2094 }
2095 }
2096
2097 impl diesel::backend::Backend for MultiBackend {
2098 type QueryBuilder = super::query_builder::MultiQueryBuilder;
2099 type RawValue<'a> = MultiRawValue<'a>;
2100 type BindCollector<'a> = super::bind_collector::MultiBindCollector<'a>;
2101 }
2102
2103 #[derive(Default)]
2104 #[allow(non_snake_case)]
2105 pub struct MultiTypeMetadata {
2106 #(#type_metadata_variants,)*
2107 }
2108
2109 impl diesel::sql_types::TypeMetadata for MultiBackend {
2110 type TypeMetadata = MultiTypeMetadata;
2111
2112 type MetadataLookup = dyn std::any::Any;
2113 }
2114
2115 pub struct MultiReturningClause;
2116 pub struct MultiInsertWithDefaultKeyword;
2117 pub struct MultiBatchInsertSupport;
2118 pub struct MultiBatchUpdateSupport;
2119 pub struct MultiDefaultValueClauseForInsert;
2120 pub struct MultiEmptyFromClauseSyntax;
2121 pub struct MultiExistsSyntax;
2122 pub struct MultiArrayComparisonSyntax;
2123 pub struct MultiConcatClauseSyntax;
2124 pub struct MultiSelectStatementSyntax;
2125 pub struct MultiAliasSyntax;
2126
2127 pub struct MultiWindowFrameClauseGroupSupport;
2128 pub struct MultiWindowFrameExclusionSupport;
2129 pub struct MultiAggregateFunctionExpressions;
2130 pub struct MultiBuiltInWindowFunctionRequireOrder;
2131
2132 impl diesel::backend::SqlDialect for MultiBackend {
2133 type ReturningClause = MultiReturningClause;
2134 type OnConflictClause = diesel::internal::derives::multiconnection::sql_dialect::on_conflict_clause::DoesNotSupportOnConflictClause;
2136 type InsertWithDefaultKeyword = MultiInsertWithDefaultKeyword;
2137 type BatchInsertSupport = MultiBatchInsertSupport;
2138 type BatchUpdateSupport = MultiBatchUpdateSupport;
2139 type DefaultValueClauseForInsert = MultiDefaultValueClauseForInsert;
2140 type EmptyFromClauseSyntax = MultiEmptyFromClauseSyntax;
2141 type ExistsSyntax = MultiExistsSyntax;
2142 type ArrayComparison = MultiArrayComparisonSyntax;
2143 type ConcatClause = MultiConcatClauseSyntax;
2144 type SelectStatementSyntax = MultiSelectStatementSyntax;
2145 type AliasSyntax = MultiAliasSyntax;
2146 type WindowFrameClauseGroupSupport = MultiWindowFrameClauseGroupSupport;
2147 type WindowFrameExclusionSupport = MultiWindowFrameExclusionSupport;
2148 type AggregateFunctionExpressions = MultiAggregateFunctionExpressions;
2149 type BuiltInWindowFunctionRequireOrder = MultiBuiltInWindowFunctionRequireOrder;
2150 type SqlFunctionParameterNotation = diesel::internal::derives::multiconnection::sql_dialect::sql_function_parameter_notation::PositionalNotationOnly;
2151 }
2152
2153 impl diesel::internal::derives::multiconnection::TrustedBackend for MultiBackend {}
2154 impl diesel::internal::derives::multiconnection::DieselReserveSpecialization for MultiBackend {}
2155
2156 #(#has_sql_type_impls)*
2157 }
2158}