summaryrefslogtreecommitdiff
path: root/rust/src/project
diff options
context:
space:
mode:
authorMason Reed <mason@vector35.com>2025-08-20 13:42:19 -0400
committerMason Reed <mason@vector35.com>2025-08-20 13:42:19 -0400
commit2ba29fd5fc09a78dd5e16a8706bbb8aa6468eb1d (patch)
treefff9d0278c348d3b19c3f928b5bac66e7fa570a3 /rust/src/project
parentff72f3be107e94a0be41a1e7ba113000a4e95089 (diff)
[Rust] Add project path file retrieval related functions
Diffstat (limited to 'rust/src/project')
-rw-r--r--rust/src/project/file.rs11
1 files changed, 9 insertions, 2 deletions
diff --git a/rust/src/project/file.rs b/rust/src/project/file.rs
index 2d75cb24..ae23365a 100644
--- a/rust/src/project/file.rs
+++ b/rust/src/project/file.rs
@@ -5,8 +5,8 @@ use binaryninjacore_sys::{
BNFreeProjectFile, BNFreeProjectFileList, BNNewProjectFileReference, BNProjectFile,
BNProjectFileExistsOnDisk, BNProjectFileExport, BNProjectFileGetCreationTimestamp,
BNProjectFileGetDescription, BNProjectFileGetFolder, BNProjectFileGetId, BNProjectFileGetName,
- BNProjectFileGetPathOnDisk, BNProjectFileGetProject, BNProjectFileSetDescription,
- BNProjectFileSetFolder, BNProjectFileSetName,
+ BNProjectFileGetPathInProject, BNProjectFileGetPathOnDisk, BNProjectFileGetProject,
+ BNProjectFileSetDescription, BNProjectFileSetFolder, BNProjectFileSetName,
};
use std::fmt::Debug;
use std::path::{Path, PathBuf};
@@ -46,6 +46,13 @@ impl ProjectFile {
Some(PathBuf::from(path_str))
}
+ /// Get the path in the project to this file's contents
+ pub fn path_in_project(&self) -> Option<PathBuf> {
+ let path_str =
+ unsafe { BnString::into_string(BNProjectFileGetPathInProject(self.handle.as_ptr())) };
+ Some(PathBuf::from(path_str))
+ }
+
/// Check if this file's contents exist on disk
pub fn exists_on_disk(&self) -> bool {
unsafe { BNProjectFileExistsOnDisk(self.handle.as_ptr()) }