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:

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

View online on Github Pages.

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.

Authors:
  • Paul Backus
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
Show all 5 versions
Download Stats:
  • 0 downloads today

  • 0 downloads this week

  • 0 downloads this month

  • 21 downloads total

Score:
0.1
Short URL:
expectations.dub.pm