Module Tezos_protocol_environment_alpha.Data_encoding

type json = [
  1. | `A of json list
  2. | `Bool of bool
  3. | `Float of float
  4. | `Null
  5. | `O of (string * json) list
  6. | `String of string
]
type tag_size = [
  1. | `Uint16
  2. | `Uint8
]
type json_schema = Tezos_base.TzPervasives.Data_encoding.json_schema
val positive_int32_schema : json_schema
type !'a t = 'a Tezos_base.TzPervasives.Data_encoding.t
type 'a encoding = 'a t
type string_json_repr =
  1. | Hex
  2. | Plain
val classify : 'a encoding -> [ `Dynamic | `Fixed of int | `Variable ]
val null : unit encoding
val empty : unit encoding
val unit : unit encoding
val constant : string -> unit encoding
val int8 : int encoding
val uint8 : int encoding
val int16 : int encoding
val uint16 : int encoding
val int31 : int encoding
val int32 : int32 encoding
val int64 : int64 encoding
val ranged_int : int -> int -> int encoding
val z : Z.t encoding
val n : Z.t encoding
val uint_like_n : ?max_value:int -> unit -> int encoding
val int_like_z : ?min_value:int -> ?max_value:int -> unit -> int encoding
val bool : bool encoding
val string : ?length_kind:[ `N | `Uint16 | `Uint30 | `Uint8 ] -> string_json_repr -> string encoding
val bytes : ?length_kind:[ `N | `Uint16 | `Uint30 | `Uint8 ] -> string_json_repr -> Bytes.t encoding
val option : 'a encoding -> 'a option encoding
val result : 'a encoding -> 'b encoding -> ('a, 'b) Pervasives.result encoding
val list : ?max_length:int -> 'a encoding -> 'a list encoding
val list_with_length : ?max_length:int -> [ `N | `Uint16 | `Uint30 | `Uint8 ] -> 'a encoding -> 'a list encoding
val conv : ('a -> 'b) -> ('b -> 'a) -> ?schema:json_schema -> 'b encoding -> 'a encoding
val conv_with_guard : ('a -> 'b) -> ('b -> ('a, string) Pervasives.result) -> ?schema:json_schema -> 'b encoding -> 'a encoding
val with_decoding_guard : ('a -> (unit, string) Pervasives.result) -> 'a encoding -> 'a encoding
val assoc : 'a encoding -> (string * 'a) list encoding
type 'a field
val req : ?title:string -> ?description:string -> string -> 't encoding -> 't field
val opt : ?title:string -> ?description:string -> string -> 't encoding -> 't option field
val varopt : ?title:string -> ?description:string -> string -> 't encoding -> 't option field
val dft : ?title:string -> ?description:string -> string -> 't encoding -> 't -> 't field
val obj1 : 'f1 field -> 'f1 encoding
val obj2 : 'f1 field -> 'f2 field -> ('f1 * 'f2) encoding
val obj3 : 'f1 field -> 'f2 field -> 'f3 field -> ('f1 * 'f2 * 'f3) encoding
val obj4 : 'f1 field -> 'f2 field -> 'f3 field -> 'f4 field -> ('f1 * 'f2 * 'f3 * 'f4) encoding
val obj5 : 'f1 field -> 'f2 field -> 'f3 field -> 'f4 field -> 'f5 field -> ('f1 * 'f2 * 'f3 * 'f4 * 'f5) encoding
val obj6 : 'f1 field -> 'f2 field -> 'f3 field -> 'f4 field -> 'f5 field -> 'f6 field -> ('f1 * 'f2 * 'f3 * 'f4 * 'f5 * 'f6) encoding
val obj7 : 'f1 field -> 'f2 field -> 'f3 field -> 'f4 field -> 'f5 field -> 'f6 field -> 'f7 field -> ('f1 * 'f2 * 'f3 * 'f4 * 'f5 * 'f6 * 'f7) encoding
val obj8 : 'f1 field -> 'f2 field -> 'f3 field -> 'f4 field -> 'f5 field -> 'f6 field -> 'f7 field -> 'f8 field -> ('f1 * 'f2 * 'f3 * 'f4 * 'f5 * 'f6 * 'f7 * 'f8) encoding
val obj9 : 'f1 field -> 'f2 field -> 'f3 field -> 'f4 field -> 'f5 field -> 'f6 field -> 'f7 field -> 'f8 field -> 'f9 field -> ('f1 * 'f2 * 'f3 * 'f4 * 'f5 * 'f6 * 'f7 * 'f8 * 'f9) encoding
val obj10 : 'f1 field -> 'f2 field -> 'f3 field -> 'f4 field -> 'f5 field -> 'f6 field -> 'f7 field -> 'f8 field -> 'f9 field -> 'f10 field -> ('f1 * 'f2 * 'f3 * 'f4 * 'f5 * 'f6 * 'f7 * 'f8 * 'f9 * 'f10) encoding
val merge_objs : 'o1 encoding -> 'o2 encoding -> ('o1 * 'o2) encoding
val tup1 : 'f1 encoding -> 'f1 encoding
val tup2 : 'f1 encoding -> 'f2 encoding -> ('f1 * 'f2) encoding
val tup3 : 'f1 encoding -> 'f2 encoding -> 'f3 encoding -> ('f1 * 'f2 * 'f3) encoding
val tup4 : 'f1 encoding -> 'f2 encoding -> 'f3 encoding -> 'f4 encoding -> ('f1 * 'f2 * 'f3 * 'f4) encoding
val tup5 : 'f1 encoding -> 'f2 encoding -> 'f3 encoding -> 'f4 encoding -> 'f5 encoding -> ('f1 * 'f2 * 'f3 * 'f4 * 'f5) encoding
val tup6 : 'f1 encoding -> 'f2 encoding -> 'f3 encoding -> 'f4 encoding -> 'f5 encoding -> 'f6 encoding -> ('f1 * 'f2 * 'f3 * 'f4 * 'f5 * 'f6) encoding
val tup7 : 'f1 encoding -> 'f2 encoding -> 'f3 encoding -> 'f4 encoding -> 'f5 encoding -> 'f6 encoding -> 'f7 encoding -> ('f1 * 'f2 * 'f3 * 'f4 * 'f5 * 'f6 * 'f7) encoding
val tup8 : 'f1 encoding -> 'f2 encoding -> 'f3 encoding -> 'f4 encoding -> 'f5 encoding -> 'f6 encoding -> 'f7 encoding -> 'f8 encoding -> ('f1 * 'f2 * 'f3 * 'f4 * 'f5 * 'f6 * 'f7 * 'f8) encoding
val tup9 : 'f1 encoding -> 'f2 encoding -> 'f3 encoding -> 'f4 encoding -> 'f5 encoding -> 'f6 encoding -> 'f7 encoding -> 'f8 encoding -> 'f9 encoding -> ('f1 * 'f2 * 'f3 * 'f4 * 'f5 * 'f6 * 'f7 * 'f8 * 'f9) encoding
val tup10 : 'f1 encoding -> 'f2 encoding -> 'f3 encoding -> 'f4 encoding -> 'f5 encoding -> 'f6 encoding -> 'f7 encoding -> 'f8 encoding -> 'f9 encoding -> 'f10 encoding -> ('f1 * 'f2 * 'f3 * 'f4 * 'f5 * 'f6 * 'f7 * 'f8 * 'f9 * 'f10) encoding
val merge_tups : 'a1 encoding -> 'a2 encoding -> ('a1 * 'a2) encoding
type 't case
type case_tag =
  1. | Tag of int
  2. | Json_only
