package irmin-pack
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=9e72efdc13324602d8da46e0492b1f4e09ad524149845e1a9106882f60ad6e1f
sha512=ae9cb4b086c7b93962aafc2ea339ac85c6d66bdf769f70a16f62fa5c74d9b194e12ac00b510be5ffac5adff3aa20fd69c4ca4067dcc966767fefcf5c02bc9969
doc/irmin-pack.unix/Irmin_pack_unix/Pack_store/Make/argument-1-Fm/Control/index.html
Module Fm.Control
Abstraction for irmin-pack's control file.
It is parameterized with Io
, a file system abstraction (e.g. unix, mirage, eio_linux).
None of the functions raise exceptions.
module Io = Io
val create_rw :
path:string ->
overwrite:bool ->
Irmin_pack_unix__.Control_file_intf.Payload_v3.t ->
(t, [> Io.create_error | Io.write_error ]) result
Create a rw instance of t
by creating a control file.
type open_error := [
| `Corrupted_control_file
| `Io_misc of Io.misc_error
| `No_such_file_or_directory
| `Not_a_file
| `Closed
| `Unknown_major_pack_version of string
]
val open_ : path:string -> readonly:bool -> (t, [> open_error ]) result
Create a rw instance of t
by reading an existing file at path
.
val close : t -> (unit, [> Io.close_error ]) result
val payload : t -> Irmin_pack_unix__.Control_file_intf.Payload_v3.t
payload t
is the payload in t
.
That function doesn't perform IO.
RW mode
payload t
is the payload, as it was written to the file system.
RO mode
payload t
is the payload
, as it was seen during open_
or during the most recent reload
.
type reload_error := [
| `Corrupted_control_file
| `Io_misc of Io.misc_error
| `Closed
| `Rw_not_allowed
| `Unknown_major_pack_version of string
]
val reload : t -> (unit, [> reload_error ]) result
RW mode
Always returns an error.
RO mode
Reread the file on disk.
If the file changed since the last read, the payload in t
is updated to match the content of the file.
val set_payload :
t ->
Irmin_pack_unix__.Control_file_intf.Payload_v3.t ->
(unit, [> Io.write_error ]) result
RW mode
Write a new payload on disk.
RO mode
Always returns an error.
val readonly : t -> bool
val fsync : t -> (unit, [> Io.write_error ]) result
RW mode
Tell the os to fush its internal buffers.
RO mode
Always returns Error `Ro_not_allowed
.