type error = | Invalid_byte of int | Appear when we expect a specific byte and we catch another one. |
| Invalid_version of Stdlib.Int32.t | Appear when the version of the IDX file is wrong. |
| Invalid_index_of_bigoffset of int | Appear when we try to read a big offset value and we can't catch it. |
| Expected_bigoffset_table | Appear when we don't have a big offset table but expect one. |
| Invalid_hash of Hash.t * Hash.t | Appear when the hash produced when we un-serialize the IDX file does not correspond with the hash provided. |
The error type.
refill off len t provides a new t with len bytes to read, starting at off. This byte range is read by calls to eval with t until `Await is returned.
val eval : Cstruct.t -> t -> [ `Await of t | `End of t * Hash.t | `Hash of t * (Hash.t * Checkseum.Crc32.t * int64) | `Error of t * error ]eval src t is:
`Await tifftneeds more input storage. The client must userefillto provide a new buffer and then callevalwith`Awaituntil other value returned.`End (t, hash)whentis done. We returns the hash of the IDX file.`Hash (t, (hash, crc, offset))whentcan returns a new value(hash, crc, offset). The client can callevalto continue the process. The value will be consumed then.`Error (t, exn)iff the decoder meet anerrorexn. The decoder can't continue and sticks in this situation.