mirage-injector/source/poodinis/valueinjector/mirage.d
2022-10-31 22:02:49 +03:00

71 lines
2.9 KiB
D

/**
* Poodinis Dependency Injection Framework
* Copyright 2022 Mike Bierlee
* This software is licensed under the terms of the MIT license.
* The full terms of the license can be found in the LICENSE file.
*/
module poodinis.valueinjector.mirage;
import poodinis : ValueInjector, DependencyContainer;
class MirageValueInjector(Type) : ValueInjector!Type
{
public override Type get(string key)
{
throw new Exception("Not yet implemented");
}
}
alias MirageBoolValueInjector = MirageValueInjector!bool;
alias MirageByteValueInjector = MirageValueInjector!byte;
alias MirageUbyteValueInjector = MirageValueInjector!ubyte;
alias MirageCharValueInjector = MirageValueInjector!char;
alias MirageShortValueInjector = MirageValueInjector!short;
alias MirageUshortValueInjector = MirageValueInjector!ushort;
alias MirageWcharValueInjector = MirageValueInjector!wchar;
alias MirageIntValueInjector = MirageValueInjector!int;
alias MirageUintValueInjector = MirageValueInjector!uint;
alias MirageDcharValueInjector = MirageValueInjector!dchar;
alias MirageLongValueInjector = MirageValueInjector!long;
alias MirageUlongValueInjector = MirageValueInjector!ulong;
alias MirageFloatValueInjector = MirageValueInjector!float;
alias MirageDoubleValueInjector = MirageValueInjector!double;
alias MirageRealValueInjector = MirageValueInjector!real;
alias MirageStringValueInjector = MirageValueInjector!string;
/**
* Registers Mirage Config value injectors for all primitive types.
* Params:
* container = Dependency container to register injectors with.
*/
public void registerMirageInjectors(shared(DependencyContainer) container)
{
container.register!(ValueInjector!bool, MirageBoolValueInjector);
container.register!(ValueInjector!byte, MirageByteValueInjector);
container.register!(ValueInjector!ubyte, MirageUbyteValueInjector);
container.register!(ValueInjector!char, MirageCharValueInjector);
container.register!(ValueInjector!short, MirageShortValueInjector);
container.register!(ValueInjector!ushort, MirageUshortValueInjector);
container.register!(ValueInjector!wchar, MirageWcharValueInjector);
container.register!(ValueInjector!int, MirageIntValueInjector);
container.register!(ValueInjector!uint, MirageUintValueInjector);
container.register!(ValueInjector!dchar, MirageDcharValueInjector);
container.register!(ValueInjector!long, MirageLongValueInjector);
container.register!(ValueInjector!ulong, MirageUlongValueInjector);
container.register!(ValueInjector!float, MirageFloatValueInjector);
container.register!(ValueInjector!double, MirageDoubleValueInjector);
container.register!(ValueInjector!real, MirageRealValueInjector);
container.register!(ValueInjector!string, MirageStringValueInjector);
}
version (unittest)
{
@("Register primitive value injectors")
unittest
{
auto dependencies = new shared DependencyContainer;
dependencies.registerMirageInjectors;
}
}