diff options
| author | Rubens Brandao <git@rubens.io> | 2024-05-03 13:28:53 -0300 |
|---|---|---|
| committer | Kyle Martin <krm504@nyu.edu> | 2024-05-10 12:00:27 -0400 |
| commit | ea7a22b16fc56c23af397dd690c6c839dfb3a8f1 (patch) | |
| tree | 45f3ba19172017694388ab6f7266e23df76bb670 /rust/src/references.rs | |
| parent | 015314d34d073a8ebbd958edf8150a81381f12c2 (diff) | |
hide array implementation details
Diffstat (limited to 'rust/src/references.rs')
| -rw-r--r-- | rust/src/references.rs | 18 |
1 files changed, 5 insertions, 13 deletions
diff --git a/rust/src/references.rs b/rust/src/references.rs index 8b4ebb87..d12c33c5 100644 --- a/rust/src/references.rs +++ b/rust/src/references.rs @@ -1,6 +1,6 @@ use crate::architecture::CoreArchitecture; use crate::function::Function; -use crate::rc::{CoreArrayProvider, CoreArrayWrapper, CoreOwnedArrayProvider, Guard, Ref}; +use crate::rc::{CoreArrayProvider, CoreArrayProviderInner, Guard, Ref}; use binaryninjacore_sys::{BNFreeCodeReferences, BNFreeDataReferences, BNReferenceSource}; use std::mem::ManuallyDrop; @@ -56,17 +56,13 @@ impl<'a> CodeReference { impl CoreArrayProvider for CodeReference { type Raw = BNReferenceSource; type Context = (); + type Wrapped<'a> = Guard<'a, CodeReference>; } -unsafe impl CoreOwnedArrayProvider for CodeReference { +unsafe impl CoreArrayProviderInner for CodeReference { unsafe fn free(raw: *mut Self::Raw, count: usize, _context: &Self::Context) { BNFreeCodeReferences(raw, count) } -} - -unsafe impl CoreArrayWrapper for CodeReference { - type Wrapped<'a> = Guard<'a, CodeReference>; - unsafe fn wrap_raw<'a>(raw: &'a Self::Raw, _context: &'a Self::Context) -> Self::Wrapped<'a> { Guard::new(CodeReference::new(raw), &()) } @@ -77,17 +73,13 @@ unsafe impl CoreArrayWrapper for CodeReference { impl CoreArrayProvider for DataReference { type Raw = u64; type Context = (); + type Wrapped<'a> = DataReference; } -unsafe impl CoreOwnedArrayProvider for DataReference { +unsafe impl CoreArrayProviderInner for DataReference { unsafe fn free(raw: *mut Self::Raw, _count: usize, _context: &Self::Context) { BNFreeDataReferences(raw) } -} - -unsafe impl CoreArrayWrapper for DataReference { - type Wrapped<'a> = DataReference; - unsafe fn wrap_raw<'a>(raw: &'a Self::Raw, _context: &'a Self::Context) -> Self::Wrapped<'a> { DataReference { address: *raw } } |
