using System.Runtime.CompilerServices; using Syntriax.Engine.Core.Abstract; namespace Syntriax.Engine.Core.Debug; public class AssertHelpers { [MethodImpl(MethodImplOptions.AggressiveInlining)] public static void AssertInitialized(IInitializable initializable) => System.Diagnostics.Debug.Assert(initializable.IsInitialized, $"{initializable.GetType().Name} must be initialized"); [MethodImpl(MethodImplOptions.AggressiveInlining)] public static void AssertBehaviourControllerAssigned(IHasBehaviourController assignable) => System.Diagnostics.Debug.Assert(assignable.BehaviourController is not null, $"{assignable.GetType().Name} must be initialized"); [MethodImpl(MethodImplOptions.AggressiveInlining)] public static void AssertEntityAssigned(IHasEntity assignable) => System.Diagnostics.Debug.Assert(assignable.Entity is not null, $"{assignable.GetType().Name} must be initialized"); [MethodImpl(MethodImplOptions.AggressiveInlining)] public static void AssertUniverseAssigned(IHasUniverse assignable) => System.Diagnostics.Debug.Assert(assignable.Universe is not null, $"{assignable.GetType().Name} must be initialized"); [MethodImpl(MethodImplOptions.AggressiveInlining)] public static void AssertUniverseObjectAssigned(IHasUniverseObject assignable) => System.Diagnostics.Debug.Assert(assignable.UniverseObject is not null, $"{assignable.GetType().Name} must be initialized"); [MethodImpl(MethodImplOptions.AggressiveInlining)] public static void AssertStateEnableAssigned(IHasStateEnable assignable) => System.Diagnostics.Debug.Assert(assignable.StateEnable is not null, $"{assignable.GetType().Name} must be initialized"); }