public ByteStringBuilder Append(IEnumerable<byte> xs)
{
var bs1C = xs as ByteString.ByteString1C;
if (bs1C != null)
{
ClearTemp();
_builder.Add(bs1C.ToByteString1());
_length += bs1C.Count;
return this;
}
var bs1 = xs as ByteString.ByteString1;
if (bs1 != null)
{
ClearTemp();
_builder.Add(bs1);
_length += bs1.Count;
return this;
}
var bss = xs as ByteString.ByteStrings;
if (bss != null)
{
ClearTemp();
_builder.AddRange(bss.Items);
_length += bss.Count;
return this;
}
return xs.Aggregate(this, (a, x) => a.PutByte(x));
}