Support Rust expression like {x.y} in SQL strings

This commit is contained in:
gwenn
2023-08-20 10:35:26 +02:00
parent e8f73c93c4
commit b86d9321b5
4 changed files with 34 additions and 7 deletions

View File

@@ -58,11 +58,15 @@ fn try_bind(input: TokenStream) -> Result<TokenStream> {
let mut res = TokenStream::new();
for (i, name) in info.names.iter().enumerate() {
res.extend(Some(stmt.clone()));
let offset = match name.as_bytes()[0] {
b'$' | b'@' | b'#' | b':' => 1,
_ => 0, // captured identifier: {...}
};
res.extend(respan(
parse_ts(&format!(
".raw_bind_parameter({}, &{})?;",
i + 1,
&name[1..]
&name[offset..]
)),
call_site,
));