<PackageReference Include="Serilog.Sinks.OpenTelemetry" Version="4.1.1-dev-00356" />

OpenTelemetry.Proto.Common.V1.KeyValueList

sealed class KeyValueList : IMessage<KeyValueList>, IMessage, IEquatable<KeyValueList>, IDeepCloneable<KeyValueList>, IBufferMessage
KeyValueList is a list of KeyValue messages. We need KeyValueList as a message since `oneof` in AnyValue does not allow repeated fields. Everywhere else where we need a list of KeyValue messages (e.g. in Span) we use `repeated KeyValue` directly to avoid unnecessary extra wrapping (which slows down the protocol). The 2 approaches are semantically equivalent.
namespace OpenTelemetry.Proto.Common.V1 { internal sealed class KeyValueList : IEquatable<KeyValueList> { public const int ValuesFieldNumber = 1; public static MessageParser<KeyValueList> Parser { get; } public static MessageDescriptor Descriptor { get; } MessageDescriptor Descriptor { get; } public RepeatedField<KeyValue> Values { get; } public KeyValueList(); public KeyValueList(KeyValueList other); public KeyValueList Clone(); public bool Equals(KeyValueList other); public void WriteTo(CodedOutputStream output); void InternalWriteTo(ref WriteContext output); public int CalculateSize(); public void MergeFrom(KeyValueList other); public void MergeFrom(CodedInputStream input); void InternalMergeFrom(ref ParseContext input); } }