expectations 0.1.0
Error handling that bundles exceptions with return values
To use this package, run the following command in your project's root directory:
Manual usage
Put the following dependency into your project's dependences section:
expectations
Error handling that bundles exceptions with return values.
Features
- Useable in
@safe
code. - Specialized implementation for
Expected!void
. - Monadic interface for composing functions that return
Expected
values.
Documentation
expectations
uses adrdox to generate its documentation. To build your own
copy, run the following command from the root of the sumtype
repository:
path/to/adrdox/doc2 --genSearchIndex --genSource -o generated-docs src
Example
import std.math: approxEqual;
import std.exception: assertThrown;
import std.algorithm: equal;
Expected!double relative(double a, double b)
{
if (a == 0) {
return unexpected!double(
new Exception("Division by zero")
);
} else {
return expected((b - a)/a);
}
}
assert(relative(2, 3).hasValue);
assert(relative(2, 3).value.approxEqual(0.5));
assert(!relative(0, 1).hasValue);
assertThrown(relative(0, 1).value);
assert(relative(0, 1).exception.msg.equal("Division by zero"));
Installation
If you're using dub, add the expectations package to your project as a dependency.
Otherwise, you will need to add both expectations.d
and sumtype.d
(from
sumtype) to your source directory.
- Registered by Paul Backus
- 0.1.0 released 6 years ago
- pbackus/expectations
- MIT
- Copyright © 2018, Paul Backus
- Authors:
- Dependencies:
- sumtype
- Versions:
-
0.4.0 2019-Apr-25 0.3.0 2019-Feb-17 0.2.0 2018-Sep-04 0.1.0 2018-Sep-02 ~master 2019-Apr-25 - Download Stats:
-
-
0 downloads today
-
0 downloads this week
-
0 downloads this month
-
37 downloads total
-
- Score:
- 0.0
- Short URL:
- expectations.dub.pm