EscapeBytes() static private method

Escapes bytes in the format used in protocol buffer text format, which is the same as the format used for C string literals. All bytes that are not printable 7-bit ASCII characters are escaped, as well as backslash, single-quote, and double-quote characters. Characters for which no defined short-hand escape sequence is defined will be escaped using 3-digit octal sequences. The returned value is guaranteed to be entirely ASCII.
static private EscapeBytes ( ByteString input ) : String
input ByteString
return String
        public void Escape()
        {
            // Escape sequences.
            Assert.AreEqual("\\000\\001\\a\\b\\f\\n\\r\\t\\v\\\\\\'\\\"",
                            TextFormat.EscapeBytes(Bytes("\0\u0001\u0007\b\f\n\r\t\v\\\'\"")));
            Assert.AreEqual("\\000\\001\\a\\b\\f\\n\\r\\t\\v\\\\\\'\\\"",
                            TextFormat.EscapeText("\0\u0001\u0007\b\f\n\r\t\v\\\'\""));
            Assert.AreEqual(Bytes("\0\u0001\u0007\b\f\n\r\t\v\\\'\""),
                            TextFormat.UnescapeBytes("\\000\\001\\a\\b\\f\\n\\r\\t\\v\\\\\\'\\\""));
            Assert.AreEqual("\0\u0001\u0007\b\f\n\r\t\v\\\'\"",
                            TextFormat.UnescapeText("\\000\\001\\a\\b\\f\\n\\r\\t\\v\\\\\\'\\\""));

            // Unicode handling.
            Assert.AreEqual("\\341\\210\\264", TextFormat.EscapeText("\u1234"));
            Assert.AreEqual("\\341\\210\\264", TextFormat.EscapeBytes(Bytes(0xe1, 0x88, 0xb4)));
            Assert.AreEqual("\u1234", TextFormat.UnescapeText("\\341\\210\\264"));
            Assert.AreEqual(Bytes(0xe1, 0x88, 0xb4), TextFormat.UnescapeBytes("\\341\\210\\264"));
            Assert.AreEqual("\u1234", TextFormat.UnescapeText("\\xe1\\x88\\xb4"));
            Assert.AreEqual(Bytes(0xe1, 0x88, 0xb4), TextFormat.UnescapeBytes("\\xe1\\x88\\xb4"));

            // Errors.
            AssertFormatException(() => TextFormat.UnescapeText("\\x"));
            AssertFormatException(() => TextFormat.UnescapeText("\\z"));
            AssertFormatException(() => TextFormat.UnescapeText("\\"));
        }
        public void WriteArray(FieldType fieldType, int fieldNumber, string fieldName, IEnumerable list)
        {
            output.WriteLine("{0}: [", fieldName);
            output.Indent();

            int objcount = 0;

            foreach (object element in list)
            {
                if (objcount != 0)
                {
                    output.Write(" ");
                }

                switch (fieldType)
                {
                case FieldType.String:
                    output.WriteLine("\"{0}\"", TextFormat.EscapeText((string)element));
                    break;

                case FieldType.Bytes:
                    output.WriteLine("\"{0}\"", TextFormat.EscapeBytes((ByteString)element));
                    break;

                case FieldType.Message:
                    output.WriteLine("{");
                    output.Indent();
                    ((IMessageLite)element).WriteTo(this);
                    output.Outdent();
                    output.WriteLine("}");
                    break;

                case FieldType.Group:
                    output.WriteLine("{");
                    output.Indent();
                    ((IMessageLite)element).WriteTo(this);
                    output.Outdent();
                    output.WriteLine("}");
                    break;

                default:
                    output.Write("{0}", element);
                    if (++objcount > 10)
                    {
                        objcount = 0;
                        output.WriteLine("");
                    }
                    break;
                }
            }
            if (objcount != 0)
            {
                output.WriteLine("");
            }
            output.Outdent();
            output.WriteLine("]");
        }
 public void WriteBytes(int fieldNumber, string fieldName, ByteString value)
 {
     output.WriteLine("{0}: \"{1}\"", fieldName, TextFormat.EscapeBytes(value));
 }