module bolts.internal; public import bolts.from; package template ResolvePointer(T) { import std.traits: isPointer, PointerTarget; static if (isPointer!T) { alias ResolvePointer = PointerTarget!T; } else { alias ResolvePointer = T; } } version (unittest) { // Just here so can be used in unittests without importing all the time package import std.stdio: writeln; // Defines a set of types that can be used to test copy constructable related traits package mixin template copyConstructableKinds() { static struct KindPOD {} static struct KindHasCopyContrustor { this(ref inout typeof(this)) inout {} } static struct KindHasPostBlit { this(this) {} } static struct KindContainsPOD { KindPOD value; } static struct KindContainsTypeWithNonTrivialCopyConstructor { KindHasCopyContrustor value; } static struct KindContainsTypeWithPostBlit { KindHasPostBlit value; } static assert(__traits(isPOD, KindPOD)); } }