module Or_error:sig..end
A common idiom is to wrap a function that is not implemented on all platforms, e.g.:
val do_something_linux_specific : (unit -> unit) Or_error.t
type'at =('a, Error.t) Result.t
include Monad.S
val try_with : ?backtrace:bool -> (unit -> 'a) -> 'a ttry_with f catches exceptions thrown by f and returns them in the Result.t as an
Error.t. try_with_join is like try_with, except that f can throw exceptions or
return an Error directly, without ending up with a nested error; it is equivalent to
Result.join (try_with f).val try_with_join : ?backtrace:bool -> (unit -> 'a t) -> 'a tval ok_exn : 'a t -> 'aok_exn t throws an exception if t is an Error, and otherwise returns the
contents of the Ok constructor.val of_exn : ?backtrace:[ `Get | `This of string ] -> exn -> 'a tof_exn exn is Error (Error.of_exn exn).val of_exn_result : ('a, exn) Result.t -> 'a tof_exn_result (Ok a) = Ok a, of_exn_result (Error exn) = of_exn exnval error : string -> 'a -> ('a -> Sexplib.Sexp.t) -> 'b terror message value sexp_of_value constructs an Error.t and returns it as a
Result.Error.val error_string : string -> 'a terror_string message is Error (Error.of_string message)val errorf : ('a, unit, string, 'b t) Pervasives.format4 -> 'aerrorf format arg1 arg2 ... is Error (sprintf format arg1 arg2 ...). Note that it
calculates the string eagerly, so when performance matters you may want to use error
instead.val tag : 'a t -> string -> 'a ttag t string is Result.map_error t ~f:(fun e -> Error.tag e string).
tag_arg is similar.val tag_arg : 'a t -> string -> 'b -> ('b -> Sexplib.Sexp.t) -> 'a tval unimplemented : string -> 'a tunimplemented name returns a standard error value for an unimplemented value.val combine_errors : 'a t list -> 'a list tcombine_errors ts returns Ok if every element in ts is Ok, else it returns
Error with all the errors in ts. More precisely:
| combine_errors Ok a1; ...; Ok an = Ok a1; ...; an
| combine_errors ...; Error e1; ...; Error en; ...
| = Error (Error.of_list e1; ...; en)
val combine_errors_unit : unit t list -> unit tcombine_errors_unit returns Ok if every element in ts is Ok (), else it
returns Error with all the errors in ts, like combine_errors.val t_of_sexp : (Sexplib.Sexp.t -> 'a) -> Sexplib.Sexp.t -> 'a tval sexp_of_t : ('a -> Sexplib.Sexp.t) -> 'a t -> Sexplib.Sexp.tval bin_t : 'a Bin_prot.Type_class.t -> 'a t Bin_prot.Type_class.tval bin_read_t : 'a Bin_prot.Read.reader -> 'a t Bin_prot.Read.readerval __bin_read_t__ : 'a Bin_prot.Read.reader -> (int -> 'a t) Bin_prot.Read.readerval bin_reader_t : 'a Bin_prot.Type_class.reader -> 'a t Bin_prot.Type_class.readerval bin_size_t : 'a Bin_prot.Size.sizer -> 'a t Bin_prot.Size.sizerval bin_write_t : 'a Bin_prot.Write.writer -> 'a t Bin_prot.Write.writerval bin_writer_t : 'a Bin_prot.Type_class.writer -> 'a t Bin_prot.Type_class.writertry_with f catches exceptions thrown by f and returns them in the Result.t as an
Error.t. try_with_join is like try_with, except that f can throw exceptions or
return an Error directly, without ending up with a nested error; it is equivalent to
Result.join (try_with f).ok_exn t throws an exception if t is an Error, and otherwise returns the
contents of the Ok constructor.of_exn exn is Error (Error.of_exn exn).of_exn_result (Ok a) = Ok a, of_exn_result (Error exn) = of_exn exnerror message value sexp_of_value constructs an Error.t and returns it as a
Result.Error.error_string message is Error (Error.of_string message)errorf format arg1 arg2 ... is Error (sprintf format arg1 arg2 ...). Note that it
calculates the string eagerly, so when performance matters you may want to use error
instead.tag t string is Result.map_error t ~f:(fun e -> Error.tag e string).
tag_arg is similar.unimplemented name returns a standard error value for an unimplemented value.combine_errors ts returns Ok if every element in ts is Ok, else it returns
Error with all the errors in ts. More precisely:
| combine_errors Ok a1; ...; Ok an = Ok a1; ...; an
| combine_errors ...; Error e1; ...; Error en; ...
| = Error (Error.of_list e1; ...; en)
combine_errors_unit returns Ok if every element in ts is Ok (), else it
returns Error with all the errors in ts, like combine_errors.