Control_file.Uppermodule Io = Ioval create_rw :
path:string ->
tmp_path:string option ->
overwrite:bool ->
Irmin_pack_unix__.Control_file_intf.Payload.Upper.Latest.t ->
(t, [> Io.create_error | Io.write_error ]) Stdlib.resultCreate a rw instance of t by creating a control file.
type open_error := [ | `Corrupted_control_file of string| `Io_misc of Io.misc_error| `No_such_file_or_directory of string| `Not_a_file| `Closed| `Unknown_major_pack_version of string ]val open_ :
path:string ->
tmp_path:string option ->
readonly:bool ->
(t, [> open_error ]) Stdlib.resultCreate a rw instance of t by reading an existing file at path. tmp_path will be used by RW instances when updating it's content, it is not required for RO instances or RW instances which will never be updated.
val close : t -> (unit, [> Io.close_error ]) Stdlib.resultval read_payload :
path:string ->
(Irmin_pack_unix__.Control_file_intf.Payload.Upper.Latest.t,
[> open_error | Io.close_error ])
Stdlib.resultval read_raw_payload :
path:string ->
(Irmin_pack_unix__.Control_file_intf.Payload.Upper.raw_payload,
[> open_error | Io.close_error ])
Stdlib.resultval payload : t -> Irmin_pack_unix__.Control_file_intf.Payload.Upper.Latest.tpayload 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.
val reload : t -> (unit, [> reload_error ]) Stdlib.resultRW 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.
type set_error := [ | `No_tmp_path_provided| Io.create_error| Io.write_error| move_error| Io.close_error ]val set_payload :
t ->
Irmin_pack_unix__.Control_file_intf.Payload.Upper.Latest.t ->
(unit, [> set_error ]) Stdlib.resultRW mode
Write a new payload on disk.
RO mode
Always returns an error.
val readonly : t -> boolval fsync : t -> (unit, [> Io.write_error ]) Stdlib.resultRW mode
Tell the OS to fush its internal buffers.
RO mode
Always returns Error `Ro_not_allowed.