1414use Tempest \DateTime \DateTime ;
1515use Tempest \DateTime \DateTimeInterface ;
1616use Tempest \Mapper \Casters \ArrayToObjectCollectionCaster ;
17+ use Tempest \Mapper \Casters \BooleanCaster ;
1718use Tempest \Mapper \Casters \DateTimeCaster ;
1819use Tempest \Mapper \Casters \EnumCaster ;
20+ use Tempest \Mapper \Casters \FloatCaster ;
21+ use Tempest \Mapper \Casters \IntegerCaster ;
1922use Tempest \Mapper \Casters \JsonToArrayCaster ;
2023use Tempest \Mapper \Casters \NativeDateTimeCaster ;
2124use Tempest \Mapper \Casters \ObjectCaster ;
2225use Tempest \Reflection \PropertyReflector ;
26+ use UnitEnum ;
2327
2428final class CasterFactoryInitializer implements Initializer
2529{
@@ -28,9 +32,15 @@ public function initialize(Container $container): CasterFactory
2832 {
2933 return new CasterFactory ()
3034 ->addCaster ('array ' , JsonToArrayCaster::class)
35+ ->addCaster ('bool ' , BooleanCaster::class)
36+ ->addCaster ('boolean ' , BooleanCaster::class)
37+ ->addCaster ('int ' , IntegerCaster::class)
38+ ->addCaster ('integer ' , IntegerCaster::class)
39+ ->addCaster ('float ' , FloatCaster::class)
40+ ->addCaster ('double ' , FloatCaster::class)
3141 ->addCaster (fn (PropertyReflector $ property ) => $ property ->getIterableType () !== null , fn (PropertyReflector $ property ) => new ArrayToObjectCollectionCaster ($ property ))
3242 ->addCaster (fn (PropertyReflector $ property ) => $ property ->getType ()->isClass (), fn (PropertyReflector $ property ) => new ObjectCaster ($ property ->getType ()))
33- ->addCaster (BackedEnum ::class, fn (PropertyReflector $ property ) => new EnumCaster ($ property ->getType ()->getName ()))
43+ ->addCaster (UnitEnum ::class, fn (PropertyReflector $ property ) => new EnumCaster ($ property ->getType ()->getName ()))
3444 ->addCaster (DateTimeInterface::class, DateTimeCaster::fromProperty (...))
3545 ->addCaster (NativeDateTimeImmutable::class, NativeDateTimeCaster::fromProperty (...))
3646 ->addCaster (NativeDateTime::class, NativeDateTimeCaster::fromProperty (...))
0 commit comments