ArraySinglePrimitive<T>
sealed class ArraySinglePrimitive<T> : ArrayRecord<T>, IRecord<ArraySinglePrimitive<T>>, IRecord, IPrimitiveTypeRecord where T : ValueType modreq(System.Runtime.InteropServices.UnmanagedType)
Single dimensional array of a primitive type.
using System.Collections.Generic;
using System.IO;
using System.Runtime.CompilerServices;
namespace System.Private.Windows.BinaryFormat.Serializer
{
internal sealed class ArraySinglePrimitive<[IsUnmanaged] T> : ArrayRecord<T>, IRecord<ArraySinglePrimitive<T>>, IRecord, IPrimitiveTypeRecord where T : struct
{
public PrimitiveType PrimitiveType { get; }
public static RecordType RecordType => RecordType.ArraySinglePrimitive;
public override BinaryType ElementType => BinaryType.Primitive;
public ArraySinglePrimitive(Id objectId, [Nullable(new byte[] {
1,
0
})] IReadOnlyList<T> arrayObjects)
: base(new ArrayInfo(objectId, arrayObjects.Count), arrayObjects)
{
PrimitiveType = typeof(T).GetPrimitiveType();
}
[NullableContext(1)]
private protected override void Write(BinaryWriter writer)
{
writer.Write((byte)RecordType);
_arrayInfo.Write(writer);
writer.Write((byte)PrimitiveType);
BinaryReaderExtensions.WritePrimitives<T>(writer, base.ArrayObjects);
}
}
}