package bytesrw
Install
Dune Dependency
Authors
Maintainers
Sources
sha512=fd1ee852cf9d8c3b1800d4927c18453b18385b49354fb3ea71ae08f1ca640741c0594863c5db339432da55a9ee42e4fdbc8d6ef0afe29a375aac1ec6cee11c0b
doc/bytesrw/Bytesrw/Bytes/Stream/index.html
Module Bytes.Stream
Byte 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.Reader
s and Bytes.Writer
s.
See the quick start and read more about streams in the tutorial.
Positions
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.
Formats
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.
Errors
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_context
The exception raised by streams reader, writers and their creation functions.
val error_message : (error * error_context) -> string
error_message e
turns error e
into an error message for humans.
val error_to_result : (error * error_context) -> ('a, string) result
error_to_result e
is Result.Error (error_message e)
.
val make_format_error :
format:format ->
case:('e -> error) ->
message:(error -> string) ->
'e format_error
make_format_error ~format ~case ~message
describes the type of error for format format
:
format
identifies the streamformat
.case
is the function that injects the type intoerror
.message
is a function that must stringify the results ofcase
.
See an example.
val error : 'e format_error -> ?context:[ `R | `W ] -> 'e -> 'a
error fmt e
errors with e
for a stream fmt
by raising an Error
exception.
Limits
The type for stream limits errors.
val limit_error : int format_error
limit_error
is a stream limit error.