All generated messages implement this interface, but so do some non-message types.
Additionally, due to the type constraint on T in IMessage<T>,
it is simpler to keep this as a separate interface.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-07 UTC."],[[["\u003cp\u003eThe \u003ccode\u003eIDeepCloneable<T>\u003c/code\u003e interface is a generic interface designed for types that can be deeply cloned.\u003c/p\u003e\n"],["\u003cp\u003eThis interface is implemented by all generated messages as well as some non-message types within the Google.Protobuf library.\u003c/p\u003e\n"],["\u003cp\u003eThe interface features a single method, \u003ccode\u003eClone()\u003c/code\u003e, which returns a deep clone of the object it is called upon.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eT\u003c/code\u003e in \u003ccode\u003eIDeepCloneable<T>\u003c/code\u003e represents the type itself and is the type returned by the \u003ccode\u003eClone()\u003c/code\u003e method.\u003c/p\u003e\n"],["\u003cp\u003eThe interface is separated from \u003ccode\u003eIMessage<T>\u003c/code\u003e for simplicity due to the type constraints on the latter.\u003c/p\u003e\n"]]],[],null,[]]