Refactored fullName template

New fullName implementation gives same result as fullyQualifiedName for normal types and templated ones, and still works in BetterC
This commit is contained in:
Mergul 2023-04-27 23:08:27 +02:00
parent 50fa2ce19c
commit 6a600d22c8
3 changed files with 59 additions and 27 deletions

View file

@ -160,6 +160,22 @@ void afterEveryTest()
gEntityManager.destroy();
}
@("RegisteredNames")
unittest
{
import bubel.ecs.traits;
gEntityManager.beginRegister();
gEntityManager.registerSystem!EmptySystem(0);
gEntityManager.registerSystem!EntityCounterSystem(0);
gEntityManager.endRegister();
System* empty_system = gEntityManager.getSystem(becsID!EmptySystem);
System* counter_system = gEntityManager.getSystem(becsID!EntityCounterSystem);
assert(empty_system.name == "tests.basic.EmptySystem", fullName!EmptySystem);
assert(counter_system.name == "tests.basic.EntityCounterSystem", fullName!EntityCounterSystem);
}
@("EntityMeta")
unittest
{

View file

@ -172,4 +172,35 @@ unittest
gEntityManager.commit();
gEntityManager.destroy();
}
}
@("3-template-system-compilation-file")
unittest
{
struct TemplateSystem(T)
{
struct EntitiesData
{
uint length;
}
uint a;
uint b;
}
struct TempalteComponent(T)
{
T parameter;
}
gEntityManager.initialize(0);
gEntityManager.beginRegister();
gEntityManager.registerComponent!CInt;
gEntityManager.registerComponent!(TempalteComponent!uint);
gEntityManager.registerSystem!(TemplateSystem!CInt)(0);
gEntityManager.endRegister();
}