10 stable releases
2.1.0 |
|
---|---|
2.0.0 |
|
1.2.1 | Mar 27, 2024 |
1.1.0 | Oct 28, 2022 |
1.0.2 | Oct 23, 2017 |
#94 in Rust patterns
217,464 downloads per month
Used in 422 crates
(44 directly)
14KB
274 lines
by_address
Rust wrapper type that implements hashing and comparison based on address rather than value.
Overview
ByAddress
can be used to wrap any pointer type (i.e. any type that implements the Deref
trait). This includes references, raw pointers, smart pointers like Rc<T>
and Box<T>
, and specialized pointer-like types such as Vec<T>
and String
.
The wrapped pointer implements the following traits based on the address of its contents, rather than their value:
- Hash
- Eq, PartialEq
- Ord, PartialOrd
no_std
This crate does not depend on libstd, so it can be used in no_std
projects.
Release notes
Version 1.2.1
- Mark
ByThinAddress
asrepr(transparent)
.
Version 1.2.0
- Add
from_ref
constructor.
Version 1.1.2
- Improved documentations.
Version 1.1.1
- Update to Rust 2021.
Version 1.1.0
- New
ByThinAddress
type. - Implement the
Display
trait. - Custom implementation of
Debug
that includess the pointer address.
Version 1.0.4
- Improve hashing of fat pointers
Version 1.0.3
- Implement
From<T>
forByAddress<T>
- More documentation fixes
Version 1.0.2
- More documentation fixes
Version 1.0.1
- Improved documentation
Version 1.0.0
- Initial release
License
Licensed under the Apache License, Version 2.0 or the MIT license, at your option. See the license files in this directory for details.