definition of how the gfx package itself implements reference counting
compile time check that T can be ref counted atomically.
compile time check that T can be ref counted non-atomically.
compile time check that T can be ref counted (either shared or not)
Dispose GC allocated array of resources
Dispose GC allocated associative array of resources
Reinitialises a GC allocated array of struct. Useful if the struct release resource in its destructor.
Reinitialises a GC allocated associative array of struct. Useful if the struct release resource in its destructor.
Release GC allocated array of ref-counted resources
Release GC allocated associative array of ref-counted resources
Retain GC allocated array of ref-counted resources
Retain GC allocated associative array of ref-counted resources
A atomic reference counted resource. Objects implementing this interface can be safely used as shared.
A resource that can be disposed
A non-atomic reference counted resource. Objects implementing this interface should have exterior locking if used as shared.
A string that can be mixed-in a class declaration to implement AtomicRefCounted. Both shared and non-shared methods are implemented atomically. This is useful for things such as a parallel loop
A string that can be mixed-in a class declaration to implement AtomicRefCounted. The RefCounted methods (non-shared) are implemented without atomicity. The AtomicRefCounted methods (shared) are implemented atomically.
A string that can be mixed-in a class declaration to implement RefCounted.
Helper struct that manages the reference count of an object using RAII.
A helper struct that manage the lifetime of a Disposable using RAII. Note: dlang has capability to enforce a parameter be a lvalue (ref param) but has no mechanism such as c++ rvalue reference which would enforce true uniqueness by the compiler. Uniq gives additional robustness, but it is up to the programmer to make sure that the values passed in by rvalue are not referenced somewhere else in the code
Helper struct that keeps a weak reference to a Resource.
Cast hack to get around a bug in DMD front-end. Cast non shared atomic rc interfaces when calling retain or release. See https://issues.dlang.org/show_bug.cgi?id=18138
Helper that build a new instance of T and returns it within a Rc!T
Creates a new instance of T and returns it under a Uniq!T.
Helper that places an instance of T within a Rc!T
Reference counting module