Equivalent
and Comparable
are Rust traits for key comparison in maps.
These may be used in the implementation of maps where the lookup type Q
may be different than the stored key type K
.
Q: Equivalent<K>
checks for equality, similar to theHashMap<K, V>
constraintK: Borrow<Q>, Q: Eq
.Q: Comparable<K>
checks the ordering, similar to theBTreeMap<K, V>
constraintK: Borrow<Q>, Q: Ord
.
These traits are not used by the maps in the standard library, but they may
add more flexibility in third-party map implementations, especially in
situations where a strict K: Borrow<Q>
relationship is not available.
Equivalent is distributed under the terms of both the MIT license and the Apache License (Version 2.0). See LICENSE-APACHE and LICENSE-MIT for details. Opening a pull request is assumed to signal agreement with these licensing terms.