expectations 0.4.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
Expectedvalues can be treated like return codes or exceptions:- Use 
hasValueto check for success or failure explicitly. - Use 
valuedirectly to assume success and throw in case of failure. 
- Use 
 - Error handling is deferred until the value is actually needed.
 - Functions that return 
Expectedvalues can be composed easily usingandThenandmap. - Usable in 
@safeandnothrowcode. 
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.exception: assertThrown;
Expected!int charToDigit(char c)
{
    int d = c - '0';
    if (d >= 0 && d < 10) {
        return expected(d);
    } else {
        return missing!int(
            new Exception(c ~ " is not a valid digit")
        );
    }
}
auto goodResult = charToDigit('7');
auto badResult = charToDigit('&');
assert(goodResult.hasValue);
assert(goodResult.value == 7);
assert(!badResult.hasValue);
assertThrown(badResult.value);
assert(badResult.error.msg == "& is not a valid digit");
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 its dependency
sumtype.d (from the sumtype package) to
your source directory.
- 0.4.0 released 6 years ago
 - pbackus/expectations
 - MIT
 - Copyright © 2018, Paul Backus
 
- Authors:
 - Dependencies:
 - sumtype
 - Versions:
 - 
						
Show all 5 versions0.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
 - 
								
3 downloads this month
 - 
								
42 downloads total
 
 - 
								
 - Score:
 - 0.2
 - Short URL:
 - expectations.dub.pm