Skip to content

Commit

Permalink
Add Option
Browse files Browse the repository at this point in the history
  • Loading branch information
llehtahw committed Jan 8, 2024
1 parent b7481c0 commit 8b17ff9
Showing 1 changed file with 16 additions and 5 deletions.
21 changes: 16 additions & 5 deletions procs/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -229,20 +229,31 @@ fn generic_one_for_macro(
input_operands.elems.push(parse_quote!(#x));
input_operands
});
stmts.push(parse_quote!(let _res = _closure(#input_operands);));
stmts.push(Stmt::Expr(parse_quote!(#after_take_id.merge(_res)), None));
stmts.push(Stmt::Expr(
parse_quote!({let _res = _closure(#input_operands); (#after_take_id, _res)}),
None,
));
let mut block: syn::ExprBlock = parse_quote!({});
block.block.stmts.extend(stmts);
func.block.stmts.insert(
0,
parse_quote!(
#[allow(unused)]
macro_rules! #generic_id {
($expr:expr => $($tts:tt)+) => {
($expr:expr => $closure:expr) => {
{
let #after_take_id = $expr;
let _closure = $($tts)+;
#block
let _closure = $closure;
let (after_take, res) = #block;
after_take.merge(res)
}
};
($expr:expr => $closure:expr, Option) => {
{
let #after_take_id = $expr;
let _closure = $closure;
let (after_take, res) = #block;
res.and_then(|x| Some(after_take.merge(x)))
}
};
}
Expand Down

0 comments on commit 8b17ff9

Please sign in to comment.