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.GetChild(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); }
/// <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); }