summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormason <35282038+emesare@users.noreply.github.com>2024-03-20 18:42:22 +0000
committerKyle Martin <krm504@nyu.edu>2024-03-20 15:16:00 -0400
commit31c8eb2c5a298797422b467d060d575af0ca77d1 (patch)
treedfb883afa08e66934cd4c9f0a9c1cd2baba03557
parent3553aae6ffb2affb1808359da79a4c5eb9c36e86 (diff)
Implement Hash, PartialEq & Eq for riscv Register
-rw-r--r--arch/riscv/src/lib.rs15
1 files changed, 15 insertions, 0 deletions
diff --git a/arch/riscv/src/lib.rs b/arch/riscv/src/lib.rs
index 6b3451a9..dbc4ed78 100644
--- a/arch/riscv/src/lib.rs
+++ b/arch/riscv/src/lib.rs
@@ -6,6 +6,7 @@
use std::borrow::Cow;
use std::fmt;
+use std::hash::Hash;
use std::marker::PhantomData;
use binaryninja::relocation::{Relocation, RelocationHandlerExt};
@@ -247,6 +248,20 @@ impl<'a, D: 'static + RiscVDisassembler + Send + Sync> LiftableWithSize<'a, Risc
}
}
+impl<D: 'static + RiscVDisassembler> Hash for Register<D> {
+ fn hash<H: std::hash::Hasher>(&self, state: &mut H) {
+ self.id.hash(state);
+ }
+}
+
+impl<D: 'static + RiscVDisassembler> PartialEq for Register<D> {
+ fn eq(&self, other: &Self) -> bool {
+ self.id == other.id
+ }
+}
+
+impl<D: 'static + RiscVDisassembler> Eq for Register<D> {}
+
impl<D: 'static + RiscVDisassembler + Send + Sync> fmt::Debug for Register<D> {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
f.write_str(self.name().as_ref())