#hash #pointer #reference #rc #arc

no-std by_address

Wrapper for comparing and hashing pointers by address

5 stable releases

2.0.0 Apr 22, 2019
1.0.4 Jan 19, 2018
1.0.3 Nov 10, 2017
1.0.2 Oct 23, 2017

#179 in Data structures

45 downloads per month




Rust wrapper type that implements hashing and comparison based on address rather than value.


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


This crate does not depend on libstd, so it can be used in no_std projects.

Release notes

Version 1.0.3

  • Implement From<T> for ByAddress<T>
  • More documentation fixes

Version 1.0.2

  • More documentation fixes

Version 1.0.1

  • Improved documentation

Version 1.0.0

  • Initial release


Licensed under the Apache License, Version 2.0 or the MIT license, at your option. See the license files in this directory for details.

No runtime deps