irmin-pack

Irmin backend which stores values in a pack file
IN THIS PACKAGE
Module Irmin_pack_unix . Dict . S . Fm . Control
module Io = Io
type t
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
| `Read_on_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
| `Read_on_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.