diff options
Diffstat (limited to 'src/ProtocolBuffers/TextFormat.cs')
-rw-r--r-- | src/ProtocolBuffers/TextFormat.cs | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/ProtocolBuffers/TextFormat.cs b/src/ProtocolBuffers/TextFormat.cs index 7ea25053..747dce4e 100644 --- a/src/ProtocolBuffers/TextFormat.cs +++ b/src/ProtocolBuffers/TextFormat.cs @@ -62,6 +62,16 @@ namespace Google.ProtocolBuffers }
/// <summary>
+ /// Outputs a textual representation of the Protocol Message builder supplied into
+ /// the parameter output.
+ /// </summary>
+ public static void Print(IBuilder builder, TextWriter output)
+ {
+ TextGenerator generator = new TextGenerator(output, "\n");
+ Print(builder, generator);
+ }
+
+ /// <summary>
/// Outputs a textual representation of <paramref name="fields" /> to <paramref name="output"/>.
/// </summary>
public static void Print(UnknownFieldSet fields, TextWriter output)
@@ -77,6 +87,13 @@ namespace Google.ProtocolBuffers return text.ToString();
}
+ public static string PrintToString(IBuilder builder)
+ {
+ StringWriter text = new StringWriter();
+ Print(builder, text);
+ return text.ToString();
+ }
+
public static string PrintToString(UnknownFieldSet fields)
{
StringWriter text = new StringWriter();
@@ -93,6 +110,15 @@ namespace Google.ProtocolBuffers PrintUnknownFields(message.UnknownFields, generator);
}
+ private static void Print(IBuilder message, TextGenerator generator)
+ {
+ foreach (KeyValuePair<FieldDescriptor, object> entry in message.AllFields)
+ {
+ PrintField(entry.Key, entry.Value, generator);
+ }
+ PrintUnknownFields(message.UnknownFields, generator);
+ }
+
internal static void PrintField(FieldDescriptor field, object value, TextGenerator generator)
{
if (field.IsRepeated)
|