summaryrefslogtreecommitdiff
path: root/rust/src/custombinaryview.rs
diff options
context:
space:
mode:
Diffstat (limited to 'rust/src/custombinaryview.rs')
-rw-r--r--rust/src/custombinaryview.rs17
1 files changed, 17 insertions, 0 deletions
diff --git a/rust/src/custombinaryview.rs b/rust/src/custombinaryview.rs
index 3afc6dc6..d547c388 100644
--- a/rust/src/custombinaryview.rs
+++ b/rust/src/custombinaryview.rs
@@ -55,6 +55,16 @@ where
})
}
+ extern "C" fn cb_deprecated<T>(ctxt: *mut c_void) -> bool
+ where
+ T: CustomBinaryViewType,
+ {
+ ffi_wrap!("BinaryViewTypeBase::is_deprecated", unsafe {
+ let view_type = &*(ctxt as *mut T);
+ view_type.is_deprecated()
+ })
+ }
+
extern "C" fn cb_create<T>(ctxt: *mut c_void, data: *mut BNBinaryView) -> *mut BNBinaryView
where
T: CustomBinaryViewType,
@@ -117,6 +127,7 @@ where
create: Some(cb_create::<T>),
parse: Some(cb_parse::<T>),
isValidForData: Some(cb_valid::<T>),
+ isDeprecated: Some(cb_deprecated::<T>),
getLoadSettingsForData: Some(cb_load_settings::<T>),
};
@@ -141,6 +152,8 @@ where
pub trait BinaryViewTypeBase: AsRef<BinaryViewType> {
fn is_valid_for(&self, data: &BinaryView) -> bool;
+ fn is_deprecated(&self) -> bool;
+
fn load_settings_for_data(&self, data: &BinaryView) -> Result<Ref<Settings>> {
let settings_handle =
unsafe { BNGetBinaryViewDefaultLoadSettingsForData(self.as_ref().0, data.handle) };
@@ -233,6 +246,10 @@ impl BinaryViewTypeBase for BinaryViewType {
unsafe { BNIsBinaryViewTypeValidForData(self.0, data.handle) }
}
+ fn is_deprecated(&self) -> bool {
+ unsafe { BNIsBinaryViewTypeDeprecated(self.0) }
+ }
+
fn load_settings_for_data(&self, data: &BinaryView) -> Result<Ref<Settings>> {
let settings_handle =
unsafe { BNGetBinaryViewDefaultLoadSettingsForData(self.as_ref().0, data.handle) };