commit | 70883a8e768776db6aafde9952a1a6ec5df42c60 | [log] [tgz] |
---|---|---|
author | Li-Yu Yu <[email protected]> | Fri Aug 09 12:44:48 2024 +0000 |
committer | Li-Yu Yu <[email protected]> | Fri Aug 09 12:44:48 2024 +0000 |
tree | 7c48796a9c73b7c243496a1aaa4577b24eda3fdd | |
parent | 4cc89fcd3fb8ccbce1aade0d7ebe0290546c4c2b [diff] |
Import 'equivalent' crate Request Document: go/android-rust-importing-crates For CL Reviewers: go/android3p#cl-review For Build Team: go/ab-third-party-imports Bug: 351861702 Test: m libequivalent Change-Id: I4ac95c9cf259ba9334bb35ea7c8412a23a29f775
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 the HashMap<K, V>
constraint K: Borrow<Q>, Q: Eq
.Q: Comparable<K>
checks the ordering, similar to the BTreeMap<K, V>
constraint K: 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.