The Appender to zero out.
(Optional) Whether to also call the .clear() method of the Appender sink.
(Optional) The value to zero out the contents with.
{
Appender!(char[]) sink;
sink.put('a');
sink.put('b');
sink.put('c');
assert(sink[] == ['a', 'b', 'c']);
sink.zero(clear: false);
assert(sink[] == [ char.init, char.init, char.init ]);
sink.put('d');
assert(sink[] == [ char.init, char.init, char.init, 'd' ]);
sink.zero(clear: false, 'X');
assert(sink[] == [ 'X', 'X', 'X', 'X' ]);
sink.zero(clear: true);
assert(!sink[].length);
}
{
Appender!(string[]) sink;
sink.put("abc");
sink.put("def");
sink.put("ghi");
assert(sink[] == [ "abc", "def", "ghi" ]);
sink.zero(clear: false, "(empty)");
assert(sink[] == [ "(empty)", "(empty)", "(empty)" ]);
sink.zero(clear: false);
assert(sink[] == [ string.init, string.init, string.init ]);
sink.zero(clear: true);
assert(!sink[].length);
}
Zeroes out the contents of an Appender.
This is in contrast to the built-in .clear() method, which keeps the memory contents and only resets the internal position pointer to the start of it.