An input range over the data to be decoded, or a char array. Will not accept wchar[] nor dchar[].
If range is a range or array of char, a Decoder that iterates over the bytes of the corresponding Base64 decoding.
If range is a range of ranges of characters, a Decoder that iterates over the decoded strings corresponding to each element of the range.
In both cases, the returned Decoder will be a forward range if the given range is at least a forward range, otherwise it will be only an input range.
If the input data contains characters not found in the base alphabet of the current Base64 encoding scheme, the returned range may throw a Base64Exception.
This example shows decoding over a range of input data lines.
foreach (decoded; Base64.decoder(stdin.byLine())) { writeln(decoded); }
This example shows decoding one byte at a time.
auto encoded = Base64.encoder(cast(ubyte[])"0123456789"); foreach (n; map!q{a - '0'}(Base64.decoder(encoded))) { writeln(n); }
import std.algorithm.comparison : equal; string encoded = "VGhvdSBzaGFsdCBuZXZlciBjb250aW51ZSBhZnRlciBhc3NlcnRpbmcgbnVsbA=="; assert(Base64.decoder(encoded) .equal("Thou shalt never continue after asserting null"));
Construct a Decoder that iterates over the decoding of the given Base64 encoded data.