`sig
type name = string
exception Not_set of PropList.name * string option
exception No_printer of PropList.name
exception Unknown_field of PropList.name * PropList.name
module Data :
sig
type t
val create : unit -> PropList.Data.t
val clear : PropList.Data.t -> unit
val elements : PropList.Data.t -> string list
end
module Schema :
sig
type ('a, 'b) value
type ('a, 'b) t
val create :
?case_insensitive:bool -> PropList.name -> ('a, 'b) PropList.Schema.t
val mem : ('a, 'b) PropList.Schema.t -> PropList.name -> bool
val get :
('a, 'b) PropList.Schema.t ->
PropList.Data.t -> PropList.name -> string
val set :
('a, 'b) PropList.Schema.t ->
PropList.Data.t -> PropList.name -> ?context:'a -> string -> unit
val fold :
('a -> PropList.name -> 'b -> (unit -> string) option -> 'a) ->
'a -> ('c, 'b) PropList.Schema.t -> 'a
val iter :
(PropList.name -> 'a -> (unit -> string) option -> unit) ->
('b, 'a) PropList.Schema.t -> unit
val name : ('a, 'b) PropList.Schema.t -> PropList.name
end
module Field :
sig
type ('a, 'b, 'c) t
val create :
?schema:('a, 'b) PropList.Schema.t ->
?name:PropList.name ->
?parse:(?context:'a -> string -> 'c) ->
?print:('c -> string) ->
?default:'c ->
?update:(?context:'a -> 'c -> 'c -> 'c) ->
?help:(unit -> string) -> 'b -> ('a, 'c, 'b) PropList.Field.t
val fset :
PropList.Data.t ->
('a, 'b, 'c) PropList.Field.t -> ?context:'a -> 'b -> unit
val fget : PropList.Data.t -> ('a, 'b, 'c) PropList.Field.t -> 'b
val fsets :
PropList.Data.t ->
('a, 'b, 'c) PropList.Field.t -> ?context:'a -> string -> unit
val fgets : PropList.Data.t -> ('a, 'b, 'c) PropList.Field.t -> string
end
module FieldRO :
sig
val create :
?schema:('a, 'b) PropList.Schema.t ->
?name:PropList.name ->
?parse:(?context:'a -> string -> 'c) ->
?print:('c -> string) ->
?default:'c ->
?update:(?context:'a -> 'c -> 'c -> 'c) ->
?help:(unit -> string) -> 'b -> PropList.Data.t -> 'c
end
end`