21 lines
595 B
OCaml
21 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)
|