toString refactor in druntime

Kagamin via Digitalmars-d digitalmars-d at puremagic.com
Wed Oct 29 03:03:49 PDT 2014


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("]");
}


More information about the Digitalmars-d mailing list