| #region Copyright notice and license |
| // Protocol Buffers - Google's data interchange format |
| // Copyright 2015 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 |
| { |
| /// <summary> |
| /// Generic interface for a deeply cloneable type. |
| /// </summary> |
| /// <remarks> |
| /// <para> |
| /// All generated messages implement this interface, but so do some non-message types. |
| /// Additionally, due to the type constraint on <c>T</c> in <see cref="IMessage{T}"/>, |
| /// it is simpler to keep this as a separate interface. |
| /// </para> |
| /// </remarks> |
| /// <typeparam name="T">The type itself, returned by the <see cref="Clone"/> method.</typeparam> |
| public interface IDeepCloneable<T> |
| { |
| /// <summary> |
| /// Creates a deep clone of this object. |
| /// </summary> |
| /// <returns>A deep clone of this object.</returns> |
| T Clone(); |
| } |
| } |