Ejemplo n.º 1
0
        /// <summary>
        /// Returns a <see cref="string"/> that represents this instance.
        /// </summary>
        /// <returns>
        /// A <see cref="string"/> that represents this instance.
        /// </returns>
        internal override string ToString(RecursionLevel level)
        {
            if (!level.TryIncrement())
            {
                return(MaximumRecursionLevelReachedToStringValue);
            }

            using var textBuilder = StringBuilderPool.Rent();
            var text = textBuilder.Builder;

            text.Append("[ ");

            foreach (var child in children)
            {
                if (text.Length > 2)
                {
                    text.Append(", ");
                }
                text.Append(child.ToString(level));
            }

            text.Append(" ]");

            level.Decrement();

            return(text.ToString());
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Recursively enumerates all the nodes from the document, starting on the current node,
        /// and throwing <see cref="MaximumRecursionLevelReachedException"/>
        /// if <see cref="RecursionLevel.Maximum"/> is reached.
        /// </summary>
        internal override IEnumerable <YamlNode> SafeAllNodes(RecursionLevel level)
        {
            level.Increment();
            yield return(this);

            foreach (var child in children)
            {
                foreach (var node in child.SafeAllNodes(level))
                {
                    yield return(node);
                }
            }
            level.Decrement();
        }
Ejemplo n.º 3
0
        internal override string ToString(RecursionLevel level)
        {
            if (!level.TryIncrement())
            {
                return("WARNING! INFINITE RECURSION!");
            }
            StringBuilder stringBuilder = new StringBuilder("[ ");

            foreach (YamlNode child in children)
            {
                if (stringBuilder.Length > 2)
                {
                    stringBuilder.Append(", ");
                }
                stringBuilder.Append(child.ToString(level));
            }
            stringBuilder.Append(" ]");
            level.Decrement();
            return(stringBuilder.ToString());
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Returns a <see cref="System.String"/> that represents this instance.
        /// </summary>
        /// <returns>
        /// A <see cref="System.String"/> that represents this instance.
        /// </returns>
        internal override string ToString(RecursionLevel level)
        {
            if (!level.TryIncrement())
            {
                return(MaximumRecursionLevelReachedToStringValue);
            }

            var text = new StringBuilder("{ ");

            foreach (var child in children)
            {
                if (text.Length > 2)
                {
                    text.Append(", ");
                }
                text.Append("{ ").Append(child.Key.ToString(level)).Append(", ").Append(child.Value.ToString(level)).Append(" }");
            }

            text.Append(" }");

            level.Decrement();

            return(text.ToString());
        }