Module Deriving_Json

Typesafe IO (based on the deriving library).

see https://github.com/ocsigen/deriving

the source code of deriving

see http://code.google.com/p/deriving/

the documentation of the original deriving library by Jeremy Yallop.

type 'a t

The type of JSON parser/printer for value of type 'a.

val make : (Stdlib.Buffer.t -> 'a -> unit) -> (Deriving_Json_lexer.lexbuf -> 'a) -> 'a t
val write : 'a t -> Stdlib.Buffer.t -> 'a -> unit
val read : 'a t -> Deriving_Json_lexer.lexbuf -> 'a
val to_string : 'a t -> 'a -> string

to_string Json.t<ty> v marshal the v of type ty to a JSON string.

val from_string : 'a t -> string -> 'a

from_string Json.t<ty> s safely unmarshal the JSON s into an OCaml value of type ty. Throws Failure if the received value isn't the javascript representation of a value of type ty.

module type Json = sig ... end

The signature of the JSON class.

module type Json_min = sig ... end
module type Json_min' = sig ... end
module type Json_min'' = sig ... end
module Defaults : functor (J : Json_min) -> Json with type a = J.a
module Defaults' : functor (J : Json_min') -> Json with type a = J.a
module Defaults'' : functor (J : Json_min'') -> Json with type a = J.a
module Json_char : Json with type a = char
module Json_bool : Json with type a = bool
module Json_unit : Json with type a = unit
module Json_int : Json with type a = int
module Json_int32 : Json with type a = int32
module Json_int64 : Json with type a = int64
module Json_nativeint : Json with type a = nativeint
module Json_float : Json with type a = float
module Json_string : Json with type a = string
module Json_list : functor (A : Json) -> Json with type a = A.a list
module Json_ref : functor (A : Json) -> Json with type a = A.a Stdlib.ref
module Json_option : functor (A : Json) -> Json with type a = A.a option
module Json_array : functor (A : Json) -> Json with type a = A.a array
val read_list : (Deriving_Json_lexer.lexbuf -> 'a) -> Deriving_Json_lexer.lexbuf -> 'a list
val write_list : (Stdlib.Buffer.t -> 'a -> unit) -> Stdlib.Buffer.t -> 'a list -> unit
val read_ref : (Deriving_Json_lexer.lexbuf -> 'a) -> Deriving_Json_lexer.lexbuf -> 'a Stdlib.ref
val write_ref : (Stdlib.Buffer.t -> 'a -> unit) -> Stdlib.Buffer.t -> 'a Stdlib.ref -> unit
val read_option : (Deriving_Json_lexer.lexbuf -> 'a) -> Deriving_Json_lexer.lexbuf -> 'a option
val write_option : (Stdlib.Buffer.t -> 'a -> unit) -> Stdlib.Buffer.t -> 'a option -> unit
val read_array : (Deriving_Json_lexer.lexbuf -> 'a) -> Deriving_Json_lexer.lexbuf -> 'a array
val write_array : (Stdlib.Buffer.t -> 'a -> unit) -> Stdlib.Buffer.t -> 'a array -> unit