compile time check that T can be ref counted atomically.
Counts the number of references of a single object. Useful for shared-agnostic generic code.
Dispose GC allocated array of resources
Dispose GC allocated associative array of resources
Locks a single object. Useful for shared-agnostic generic code.
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
Releases a single object. Useful for shared-agnostic generic code.
Retain GC allocated array of ref-counted resources
Retain GC allocated associative array of ref-counted resources
Retains a single object. Useful for shared-agnostic generic code.
A atomic reference counted resource. Objects implementing this interface can be safely manipulated as shared.
A resource that can be disposed
A string that can be mixed-in a class declaration to implement AtomicRefCounted. dispose is not implemented of course, but is called by release while the object is locked. Classes implementing it are free to do it in a non-thread safe manner as long as dispose does not manipulate external state.
Produces an Rc!T holding a null object
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.
Reference counting module