#region Copyright notice and license // Protocol Buffers - Google's data interchange format // Copyright 2016 Google Inc. All rights reserved. // // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file or at // https://developers.google.com/open-source/licenses/bsd #endregion namespace Google.Protobuf { /// /// A message type that has a custom string format for diagnostic purposes. /// /// /// /// Calling on a generated message type normally /// returns the JSON representation. If a message type implements this interface, /// then the method will be called instead of the regular /// JSON formatting code, but only when ToString() is called either on the message itself /// or on another message which contains it. This does not affect the normal JSON formatting of /// the message. /// /// /// For example, if you create a proto message representing a GUID, the internal /// representation may be a bytes field or four fixed32 fields. However, when debugging /// it may be more convenient to see a result in the same format as provides. /// /// This interface extends to avoid it accidentally being implemented /// on types other than messages, where it would not be used by anything in the framework. /// public interface ICustomDiagnosticMessage : IMessage { /// /// Returns a string representation of this object, for diagnostic purposes. /// /// /// This method is called when a message is formatted as part of a /// call. It does not affect the JSON representation used by other than /// in calls to . While it is recommended /// that the result is valid JSON, this is never assumed by the Protobuf library. /// /// A string representation of this object, for diagnostic purposes. string ToDiagnosticString(); } }