123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051openPpxlib(* open StdLabels *)(* open Ppxlib.Ast_builder.Default *)letppx_fun_expander_args~loc(expr:Parsetree.expression)=let(moduleBuilder)=Ast_builder.makelocinmatchexpr.pexp_descwith|Ast.Pexp_construct(id,default)->letpattern=Builder.ppat_constructid(Some(Builder.pvar"x"))inletlookup=[%exprSpeed.Metadata.List.find_map~f:(function|[%ppattern]->Somex|_->None)]in(matchdefaultwith|None->lookup|Somed->[%exprfunx->x|>[%elookup]|>function|Somex->x|None->[%ed]])|_->failwith"Bad input to ppx_metadata. Value must be a variant constructor";;letppx_fun_expander_args_2~loc(expr:Parsetree.expression)=letexpr=ppx_fun_expander_args~locexprin[%exprfunx->x|>Speed.Domain.TestInput.get_metadata|>[%eexpr]];;let[@warning"-27"]extension=Extension.declare"m"Extension.Context.expressionAst_pattern.(single_expr_payload__)(fun~loc~pathe->e|>ppx_fun_expander_args~loc);;let[@warning"-27"]extension_2=Extension.declare"mx"Extension.Context.expressionAst_pattern.(single_expr_payload__)(fun~loc~pathe->e|>ppx_fun_expander_args_2~loc);;letrule=Context_free.Rule.extensionextensionletrule_2=Context_free.Rule.extensionextension_2let()=Driver.register_transformation~rules:[rule;rule_2]"ppx_metadata"