TIL, records are not value types and are actually just reference types. So I was pretty much allocating from heap every time I used any of my data types (Like Vector2D). Needless to say, they are all now readonly structs as I originally intended them to be.
		
			
				
	
	
		
			10 lines
		
	
	
		
			312 B
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			10 lines
		
	
	
		
			312 B
		
	
	
	
		
			C#
		
	
	
	
	
	
using Syntriax.Engine.Physics2D.Abstract;
 | 
						|
 | 
						|
namespace Syntriax.Engine.Physics2D;
 | 
						|
 | 
						|
public readonly struct PhysicsMaterial2D(float Friction, float Restitution) : IPhysicsMaterial2D
 | 
						|
{
 | 
						|
    public readonly float Friction { get; init; } = Friction;
 | 
						|
    public readonly float Restitution { get; init; } = Restitution;
 | 
						|
}
 |