1 /**
2 Aliases for the $(LINK2 ./package.html, `checkedint`) module using `IntFlagPolicy.throws`.
3 
4 Copyright: Copyright Thomas Stuart Bockman 2015
5 License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0).
6 Authors: Thomas Stuart Bockman
7 **/
8 module checkedint.throws;
9 
10 import future.traits0, std.typecons;
11 
12 @safe: pragma(inline, true):
13 
14 static import checkedint.flags;
15 public import checkedint.flags :
16     IntFlagPolicy,
17     intFlagPolicyOf,
18     IntFlag,
19     IntFlags,
20     CheckedIntException;
21 private alias IFP = IntFlagPolicy;
22 
23 alias raise = checkedint.flags.raise!(IFP.throws);
24 
25 static import checkedint;
26 
27 alias SmartInt(N, Flag!"bitOps" bitOps = Yes.bitOps) = checkedint.SmartInt!(N, IFP.throws, bitOps);
28 SmartInt!(N, bitOps) smartInt(Flag!"bitOps" bitOps = Yes.bitOps, N)(N num) pure
29     if (isIntegral!N || isCheckedInt!N)
30 {
31     return typeof(return)(num.bscal);
32 }
33 alias smartOp = checkedint.smartOp!(IFP.throws);
34 
35 alias DebugInt(N, Flag!"bitOps" bitOps = Yes.bitOps) = checkedint.DebugInt!(N, IFP.throws, bitOps);
36 
37 alias SafeInt(N, Flag!"bitOps" bitOps = Yes.bitOps) = checkedint.SafeInt!(N, IFP.throws, bitOps);
38 SafeInt!(N, bitOps) safeInt(Flag!"bitOps" bitOps = Yes.bitOps, N)(N num) pure
39     if (isIntegral!N || isCheckedInt!N)
40 {
41     return typeof(return)(num.bscal);
42 }
43 alias safeOp = checkedint.safeOp!(IFP.throws);
44 
45 alias to(T) = checkedint.to!(T, IFP.throws);
46 
47 Select!(isSigned!(BasicScalar!N), ptrdiff_t, size_t) idx(N)(const N num) pure
48     if (isScalarType!N || isCheckedInt!N)
49 {
50     return checkedint.to!(typeof(return), IFP.throws)(num.bscal);
51 }
52 
53 public import checkedint :
54     bscal,
55     bits,
56     isSafeInt,
57     isSmartInt,
58     isCheckedInt,
59     hasBitOps,
60     BasicScalar;