mte/unikernel/duniverse/angstrom/benchmarks/async_benchmark.ml
2025-11-11 02:07:51 +01:00

20 lines
595 B
OCaml

open Async
let main parser () =
let toss _ = Deferred.unit in
let reader = Lazy.force Reader.stdin in
let parser =
match parser with
| `Http -> Angstrom.(RFC2616.request >>| fun x -> `Http x)
| `Json -> Angstrom.(RFC7159.json >>| fun x -> `Json x)
in
Angstrom_async.parse_many parser toss reader
>>| function
| Ok () -> ()
| Error err -> failwith err
;;
let () =
let parser = Command.Arg_type.of_alist_exn ["http", `Http; "json", `Json] in
Command.(async_spec ~summary:"async benchmark"
Spec.(empty +> Param.(anon ("PARSER" %: parser))) main |> run)