Module Mavryk_base.Protocol

type t = {
  1. expected_env : env_version;
  2. components : component list;
}
and component = {
  1. name : string;
  2. interface : string option;
  3. implementation : string;
}
and env_version =
  1. | V0
  2. | V1
  3. | V2
  4. | V3
  5. | V4
  6. | V5
  7. | V6
  8. | V7
  9. | V8
  10. | V9
  11. | V10
  12. | V11
  13. | V12
val component_encoding : component Data_encoding.t
val compare_version : env_version -> env_version -> int

compare_version va vb is negative if va is a less recent version than vb, positive if va is a more recent version than vb, zero if they are the same version.

In less precise but more intuitive terms, compare_version va vb <op> 0 is the same truthness as va <op> vb where <op> is any comparison operator.

E.g., compare_version V0 V1 < 0 is true.

val env_version_encoding : env_version Data_encoding.t
val pp_ocaml : Stdlib.Format.formatter -> t -> unit
include S.HASHABLE with type t := t and type hash := Mavryk_crypto.Hashed.Protocol_hash.t
include S.T with type t := t
include Mavryk_stdlib.Compare.S with type t := t
val (=) : t -> t -> bool

x = y iff compare x y = 0

val (<>) : t -> t -> bool

x <> y iff compare x y <> 0

val (<) : t -> t -> bool

x < y iff compare x y < 0

val (<=) : t -> t -> bool

x <= y iff compare x y <= 0

val (>=) : t -> t -> bool

x >= y iff compare x y >= 0

val (>) : t -> t -> bool

x > y iff compare x y > 0

val compare : t -> t -> int

compare an alias for the functor parameter's compare function

val equal : t -> t -> bool

equal x y iff compare x y = 0

val max : t -> t -> t

max x y is x if x >= y otherwise it is y

val min : t -> t -> t

min x y is x if x <= y otherwise it is y

val pp : Stdlib.Format.formatter -> t -> unit
val encoding : t Data_encoding.t
val to_bytes : t -> Stdlib.Bytes.t
val of_bytes : Stdlib.Bytes.t -> t option
val hash_raw : Stdlib.Bytes.t -> Mavryk_crypto.Hashed.Protocol_hash.t
val of_bytes_exn : Stdlib.Bytes.t -> t
val of_string_exn : Stdlib.String.t -> t
val of_string : Stdlib.String.t -> t option
val bounded_encoding : ?max_size:int -> unit -> t Data_encoding.t
val module_name_of_env_version : env_version -> string
module Meta : sig ... end