interpreter_encodings.mli
(*****************************************************************************)
(* *)
(* Open Source License *)
(* Copyright (c) 2022 Trili Tech <contact@trili.tech> *)
(* *)
(* Permission is hereby granted, free of charge, to any person obtaining a *)
(* copy of this software and associated documentation files (the "Software"),*)
(* to deal in the Software without restriction, including without limitation *)
(* the rights to use, copy, modify, merge, publish, distribute, sublicense, *)
(* and/or sell copies of the Software, and to permit persons to whom the *)
(* Software is furnished to do so, subject to the following conditions: *)
(* *)
(* The above copyright notice and this permission notice shall be included *)
(* in all copies or substantial portions of the Software. *)
(* *)
(* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR*)
(* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, *)
(* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL *)
(* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER*)
(* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING *)
(* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER *)
(* DEALINGS IN THE SOFTWARE. *)
(* *)
(*****************************************************************************)
module Source : sig
open Tezos_webassembly_interpreter.Source
val phrase_encoding : 'a Data_encoding.t -> 'a phrase Data_encoding.t
end
module Types : sig
open Tezos_webassembly_interpreter.Types
val num_type_encoding : num_type Data_encoding.t
val vec_type_encoding : vec_type Data_encoding.t
val ref_type_encoding : ref_type Data_encoding.t
val value_type_encoding : value_type Data_encoding.t
val result_type_encoding : value_type list Data_encoding.t
val func_type_encoding :
params_encoding:result_type Data_encoding.t ->
result_encoding:result_type Data_encoding.t ->
func_type Data_encoding.t
val mutability_encoding : mutability Data_encoding.t
val pack_size_encoding : pack_size Data_encoding.t
val pack_shape_encoding : pack_shape Data_encoding.t
val extension_encoding : extension Data_encoding.t
val vec_extension_encoding : vec_extension Data_encoding.t
val global_type_encoding : global_type Data_encoding.t
end
module Values : sig
open Tezos_webassembly_interpreter
open Values
val op_encoding :
'a Data_encoding.t ->
'b Data_encoding.t ->
('a, 'b, 'c, 'd) op Data_encoding.t
val vecop_encoding : 'a Data_encoding.t -> 'a vecop Data_encoding.t
val num_encoding : num Data_encoding.t
val vec_encoding : V128.t vecop Data_encoding.t
end
module V128 : sig
open Tezos_webassembly_interpreter
val laneop_encoding :
'a Data_encoding.t ->
'b Data_encoding.t ->
'c Data_encoding.t ->
'd Data_encoding.t ->
('a, 'b, 'c, 'd, 'e, 'f) V128.laneop Data_encoding.t
end
module Ast : sig
open Tezos_webassembly_interpreter
module IntOp : sig
val unop_encoding : Ast.IntOp.unop Data_encoding.t
val binop_encoding : Ast.IntOp.binop Data_encoding.t
val testop_encoding : Ast.IntOp.testop Data_encoding.t
val relop_encoding : Ast.IntOp.relop Data_encoding.t
val cvtop_encoding : Ast.IntOp.cvtop Data_encoding.t
end
module V128Op : sig
val itestop_encoding : Ast.V128Op.itestop Data_encoding.t
val iunop_encoding : Ast.V128Op.iunop Data_encoding.t
val ibinop_encoding : Ast.V128Op.ibinop Data_encoding.t
val irelop_encoding : Ast.V128Op.irelop Data_encoding.t
val icvtop_encoding : Ast.V128Op.icvtop Data_encoding.t
val ishiftop_encoding : Ast.V128Op.ishiftop Data_encoding.t
val ibitmaskop_encoding : Ast.V128Op.ibitmaskop Data_encoding.t
val vtestop_encoding : Ast.V128Op.vtestop Data_encoding.t
val vunop_encoding : Ast.V128Op.vunop Data_encoding.t
val vbinop_encoding : Ast.V128Op.vbinop Data_encoding.t
val vternop_encoding : Ast.V128Op.vternop Data_encoding.t
val testop_encoding : Ast.V128Op.testop Data_encoding.t
val unop_encoding : Ast.V128Op.unop Data_encoding.t
val binop_encoding : Ast.V128Op.binop Data_encoding.t
val relop_encoding : Ast.V128Op.relop Data_encoding.t
val cvtop_encoding : Ast.V128Op.cvtop Data_encoding.t
val shiftop_encoding : Ast.V128Op.shiftop Data_encoding.t
val bitmaskop_encoding : Ast.V128Op.bitmaskop Data_encoding.t
val nsplatop_encoding : Ast.V128Op.nsplatop Data_encoding.t
val nextractop_encoding :
'a Data_encoding.t -> 'a Ast.V128Op.nextractop Data_encoding.t
val nreplaceop_encoding : Ast.V128Op.nreplaceop Data_encoding.t
val splatop_encoding : Ast.V128Op.splatop Data_encoding.t
val extractop_encoding : Ast.V128Op.extractop Data_encoding.t
val replaceop_encoding : Ast.V128Op.replaceop Data_encoding.t
end
val testop_encoding : Ast.testop Data_encoding.t
val unop_encoding : Ast.unop Data_encoding.t
val binop_encoding : Ast.binop Data_encoding.t
val relop_encoding : Ast.relop Data_encoding.t
val cvtop_encoding : Ast.cvtop Data_encoding.t
val vec_testop_encoding : Ast.V128Op.testop Values.vecop Data_encoding.t
val vec_relop_encoding : Ast.V128Op.relop Values.vecop Data_encoding.t
val vec_unop_encoding : Ast.V128Op.unop Values.vecop Data_encoding.t
val vec_binop_encoding : Ast.V128Op.binop Values.vecop Data_encoding.t
val vec_cvtop_encoding : Ast.V128Op.cvtop Values.vecop Data_encoding.t
val vec_shiftop_encoding : Ast.V128Op.shiftop Values.vecop Data_encoding.t
val vec_bitmaskop_encoding : Ast.V128Op.bitmaskop Values.vecop Data_encoding.t
val vec_vtestop_encoding : Ast.V128Op.vtestop Values.vecop Data_encoding.t
val vec_vunop_encoding : Ast.V128Op.vunop Values.vecop Data_encoding.t
val vec_vbinop_encoding : Ast.V128Op.vbinop Values.vecop Data_encoding.t
val vec_vternop_encoding : Ast.V128Op.vternop Values.vecop Data_encoding.t
val vec_splatop_encoding : Ast.V128Op.splatop Values.vecop Data_encoding.t
val vec_extractop_encoding : Ast.V128Op.extractop Values.vecop Data_encoding.t
val vec_replaceop_encoding : Ast.V128Op.replaceop Values.vecop Data_encoding.t
val memop_encoding :
'a Data_encoding.t ->
'b Data_encoding.t ->
('a, 'b) Ast.memop Data_encoding.t
val loadop_encoding :
(Types.num_type, (Types.pack_size * Types.extension) option) Ast.memop
Data_encoding.t
val storeop_encoding :
(Types.num_type, Types.pack_size option) Ast.memop Data_encoding.t
val vec_loadop_encoding :
(Types.vec_type, (Types.pack_size * Types.vec_extension) option) Ast.memop
Data_encoding.t
val vec_storeop_encoding : (Types.vec_type, unit) Ast.memop Data_encoding.t
val vec_laneop_encoding :
((Types.vec_type, Types.pack_size) Ast.memop * int) Data_encoding.t
val var_encoding : int32 Source.phrase Data_encoding.t
val num_encoding : Values.num Source.phrase Data_encoding.t
val vec_encoding : V128.t Values.vecop Source.phrase Data_encoding.t
val block_type_encoding : Ast.block_type Data_encoding.t
val block_label_encoding : Ast.block_label Data_encoding.t
val data_label_encoding : Ast.data_label Data_encoding.t
val import_desc_encoding : Ast.import_desc Data_encoding.t
val export_desc_encoding : Ast.export_desc Data_encoding.t
val const_encoding : Ast.const Data_encoding.t
val segment_mode_encoding : Ast.segment_mode Data_encoding.t
val table_encoding : Ast.table Data_encoding.t
val memory_encoding : Ast.memory Data_encoding.t
val global_encoding : Ast.global Data_encoding.t
val start_encoding : Ast.start Data_encoding.t
end