module Make () = struct type t = Jv.t let type' e = Jv.get e "type" |> Jv.to_string let target e = Jv.get e "target" |> Brr.Ev.target_of_jv let source_target e = Jv.get e "sourceTarget" |> Brr.Ev.target_of_jv let propagated_from e = Jv.get e "propagatedFrom" let latlng e = Latlng.of_jv_t @@ Jv.get e "latlng" let layer_point e = Jv.get e "layerPoint" let container_point e = Jv.get e "containerPoint" let original_event e = Jv.get e "originalEvent" let message e = Jv.get e "message" |> Jv.to_string let code e = Jv.get e "code" |> Jv.to_int end module Event = Make () module Keyboard = Make () module Mouse = Make () module Error = Make ()