123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122(*
* Copyright (c) 2018-2022 Tarides <contact@tarides.com>
*
* 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!ImportexceptionRO_not_allowedmoduletypeCheckable=sigtype'attypehashvalintegrity_check:offset:int63->length:int->hash->_t->(unit,[`Wrong_hash|`Absent_value])resultendmoduletypeS=Irmin.Generic_key.SmoduleS_is_a_store(X:S):Irmin.Generic_key.S=XmoduletypeMaker=sigtypeendpoint=unitincludeIrmin.Key.Store_spec.SmoduleMake(Schema:Irmin.Schema.Extended):S(* We can't have `with module Schema = Schema` here, since the Schema
on the RHS contains more information than the one on the LHS. We _want_
to do something like `with module Schema = (Schema : Irmin.Schema.S)`,
but this isn't supported.
TODO: extract these extensions as a separate functor argument instead. *)withtypeSchema.Hash.t=Schema.Hash.tandtypeSchema.Branch.t=Schema.Branch.tandtypeSchema.Metadata.t=Schema.Metadata.tandtypeSchema.Path.t=Schema.Path.tandtypeSchema.Path.step=Schema.Path.stepandtypeSchema.Contents.t=Schema.Contents.tandtypeSchema.Info.t=Schema.Info.tandtypecontents_key=(Schema.Hash.t,Schema.Contents.t)contents_keyandtypenode_key=Schema.Hash.tnode_keyandtypecommit_key=Schema.Hash.tcommit_keyandtypeBackend.Remote.endpoint=endpointendmoduletypeSigs=sig(** A space-optimiezed, on-disk store inspired by
{{:https://git-scm.com/book/en/v2/Git-Internals-Packfiles} Git Packfiles}. *)(** {1 Configuration} *)moduleIndexing_strategy=Indexing_strategymoduleConf=Confvalconfig:?fresh:bool->?readonly:bool->?lru_size:int->?lru_max_memory:intoption->?index_log_size:int->?merge_throttle:Conf.merge_throttle->?indexing_strategy:Indexing_strategy.t->?use_fsync:bool->?dict_auto_flush_threshold:int->?suffix_auto_flush_threshold:int->?no_migrate:bool->?lower_root:stringoption->string->Irmin.config(** Configuration options for stores. See {!Irmin_pack.Conf} for more details. *)(** {1 Inode} *)moduleInode=Inode(** {1 Keys and Values} *)modulePack_key=Pack_keymodulePack_value=Pack_value(** {1 Store} *)exceptionRO_not_allowedmoduletypeS=SmoduletypeMaker=Maker(** {1 Integrity Check} *)moduletypeCheckable=Checkable(** {1 Metrics} *)moduleStats=Stats(** {1 Low-level Stores} *)moduleIndexable=IndexablemoduleAtomic_write=Atomic_write(** {1 On-disk format} *)moduleLayout=LayoutmoduleVersion=Versionend