I’d strongly recommend against this. The design guidelines are T in, T out for a reason
I’d strongly recommend against this. The design guidelines are T in, T out for a reason
Vector3<DateTime> doesn't make senseVector3<T> implementing INumber<T>, vectors aren't numbersVector3<T> and a Tuple3<T>x + 1 > x((VectorN<TResult>)vec). LengthSquared but then the perf win is small and that's a lot of mental overheadpublic readonly struct Vector3<T> : IEuclideanVector<Vector3<T>, T> and where T : IFloatingPointIeee754<T>public readonly struct Point3<T> and where T : INumberBase<T>DateTime and TimeSpan (and now DateOnly and TimeOnly)int Chunk; float/Half Offset;double in games is generally a sign of "you're doing something wrong"Vector3<sbyte>?((VectorN<TResult>)vec). LengthSquaredpublic readonly struct Vector3<T> : IEuclideanVector<Vector3<T>, T>where T : IFloatingPointIeee754<T>public readonly struct Point3<T>where T : INumberBase<T>TimeSpanDateOnlyTimeOnlyint Chunk; float/Half Offset;doubleVector3<sbyte>