add simplified UncheckedGetPool for built-in pools

This commit is contained in:
Mikhail 2023-07-03 02:50:16 +08:00
parent a11c7de42c
commit 5612fe047c
3 changed files with 27 additions and 0 deletions

View File

@ -198,19 +198,28 @@ namespace DCFApixels.DragonECS
} }
public static class EcsHybridPoolExt public static class EcsHybridPoolExt
{ {
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static EcsHybridPool<T> GetPool<T>(this EcsWorld self) where T : IEcsHybridComponent public static EcsHybridPool<T> GetPool<T>(this EcsWorld self) where T : IEcsHybridComponent
{ {
return self.GetPool<EcsHybridPool<T>>(); return self.GetPool<EcsHybridPool<T>>();
} }
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static EcsHybridPool<T> UncheckedGetPool<T>(this EcsWorld self) where T : IEcsHybridComponent
{
return self.UncheckedGetPool<EcsHybridPool<T>>();
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static EcsHybridPool<T> Include<T>(this EcsAspectBuilderBase self) where T : IEcsHybridComponent public static EcsHybridPool<T> Include<T>(this EcsAspectBuilderBase self) where T : IEcsHybridComponent
{ {
return self.Include<EcsHybridPool<T>>(); return self.Include<EcsHybridPool<T>>();
} }
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static EcsHybridPool<T> Exclude<T>(this EcsAspectBuilderBase self) where T : IEcsHybridComponent public static EcsHybridPool<T> Exclude<T>(this EcsAspectBuilderBase self) where T : IEcsHybridComponent
{ {
return self.Exclude<EcsHybridPool<T>>(); return self.Exclude<EcsHybridPool<T>>();
} }
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static EcsHybridPool<T> Optional<T>(this EcsAspectBuilderBase self) where T : IEcsHybridComponent public static EcsHybridPool<T> Optional<T>(this EcsAspectBuilderBase self) where T : IEcsHybridComponent
{ {
return self.Optional<EcsHybridPool<T>>(); return self.Optional<EcsHybridPool<T>>();

View File

@ -191,19 +191,28 @@ namespace DCFApixels.DragonECS
public interface IEcsComponent { } public interface IEcsComponent { }
public static class EcsPoolExt public static class EcsPoolExt
{ {
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static EcsPool<TComponent> GetPool<TComponent>(this EcsWorld self) where TComponent : struct, IEcsComponent public static EcsPool<TComponent> GetPool<TComponent>(this EcsWorld self) where TComponent : struct, IEcsComponent
{ {
return self.GetPool<EcsPool<TComponent>>(); return self.GetPool<EcsPool<TComponent>>();
} }
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static EcsPool<TComponent> UncheckedGetPool<TComponent>(this EcsWorld self) where TComponent : struct, IEcsComponent
{
return self.UncheckedGetPool<EcsPool<TComponent>>();
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static EcsPool<TComponent> Include<TComponent>(this EcsAspectBuilderBase self) where TComponent : struct, IEcsComponent public static EcsPool<TComponent> Include<TComponent>(this EcsAspectBuilderBase self) where TComponent : struct, IEcsComponent
{ {
return self.Include<EcsPool<TComponent>>(); return self.Include<EcsPool<TComponent>>();
} }
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static EcsPool<TComponent> Exclude<TComponent>(this EcsAspectBuilderBase self) where TComponent : struct, IEcsComponent public static EcsPool<TComponent> Exclude<TComponent>(this EcsAspectBuilderBase self) where TComponent : struct, IEcsComponent
{ {
return self.Exclude<EcsPool<TComponent>>(); return self.Exclude<EcsPool<TComponent>>();
} }
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static EcsPool<TComponent> Optional<TComponent>(this EcsAspectBuilderBase self) where TComponent : struct, IEcsComponent public static EcsPool<TComponent> Optional<TComponent>(this EcsAspectBuilderBase self) where TComponent : struct, IEcsComponent
{ {
return self.Optional<EcsPool<TComponent>>(); return self.Optional<EcsPool<TComponent>>();

View File

@ -186,19 +186,28 @@ namespace DCFApixels.DragonECS
public interface IEcsTagComponent { } public interface IEcsTagComponent { }
public static class EcsTagPoolExt public static class EcsTagPoolExt
{ {
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static EcsTagPool<TTagComponent> GetPool<TTagComponent>(this EcsWorld self) where TTagComponent : struct, IEcsTagComponent public static EcsTagPool<TTagComponent> GetPool<TTagComponent>(this EcsWorld self) where TTagComponent : struct, IEcsTagComponent
{ {
return self.GetPool<EcsTagPool<TTagComponent>>(); return self.GetPool<EcsTagPool<TTagComponent>>();
} }
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static EcsTagPool<TTagComponent> UncheckedGetPool<TTagComponent>(this EcsWorld self) where TTagComponent : struct, IEcsTagComponent
{
return self.UncheckedGetPool<EcsTagPool<TTagComponent>>();
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static EcsTagPool<TTagComponent> Include<TTagComponent>(this EcsAspectBuilderBase self) where TTagComponent : struct, IEcsTagComponent public static EcsTagPool<TTagComponent> Include<TTagComponent>(this EcsAspectBuilderBase self) where TTagComponent : struct, IEcsTagComponent
{ {
return self.Include<EcsTagPool<TTagComponent>>(); return self.Include<EcsTagPool<TTagComponent>>();
} }
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static EcsTagPool<TTagComponent> Exclude<TTagComponent>(this EcsAspectBuilderBase self) where TTagComponent : struct, IEcsTagComponent public static EcsTagPool<TTagComponent> Exclude<TTagComponent>(this EcsAspectBuilderBase self) where TTagComponent : struct, IEcsTagComponent
{ {
return self.Exclude<EcsTagPool<TTagComponent>>(); return self.Exclude<EcsTagPool<TTagComponent>>();
} }
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static EcsTagPool<TTagComponent> Optional<TTagComponent>(this EcsAspectBuilderBase self) where TTagComponent : struct, IEcsTagComponent public static EcsTagPool<TTagComponent> Optional<TTagComponent>(this EcsAspectBuilderBase self) where TTagComponent : struct, IEcsTagComponent
{ {
return self.Optional<EcsTagPool<TTagComponent>>(); return self.Optional<EcsTagPool<TTagComponent>>();