Make.Aoval end_off : t -> Optint.Int63.tend_off t returns the largest virtual offset contained in the sparse file t. Attempting to append with a strictly smaller virtual offset will fail.
val mapping_size : t -> Optint.Int63.tend_off t returns the current size of the mapping file associated to the sparse file t including additions not yet flushed to the file system. It can be passed to open_ao as mapping_size when opening the file again.
val create :
mapping:string ->
data:string ->
(t, [> Io.create_error ]) Stdlib.resultcreate ~mapping ~data initializes a new empty sparse file, represented on disk by two files named mapping and data.
val open_ao :
mapping_size:Optint.Int63.t ->
mapping:string ->
data:string ->
(t,
[> Io.open_error
| `Closed
| `Invalid_argument
| `Read_out_of_bounds
| `Inconsistent_store ])
Stdlib.resultopen_ao ~mapping_size ~mapping ~data returns an append-only instance of the sparse file.
val append_seq_exn :
t ->
off:Optint.Int63.t ->
string Irmin.Export_for_backends.Seq.t ->
unitappend_seq_exn t ~off seq appends the sequence of strings seq to the sparse file t, at the virtual offset off which must be larger than the previously appended offsets.
val flush : t -> (unit, [> Io.write_error ]) Stdlib.resultFlush the append buffer. Does not call fsync.
val close : t -> (unit, [> Io.close_error | `Pending_flush ]) Stdlib.resultClose the underlying files.