Bytes.StreamByte streams.
Byte streams are sequences of non-empty byte slices ended by a single Slice.eod slice. They have no concrete incarnation, they are observed by Bytes.Readers and Bytes.Writers.
See the quick start and read more about streams in the tutorial.
The type for stream positions.
The position of a stream is the zero-based byte index of the next byte to read or write. It can also be seen as the count of bytes read or written by a stream reader or writer.
The type for stream formats. An identifier for the format of read or written bytes. Favour mime types or lowercased file extensions without the dot.
Read more about errors in the tutorial.
The type for stream errors. Stream formats add their own cases to this type. See an example.
exception Error of error * error_contextThe exception raised by streams reader, writers and their creation functions.
val error_message : (error * error_context) -> stringerror_message e turns error e into an error message for humans.
val error_to_result : (error * error_context) -> ('a, string) Stdlib.resulterror_to_result e is Result.Error (error_message e).
val make_format_error :
format:format ->
case:('e -> error) ->
message:(error -> string) ->
'e format_errormake_format_error ~format ~case ~message describes the type of error for format format:
format identifies the stream format.case is the function that injects the type into error.message is a function that must stringify the results of case.See an example.
val error : 'e format_error -> ?context:[ `R | `W ] -> 'e -> 'aerror fmt e errors with e for a stream fmt by raising an Error exception.
The type for stream limits errors.
val limit_error : int format_errorlimit_error is a stream limit error.