summaryrefslogtreecommitdiff
path: root/rust/src/binary_view.rs
diff options
context:
space:
mode:
authorMason Reed <mason@vector35.com>2025-06-16 14:45:30 -0400
committerMason Reed <mason@vector35.com>2025-07-02 01:56:53 -0400
commit4c303921c859eaf2a316b1c0fe9f64b12293455f (patch)
treeee97c73f1daa5441cf8632b2e201011ced5a397b /rust/src/binary_view.rs
parent1e46970989da83dd50a052cc1d023c70d5ed127f (diff)
[Rust] Add `BinaryViewExt::workflow`
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() {