summaryrefslogtreecommitdiff
path: root/rust/src
diff options
context:
space:
mode:
authorGlenn Smith <glenn@vector35.com>2023-05-23 20:11:07 -0400
committerGlenn Smith <glenn@vector35.com>2023-06-08 17:18:21 -0400
commit0882343191078862361937493035030128230878 (patch)
treef5ef5168066c53b85fd9574225df7411817bb577 /rust/src
parent30784c736f7ed7cc796573d81021bd3ef10fded3 (diff)
Undo entry states and reverting
Diffstat (limited to 'rust/src')
-rw-r--r--rust/src/filemetadata.rs15
1 files changed, 11 insertions, 4 deletions
diff --git a/rust/src/filemetadata.rs b/rust/src/filemetadata.rs
index e3449b6e..b0e1c73f 100644
--- a/rust/src/filemetadata.rs
+++ b/rust/src/filemetadata.rs
@@ -38,6 +38,7 @@ use binaryninjacore_sys::{
BNOpenExistingDatabase,
BNOpenProject,
BNRedo,
+ BNRevertUndoActions,
BNSaveAutoSnapshot,
BNSetFilename,
BNUndo,
@@ -124,15 +125,21 @@ impl FileMetadata {
unsafe { BNIsBackedByDatabase(self.handle, view_type.as_ref().as_ptr() as *const _) }
}
- pub fn begin_undo_actions(&self) {
+ pub fn begin_undo_actions(&self) -> BnString {
+ unsafe { BnString::from_raw(BNBeginUndoActions(self.handle)) }
+ }
+
+ pub fn commit_undo_actions<S: BnStrCompatible>(&self, id: S) {
+ let id = id.into_bytes_with_nul();
unsafe {
- BNBeginUndoActions(self.handle);
+ BNCommitUndoActions(self.handle, id.as_ref().as_ptr() as *const _);
}
}
- pub fn commit_undo_actions(&self) {
+ pub fn revert_undo_actions<S: BnStrCompatible>(&self, id: S) {
+ let id = id.into_bytes_with_nul();
unsafe {
- BNCommitUndoActions(self.handle);
+ BNRevertUndoActions(self.handle, id.as_ref().as_ptr() as *const _);
}
}