Repodb.Embedded.Make
repodb · API reference
Parameters
module Json : JSONSignature
type json = Json.ttype 'a t = {
data : 'a;
fields : string list;
source : source;
}and source =
| JsonColumn of string
| Virtualtype 'a schema = {
name : string;
decode : json -> ('a, string) result;
encode : 'a -> json;
fields : string list;
default : 'a option;
}val schema :
name:string ->
decode:(json -> ('a, string) result) ->
encode:('a -> json) ->
fields:string list ->
?default:'a ->
unit ->
'a schemaval from_json : 'a schema -> json -> ('a t, string) resultval to_json : 'a schema -> 'a t -> jsonval from_json_string : 'a schema -> string -> ('a t, string) resultval to_json_string : 'a schema -> 'a t -> stringval data : 'a t -> 'aval fields : 'a schema -> string listval update : 'a t -> data:'b -> 'b ttype 'a embeds_one = 'a t optiontype 'a embeds_many = 'a t listval embeds_one_from_json : 'a schema -> json -> ('a t option, string) resultval embeds_one_to_json : 'a schema -> 'a t option -> jsonval embeds_many_from_json : 'a schema -> Json.t -> ('a t list, string) resultval embeds_many_to_json : 'a schema -> 'a t list -> Json.tval cast_embedded :
'a schema ->
(string * string) list ->
fields:string list ->
('a t, string) resultval validate_embedded : ('a -> (unit, 'b) result) -> 'a t -> ('a t, 'b) result