package speed
Speed - go fast by writing test first
Install
Dune Dependency
Authors
Maintainers
Sources
0.2.0.tar.gz
md5=a455964b16c60eec12b8cb258b09fa2b
sha512=e60ac7dc9038ab3e2d2c5cd84729c9e04b722de52329b1de61dd15a1d274e1dc71dc11e0f0d033e6602ae0cee9e8d7baabd19f3918aa3c61e63c14ef0c90e606
doc/src/speed_ppx_metadata/ppx_metadata.ml.html
Source file ppx_metadata.ml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
open Ppxlib (* open StdLabels *) (* open Ppxlib.Ast_builder.Default *) let ppx_fun_expander_args ~loc (expr : Parsetree.expression) = let (module Builder) = Ast_builder.make loc in match expr.pexp_desc with | Ast.Pexp_construct (id, default) -> let pattern = Builder.ppat_construct id (Some (Builder.pvar "x")) in let lookup = [%expr Speed.Metadata.List.find_map ~f:(function | [%p pattern] -> Some x | _ -> None )] in ( match default with | None -> lookup | Some d -> [%expr fun x -> x |> [%e lookup] |> function | Some x -> x | None -> [%e d]] ) | _ -> failwith "Bad input to ppx_metadata. Value must be a variant constructor" ;; let ppx_fun_expander_args_2 ~loc (expr : Parsetree.expression) = let expr = ppx_fun_expander_args ~loc expr in [%expr fun x -> x |> Speed.Domain.TestInput.get_metadata |> [%e expr]] ;; let[@warning "-27"] extension = Extension.declare "m" Extension.Context.expression Ast_pattern.(single_expr_payload __) (fun ~loc ~path e -> e |> ppx_fun_expander_args ~loc) ;; let[@warning "-27"] extension_2 = Extension.declare "mx" Extension.Context.expression Ast_pattern.(single_expr_payload __) (fun ~loc ~path e -> e |> ppx_fun_expander_args_2 ~loc) ;; let rule = Context_free.Rule.extension extension let rule_2 = Context_free.Rule.extension extension_2 let () = Driver.register_transformation ~rules:[rule; rule_2] "ppx_metadata"
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>