protected override Unpacker ReadSubtreeCore()
{
if ( this._state == State.InHead )
{
// Duplicate call -- just return me.
return this;
}
if ( this._unpacked.Count == 0 )
{
ThrowInTailException();
}
if ( this._root.InternalCollectionType == ItemsUnpacker.CollectionType.None )
{
ThrowNotInHeadOfCollectionException();
}
return new SubtreeUnpacker( this._root, this );
}