diff options
| author | Mason Reed <mason@vector35.com> | 2025-05-04 19:10:56 -0400 |
|---|---|---|
| committer | Mason Reed <35282038+emesare@users.noreply.github.com> | 2025-05-12 17:45:24 -0400 |
| commit | a826c589dfc10c542deba7ca3343a462e02d6bde (patch) | |
| tree | f116254bef39f787268bbecc5eac19da310db9ce /rust/src/project | |
| parent | 28b3c4044af06fdc32c9c85bf8381b5058306427 (diff) | |
[Rust] Simplify `BnStrCompatible` trait
Followup to https://github.com/Vector35/binaryninja-api/pull/5897/
This simplifies usage of the trait in user code, should just be able to `to_cstr` to get the cstr repr and then call `as_ptr`.
Co-authored-by: Michael Krasnitski <michael.krasnitski@gmail.com>
Diffstat (limited to 'rust/src/project')
| -rw-r--r-- | rust/src/project/file.rs | 14 | ||||
| -rw-r--r-- | rust/src/project/folder.rs | 16 |
2 files changed, 15 insertions, 15 deletions
diff --git a/rust/src/project/file.rs b/rust/src/project/file.rs index 35f25937..d1724ab0 100644 --- a/rust/src/project/file.rs +++ b/rust/src/project/file.rs @@ -1,6 +1,6 @@ use crate::project::{systime_from_bntime, Project, ProjectFolder}; use crate::rc::{CoreArrayProvider, CoreArrayProviderInner, Guard, Ref, RefCountable}; -use crate::string::{BnStrCompatible, BnString}; +use crate::string::{AsCStr, BnString}; use binaryninjacore_sys::{ BNFreeProjectFile, BNFreeProjectFileList, BNNewProjectFileReference, BNProjectFile, BNProjectFileExistsOnDisk, BNProjectFileExport, BNProjectFileGetCreationTimestamp, @@ -57,8 +57,8 @@ impl ProjectFile { } /// Set the name of this file - pub fn set_name<S: BnStrCompatible>(&self, value: S) -> bool { - let value_raw = value.into_bytes_with_nul(); + pub fn set_name<S: AsCStr>(&self, value: S) -> bool { + let value_raw = value.to_cstr(); unsafe { BNProjectFileSetName( self.handle.as_ptr(), @@ -73,8 +73,8 @@ impl ProjectFile { } /// Set the description of this file - pub fn set_description<S: BnStrCompatible>(&self, value: S) -> bool { - let value_raw = value.into_bytes_with_nul(); + pub fn set_description<S: AsCStr>(&self, value: S) -> bool { + let value_raw = value.to_cstr(); unsafe { BNProjectFileSetDescription( self.handle.as_ptr(), @@ -104,8 +104,8 @@ impl ProjectFile { /// Export this file to disk, `true' if the export succeeded /// /// * `dest` - Destination path for the exported contents - pub fn export<S: BnStrCompatible>(&self, dest: S) -> bool { - let dest_raw = dest.into_bytes_with_nul(); + pub fn export<S: AsCStr>(&self, dest: S) -> bool { + let dest_raw = dest.to_cstr(); unsafe { BNProjectFileExport( self.handle.as_ptr(), diff --git a/rust/src/project/folder.rs b/rust/src/project/folder.rs index 316abeaf..b8881ddc 100644 --- a/rust/src/project/folder.rs +++ b/rust/src/project/folder.rs @@ -1,7 +1,7 @@ use crate::progress::{NoProgressCallback, ProgressCallback}; use crate::project::Project; use crate::rc::{CoreArrayProvider, CoreArrayProviderInner, Guard, Ref, RefCountable}; -use crate::string::{BnStrCompatible, BnString}; +use crate::string::{AsCStr, BnString}; use binaryninjacore_sys::{ BNFreeProjectFolder, BNFreeProjectFolderList, BNNewProjectFolderReference, BNProjectFolder, BNProjectFolderExport, BNProjectFolderGetDescription, BNProjectFolderGetId, @@ -46,8 +46,8 @@ impl ProjectFolder { } /// Set the name of this folder - pub fn set_name<S: BnStrCompatible>(&self, value: S) -> bool { - let value_raw = value.into_bytes_with_nul(); + pub fn set_name<S: AsCStr>(&self, value: S) -> bool { + let value_raw = value.to_cstr(); unsafe { BNProjectFolderSetName( self.handle.as_ptr(), @@ -62,8 +62,8 @@ impl ProjectFolder { } /// Set the description of this folder - pub fn set_description<S: BnStrCompatible>(&self, value: S) -> bool { - let value_raw = value.into_bytes_with_nul(); + pub fn set_description<S: AsCStr>(&self, value: S) -> bool { + let value_raw = value.to_cstr(); unsafe { BNProjectFolderSetDescription( self.handle.as_ptr(), @@ -88,7 +88,7 @@ impl ProjectFolder { /// Recursively export this folder to disk, returns `true' if the export succeeded /// /// * `dest` - Destination path for the exported contents - pub fn export<S: BnStrCompatible>(&self, dest: S) -> bool { + pub fn export<S: AsCStr>(&self, dest: S) -> bool { self.export_with_progress(dest, NoProgressCallback) } @@ -99,10 +99,10 @@ impl ProjectFolder { /// * `progress` - [`ProgressCallback`] that will be called as contents are exporting pub fn export_with_progress<S, P>(&self, dest: S, mut progress: P) -> bool where - S: BnStrCompatible, + S: AsCStr, P: ProgressCallback, { - let dest_raw = dest.into_bytes_with_nul(); + let dest_raw = dest.to_cstr(); let success = unsafe { BNProjectFolderExport( |
