number

Parse a number

@safe
template number (
string accept = digits
int base = 10
) if (
accept.length == base
) {}

Public Imports

std.algorithm.iteration
public import std.algorithm.iteration;
Undocumented in source.

Members

Aliases

number
alias number = transform!(many!(digit!accept), (x) => x.reduce!((a, b) => a * base + b))
Undocumented in source.

Parameters

accept

digits allowed in the number, i-th character corresponds to digit i

base

base

Examples

auto i = "12354";
auto rx = number!()(i);
assert(rx.ok);
assert(rx.v == 12354);

i = "ffabc";
auto rx1 = number!(digits~"abcdef", 16)(i);
assert(rx1.ok);
assert(rx1.v == 1047228);

Meta