using System.Runtime.InteropServices;
using System.Runtime.CompilerServices;
[StructLayout(LayoutKind.Sequential, Pack = 1)]
public struct Vector3<T> where T : unmanaged
public Vector3(T x, T y, T z) => (X, Y, Z) = (x, y, z);
public static void Main()
Console.WriteLine($"Unsafe.SizeOf<Vector3<int>>()={Unsafe.SizeOf<Vector3<int>>()}");
Console.WriteLine($"Unsafe.SizeOf<Vector3<double>>()={Unsafe.SizeOf<Vector3<double>>()}");
Console.WriteLine($"Unsafe.SizeOf<Vector3<byte>>()={Unsafe.SizeOf<Vector3<byte>>()}");
Console.WriteLine($"Unsafe.SizeOf<Vector3<long>>()={Unsafe.SizeOf<Vector3<long>>()}");
Console.WriteLine($"Unsafe.SizeOf<Vector3<decimal>>()={Unsafe.SizeOf<Vector3<decimal>>()}");