Does not allocate (except for exceptions).
No XML nesting state.
Does not check for premature stream end, paired tags, etc.
INPUT is an input range which needs to support the following
additional properties:
.ptr - returns a type usable with ptrSlice (used to save
the position in INPUT, then later take a slice
from that position until an end position).
WARNING: Using a narrow D string type for INPUT will result
in wasteful UTF decoding (due to std.array.front returning a
dchar).
OUTPUT accepts strings with the XML entities still encoded,
to allow for lazy decoding.
Does not allocate (except for exceptions). No XML nesting state. Does not check for premature stream end, paired tags, etc.
INPUT is an input range which needs to support the following additional properties: .ptr - returns a type usable with ptrSlice (used to save the position in INPUT, then later take a slice from that position until an end position). WARNING: Using a narrow D string type for INPUT will result in wasteful UTF decoding (due to std.array.front returning a dchar).
OUTPUT accepts strings with the XML entities still encoded, to allow for lazy decoding.