Up

Module type S = Core.Syscall_result_intf.S with type 'a syscall_result := 'a t

Signature

type ok_value
type 'a syscall_result
val sexp_of_t : t -> Sexplib.Sexp.t
val compare : t -> t -> int
val create_ok : ok_value -> t
val create_error : Core.Unix_error.t -> t
val is_ok : t -> bool
val is_error : t -> bool

This returns a preallocated object for all errors and at least a few ok_values, so can be used in many contexts where avoiding allocation is important.

val ok_exn : t -> ok_value
val error_exn : t -> Core.Unix_error.t
val reinterpret_error_exn : t -> _ syscall_result

This is more efficient than calling error_exn and then the create_error of the destination type.

val ok_or_unix_error_exn : t -> syscall_name:string -> ok_value
val ok_or_unix_error_with_args_exn : t -> syscall_name:string -> 'a -> ('a -> Core_kernel.Std.Sexp.t) -> ok_value