type !'a matching_function = 'a -> match_result
and match_result
val matched : ?tag_size:tag_size -> int -> 'a encoding -> 'a -> match_result
val case : title:string -> ?description:string -> case_tag -> 'a encoding -> ('t -> 'a option) -> ('a -> 't) -> 't case
val matching : ?tag_size:tag_size -> 't matching_function -> 't case list -> 't encoding
val union : ?tag_size:tag_size -> 't case list -> 't encoding
module With_JSON_discriminant : sig ... end
val string_enum : (string * 'a) list -> 'a encoding
module Fixed : sig ... end
module Variable : sig ... end
module Bounded : sig ... end
val dynamic_size : ?kind:[ `N | `Uint16 | `Uint30 | `Uint8 ] -> 'a encoding -> 'a encoding
val check_size : int -> 'a encoding -> 'a encoding
val splitted : json:'a encoding -> binary:'a encoding -> 'a encoding
val mu : string -> ?title:string -> ?description:string -> ('a encoding -> 'a encoding) -> 'a encoding
val def : string -> ?title:string -> ?description:string -> 't encoding -> 't encoding
type 'a lazy_t = 'a Tezos_base.TzPervasives.Data_encoding.lazy_t
val lazy_encoding : 'a encoding -> 'a lazy_t encoding
val force_decode : 'a lazy_t -> 'a option
val force_bytes : 'a lazy_t -> bytes
val make_lazy : 'a encoding -> 'a -> 'a lazy_t
val apply_lazy : fun_value:('a -> 'b) -> fun_bytes:(bytes -> 'b) -> fun_combine:('b -> 'b -> 'b) -> 'a lazy_t -> 'b
module Compact : sig ... end
type 'a compact = 'a Compact.t
val json : json encoding
val json_schema : json_schema encoding
module Json : sig ... end
module Binary : sig ... end