summaryrefslogtreecommitdiff
path: root/rust/src/binary_view.rs
diff options
context:
space:
mode:
Diffstat (limited to 'rust/src/binary_view.rs')
-rw-r--r--rust/src/binary_view.rs9
1 files changed, 9 insertions, 0 deletions
diff --git a/rust/src/binary_view.rs b/rust/src/binary_view.rs
index 417b30ef..801884ac 100644
--- a/rust/src/binary_view.rs
+++ b/rust/src/binary_view.rs
@@ -68,6 +68,7 @@ pub mod memory_map;
pub mod reader;
pub mod writer;
+use crate::workflow::Workflow;
pub use memory_map::MemoryMap;
pub use reader::BinaryReader;
pub use writer::BinaryWriter;
@@ -324,6 +325,14 @@ pub trait BinaryViewExt: BinaryViewBase {
unsafe { BNAbortAnalysis(self.as_ref().handle) }
}
+ fn workflow(&self) -> Ref<Workflow> {
+ unsafe {
+ let raw_ptr = BNGetWorkflowForBinaryView(self.as_ref().handle);
+ let nonnull = NonNull::new(raw_ptr).expect("All views must have a workflow");
+ Workflow::ref_from_raw(nonnull)
+ }
+ }
+
fn analysis_info(&self) -> Result<AnalysisInfo> {
let info_ref = unsafe { BNGetAnalysisInfo(self.as_ref().handle) };
if info_ref.is_null() {