module Descr:sig
..end
Type descriptor for safe unmarshalling.
This module provides a safe API on top of modules Unmarshal
of
Structural_descr
, using module Type
. This module offers the same
power as Unmarshal
, but in a safe way.
type 'a
t
Type of a type descriptor.
val t_unit : unit t
val t_int : int t
val t_string : string t
val t_float : float t
val t_bool : bool t
val t_int32 : int32 t
val t_int64 : int64 t
val t_nativeint : nativeint t
val unmarshable : 'a t
Descriptor for unmarshallable types.
val is_unmarshable : 'a t -> bool
val is_abstract : 'a t -> bool
exception Invalid_descriptor
val t_record : Structural_descr.pack array -> 'a -> 'a t
Type descriptor for records (the length of the array must be equal to the number of fields in the record).
Invalid_descriptor
if the descriptor cannot be built.val t_tuple : Structural_descr.pack array -> 'a -> 'a t
Type descriptor for tuples of any range (the length of the array range is the range of the tuple).
Invalid_descriptor
if the descriptor cannot be built.val t_pair : 'a t -> 'b t -> ('a * 'b) t
Type descriptor for pairs (2-tuples).
Safer that t_tuple
for pairs.
Invalid_descriptor
if the descriptor cannot be built.val t_list : 'a t -> 'a list t
Type descriptor for lists.
Invalid_descriptor
if the descriptor cannot be built.val t_ref : 'a t -> 'a Stdlib.ref t
Type descriptor for references.
Invalid_descriptor
if the descriptor cannot be built.val t_option : 'a t -> 'a option t
Type descriptor for options.
Invalid_descriptor
if the descriptor cannot be built.val t_queue : 'a t -> 'a Stdlib.Queue.t t
Type descriptor for queues.
Invalid_descriptor
if the descriptor cannot be built.val of_type : 'a Type.t -> 'a t
Type descriptor from the type value.
val of_structural : 'a Type.t -> Structural_descr.t -> 'a t
Type descriptor from the structural descriptor. The given type value ensures safety.
Unmarshal
's transformersval dependent_pair : 'a t -> ('a -> 'b t) -> ('a * 'b) t
Similar to Unmarshal.Dependent_pair
, but safe.
Invalid_descriptor
if the descriptor cannot be built.val transform : 'a t -> ('a -> 'a) -> 'a t
Similar to Unmarshal.Transform
, but safe.
Invalid_descriptor
if the given descriptor is incorrect.val return : 'a t -> (unit -> 'a) -> 'a t
Similar to Unmarshal.Return
, but safe.
Invalid_descriptor
if the descriptor cannot be built.val dynamic : (unit -> 'a t) -> 'a t
Similar to Unmarshal.Dynamic
.
Invalid_descriptor
if the descriptor cannot be built.val str : 'a t -> Structural_descr.t
Invalid_descriptor
if the given descriptor is incorrect.val pack : 'a t -> Structural_descr.pack
val input_val : Stdlib.in_channel -> 'a t -> 'a