/// <summary>
            /// Advances the enumerator to the next element of the <see cref="SerializedObjectView"/>.
            /// </summary>
            /// <returns>true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection.</returns>
            public bool MoveNext()
            {
                var startIndex = m_Stream.GetTokenIndex(m_Start);
                var startToken = m_Stream.GetToken(startIndex);

                if (startToken.Length == 1)
                {
                    return(false);
                }

                if (m_Current.Index == -1)
                {
                    m_Current = m_Stream.GetFirstChild(m_Start);
                    return(true);
                }

                if (!m_Stream.IsValid(m_Current))
                {
                    return(false);
                }

                var currentIndex = m_Stream.GetTokenIndex(m_Current);
                var currentToken = m_Stream.GetToken(currentIndex);

                if (currentIndex + currentToken.Length >= startIndex + startToken.Length)
                {
                    return(false);
                }

                m_Current = m_Stream.GetHandle(currentIndex + currentToken.Length);
                return(true);
            }
Exemplo n.º 2
0
        /// <summary>
        /// Returns true if the value represents a member.
        /// </summary>
        /// <returns>True if the value is a member.</returns>
        public bool IsMember()
        {
            var token = m_Stream.GetToken(m_Handle);

            if (token.Parent != -1 && m_Stream.GetToken(token.Parent).Type != TokenType.Object)
            {
                return(false);
            }

            return(token.Type == TokenType.String || token.Type == TokenType.Primitive);
        }