voile.unique

Unique
struct Unique(T);
this(U)(Unique!U u)
if(!is(U == T) && is(U : T));
Constructor that takes an rvalue. It will ensure uniqueness, as long as the rvalue isn't just a view on an lvalue (e.g., a cast) Typical usage:
Unique!(Foo) f = unique!Bar;
@safe void proxySwap()(ref Unique u)
if(!is(typeof(T.init.proxySwap(T.init))));
ref Unique opAssign(Unique u);
@trusted Unique!T unique(T, Args...)(Args args)
if((is(T == class) || is(T == struct) || is(T == union)) && !isNested!T || !(is(T == class) || is(T == struct) || is(T == union)));
void release(T)(ref Unique!T u);
bool isEmpty(T)(ref Unique!T u);
auto toRawData(T)(ref Unique!T u);
生データを利用できない形で返す
auto toUnique(T)(ref ReturnType!(toRawData!T) d);
生データから利用できる形のUnique型へと変換する