3 unstable releases
0.1.1 | Feb 24, 2019 |
---|---|
0.1.0 | Dec 10, 2018 |
0.0.0 | Sep 9, 2017 |
#2322 in Rust patterns
11KB
246 lines
Dynamic smart pointers for abstracting over different ownership models.
This library allows you to dynamically abstract over three different kinds of "shared
ownership" in Rust: Rc
, Arc
and &'static
. The two pointers defined in this crate can be
constructed from multiple different kinds of shared ownership pointers, dynamically
dispatching their Clone
and Drop
implementations.
A SharedPointer can be constructed from any of the three pointer types, but does not implement
Send or Sync. A SyncPointer can only be constructed from Arc
or &'static
, and is
threadsafe. Converting a SharedPointer to a SyncPointer is allowed, but panics if the
SharedPointer was constructed from an Rc.
smart - dynamically dispatched smart pointers
This library lets you construct a smart pointer dynamically from one of our
different pointers which implement shared ownership. It has both a threadsafe
(SyncPointer
) and non-threadsafe (SharedPointer
) construct.
This is useful for when you need an API to dynamically be one of multiple different pointer types. This has a slight overhead (virtual calls), so you should not use this unless you know that's what you want.