2 unstable releases
0.2.0 | Feb 12, 2024 |
---|---|
0.1.0 | Feb 11, 2024 |
#2436 in Rust patterns
16KB
382 lines
easy_node
Smart pointer for graph nodes.
The author of this crate is not good at English.
Forgive me if the document is hard to read.
What is this?
This crate provides some smart pointers optimized for managing graph data structures.
Nr
- likeRc
Nw
- likeWeak
.NrCell
- newtype ofNr<RefCell<T>>
.NwCell
- newtype ofNw<RefCell<T>>
.
These smart pointers behavior is similar to Rc
and Weak
.
However, there are several important differences between them.
- This crate smart pointer comparison is based on location.
- This crate weak pointer supports upgrade to strong pointer reference.
See the API documentation for details.
What's New?
v0.2.0
- Rename
upgrade
toupgrade_ref
and supportupgrade
likeWeak
.
lib.rs
:
Smart pointer for graph nodes.
The author of this crate is not good at English. Forgive me if the document is hard to read.
This crate provides some smart pointers optimized for managing graph data structures.
- [
Nr
] - likeRc
- [
Nw
] - likeWeak
. NrCell
- newtype ofNr<RefCell<T>>
.NwCell
- newtype ofNw<RefCell<T>>
.
These smart pointers behavior is similar to Rc
and Weak
.
However, there are several important differences between them.
Point1 - Comparison of smart pointers
This crate smart pointer comparison is based on location.
This allows smart pointers to be used as HashSet
values, etc.
For example, comparison of Nr::eq
is based on identity of node address.
On the other hand comparison of Rc::eq
is based on inner value.
Point2 - Upgrade from weak pointer
This crate weak pointer supports upgrade to strong pointer reference.
This allows smart pointers act as dynamic object directly.
For example, Nw::upgrade_ref
returns [Nr
] reference.
On the other hand Nw::upgrade
returns [Nr
] itself.
This is semilar to Weak::upgrade
that returns Rc
itself.