public static void AppendEnum <TEnum>(StringBuilder sb, int nestLevel) where TEnum : struct { ProtoContractAttribute attrib = AttributeUtils.GetAttribute <ProtoContractAttribute>(typeof(TEnum)); string name = attrib == null || string.IsNullOrEmpty(attrib.Name) ? typeof(TEnum).Name : attrib.Name; Indent(sb, nestLevel).Append("enum ").Append(name).Append(" {").AppendLine(); foreach (Serializer.ProtoEnumValue <TEnum> value in Serializer.GetEnumValues <TEnum>()) { Indent(sb, nestLevel + 1).Append(' ').Append(value.Name) .Append(" = ").Append(value.WireValue).Append(";").AppendLine(); } Indent(sb, nestLevel).Append("}").AppendLine(); }