From 283410e6209134b0980363ca297abeb7dea75001 Mon Sep 17 00:00:00 2001 From: Mason Reed Date: Tue, 9 Jul 2024 20:17:36 -0400 Subject: Add ability to access database from rust API using FileMetadata --- rust/src/filemetadata.rs | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'rust/src') diff --git a/rust/src/filemetadata.rs b/rust/src/filemetadata.rs index 0ef427c4..7d385a4c 100644 --- a/rust/src/filemetadata.rs +++ b/rust/src/filemetadata.rs @@ -27,6 +27,7 @@ use binaryninjacore_sys::{ BNIsAnalysisChanged, BNIsBackedByDatabase, //BNSetFileMetadataNavigationHandler, + BNGetFileMetadataDatabase, BNIsFileModified, BNMarkFileModified, BNMarkFileSaved, @@ -43,6 +44,7 @@ use binaryninjacore_sys::{ use binaryninjacore_sys::{BNCreateDatabaseWithProgress, BNOpenExistingDatabaseWithProgress}; use crate::binaryview::BinaryView; +use crate::database::Database; use crate::rc::*; use crate::string::*; @@ -283,6 +285,12 @@ impl FileMetadata { Ok(unsafe { BinaryView::from_raw(view) }) } } + + /// Get the current database + pub fn database(&self) -> Option { + let result = unsafe { BNGetFileMetadataDatabase(self.handle) }; + ptr::NonNull::new(result).map(|handle| unsafe { Database::from_raw(handle) }) + } } impl ToOwned for FileMetadata { -- cgit v1.3.1