public void write(byte[] tmp, TemporaryBuffer os) { int ptr = tmp.Length; tmp[--ptr] = (byte)'\n'; ptr = RawParseUtils.formatBase10(tmp, ptr, _childCount); tmp[--ptr] = (byte)' '; ptr = RawParseUtils.formatBase10(tmp, ptr, isValid() ? _entrySpan : -1); tmp[--ptr] = 0; os.Write(_encodedName, 0, _encodedName.Length); os.Write(tmp, ptr, tmp.Length - ptr); if (isValid()) { _id.copyRawTo(tmp, 0); os.Write(tmp, 0, Constants.OBJECT_ID_LENGTH); } for (int i = 0; i < _childCount; i++) { _children[i].write(tmp, os); } }