package irmin-git
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>
Git backend for Irmin
Install
dune-project
Dependency
Authors
Maintainers
Sources
irmin-3.10.0.tbz
sha256=92a9de7a0a2a35c2feba0c35a806b1f0df24c1c0d15164eebf3f919296d26715
sha512=0203ec5117a851ad5afeb2f9091659b4e142e231b6b945caab93f4d7beb23397c8ac43f7056e91d18f4bff0be1062f6ae966d221f877c229328c0cbbf29fd9f0
doc/src/irmin-git/contents.ml.html
Source file contents.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(* * Copyright (c) 2013-2022 Thomas Gazagnaire <thomas@gazagnaire.org> * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *) open Import module Make (G : Git.S) (C : Irmin.Contents.S) = struct module Raw = Git.Value.Make (G.Hash) module Hash = Irmin.Hash.Make (G.Hash) module V = struct type t = C.t let type_eq = function `Blob -> true | _ -> false let of_git = function | Git.Value.Blob b -> ( let str = G.Value.Blob.to_string b in match Irmin.Type.of_string C.t str with | Ok x -> Some x | Error (`Msg e) -> Fmt.invalid_arg "error %s" e) | _ -> None let to_git b = let str = Irmin.Type.to_string C.t b in G.Value.blob (G.Value.Blob.of_string str) end include Content_addressable.Check_closed (Content_addressable.Make (G) (V)) module Val = struct include C let to_bin t = Raw.to_raw (V.to_git t) let encode_bin (t : t) k = k (to_bin t) let decode_bin buf pos_ref = [%log.debug "Content.decode_bin"]; let off = !pos_ref in match Raw.of_raw_with_header ~off buf with | Ok g -> ( match V.of_git g with | Some v -> let len = Raw.length_with_header g |> Int64.to_int in pos_ref := off + len; v | None -> failwith "wrong object kind") | Error (`Msg _) -> failwith "wrong object" let size_of = Irmin.Type.Size.custom_dynamic () let t = Irmin.Type.like ~bin:(encode_bin, decode_bin, size_of) t end end
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>