4 releases (2 breaking)
0.3.1 | Jan 9, 2022 |
---|---|
0.3.0 | Jan 9, 2022 |
0.2.0 | Jan 9, 2022 |
0.1.0 | Jan 8, 2022 |
#2941 in Rust patterns
Used in 5 crates
(via nuscenes-data)
57KB
1.5K
SLoC
ownref
This crate provides the smart pointer type that bundles the data with its owner. It has the folloing features:
- The data is either a reference to a portion of the owner, or a data type that may contain references to the owner.
- The refernce can be ordered by data content or data pointer address.
- The owner is contained in
Box
orArc
.
The following table shows Box
-based reference types. The generic O
denotes the
owner type and I
denotes the data type.
data type (I ) \ ordering |
Content ordered | Pointer address ordered |
---|---|---|
Reference | BoxRefC<O, I> |
BoxRefA<O, I> |
Owned | BoxOwnedC<O, I> |
BoxOwnedA<O, I> |
The following table shows Arc
-based reference types.
data type (I ) \ ordering |
Content ordered | Pointer address ordered |
---|---|---|
Reference | ArcRefC<O, I> |
ArcRefA<O, I> |
Owned | ArcOwnedC<O, I> |
ArcOwnedA<O, I> |
For example,
BoxRefA<Vec<str>, str>
is a reference tostr
within the ownerVec<str>
, which is ordered by pointer address.ArcOwnedC<Vec<str>, Option<&str>>
stores the data typeOption<&str>
, which contains a reference within the ownerVec<str>
. The reference is ordered by the data content.
License
MIT license. See license file.