package tezos-protocol-environment
Interface layer between the protocols and the shell
Install
Dune Dependency
Authors
Maintainers
Sources
tezos-16.0.tar.gz
sha256=ad9e08819871c75ba6f4530b125f7d157799398e4d77a1e6bfea9d91ff37ff55
sha512=c5dc4d40cc09bc6980fbbdb5c2e105bf4252cf9cfcb2b49660b0ebe4dc789f6709ec3b3bf2f87d81580d3eed9521eeb1c960f24d9b14eb0285aaba1f84d10a9b
doc/src/tezos-protocol-environment.structs/v0_data_encoding.ml.html
Source file v0_data_encoding.ml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125
(*****************************************************************************) (* *) (* Open Source License *) (* Copyright (c) 2021 Nomadic Labs. <contact@nomadic-labs.com> *) (* *) (* 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. *) (* *) (*****************************************************************************) include Data_encoding module Encoding = struct include Encoding let lazy_encoding encoding = let binary = lazy_encoding encoding in let json = let open Json_encoding in let write (type value) (module Repr : Json_repr.Repr with type value = value) le = match force_decode le with | Some r -> Json_repr.convert (module Json_repr.Ezjsonm) (module Repr) (Json.construct encoding r) | None -> apply_lazy ~fun_value:(fun _ -> assert false) ~fun_bytes:(fun b -> let (`Hex h) = Hex.of_bytes b in Repr.repr (`O [("unparsed-binary", Repr.repr (`String h))])) ~fun_combine:(fun _ _ -> assert false) le in let read (type value) (module Repr : Json_repr.Repr with type value = value) j = let j = Json_repr.convert (module Repr) (module Json_repr.Ezjsonm) j in make_lazy encoding (Json.destruct encoding j) in repr_agnostic_custom {write; read} ~schema:Json_schema.any in Data_encoding__Encoding.raw_splitted ~json ~binary let dynamic_size : ?kind:[`Uint30 | `Uint16 | `Uint8] -> 'a encoding -> 'a encoding = fun ?kind e -> let kind = (kind :> [`N | `Uint30 | `Uint16 | `Uint8] option) in dynamic_size ?kind e end include Encoding module Json = struct include Data_encoding.Json (* Suppress some optional parameters *) let construct encoding v = construct encoding v let destruct encoding j = destruct encoding j end module Binary = struct include Binary (* Some errors did not exist before env-v3, they are transformed into raised exceptions for backwards compatibility. *) let read encoding bytes offset length = match read_exn encoding (Bytes.unsafe_to_string bytes) offset length with | v -> Some v | exception Read_error (User_invariant_guard s | Exception_raised_in_user_function s) -> failwith s | exception Read_error _ -> None let write encoding value bytes offset allowed_bytes = Stdlib.Option.bind (make_writer_state bytes ~offset ~allowed_bytes) (fun state -> match write_exn encoding value state with | v -> Some v | exception Write_error (Exception_raised_in_user_function s) -> failwith s | exception Write_error _ -> None) let of_bytes e b = match of_bytes_exn e b with | v -> Some v | exception Read_error (User_invariant_guard s | Exception_raised_in_user_function s) -> failwith s | exception Read_error _ -> None (* Also removes [?buffer_size] by eta-expanding. *) let to_bytes encoding value = match to_bytes_exn encoding value with | v -> Some v | exception Write_error (Exception_raised_in_user_function s) -> failwith s | exception Write_error _ -> None let to_bytes_exn encoding value = match to_bytes_exn encoding value with | v -> v | exception Write_error (Exception_raised_in_user_function s) -> failwith s end
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>