struct Sink
{
char[] buff;
void delegate(in char[]) sink;
void write(in char[] s)
{
auto len=min(s.length,buff.length);
buff[0..len]=s[0..len];
buff=buff[len..$];
const s1=s[len..$];
if(s1.length)sink(s1);
}
}
override void toString(ref Sink sink) const
{
value.toString(sink);
sink.write("[");
len.toString(sink);
sink.write("]");
}
