diff options
Diffstat (limited to 'rust/src/custombinaryview.rs')
| -rw-r--r-- | rust/src/custombinaryview.rs | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/rust/src/custombinaryview.rs b/rust/src/custombinaryview.rs index 740d0f40..2fd37cab 100644 --- a/rust/src/custombinaryview.rs +++ b/rust/src/custombinaryview.rs @@ -157,7 +157,7 @@ pub trait BinaryViewTypeBase: AsRef<BinaryViewType> { fn is_deprecated(&self) -> bool; - fn load_settings_for_data(&self, data: &BinaryView) -> Result<Ref<Settings>> { + fn default_load_settings_for_data(&self, data: &BinaryView) -> Result<Ref<Settings>> { let settings_handle = unsafe { BNGetBinaryViewDefaultLoadSettingsForData(self.as_ref().0, data.handle) }; @@ -167,6 +167,17 @@ pub trait BinaryViewTypeBase: AsRef<BinaryViewType> { unsafe { Ok(Settings::from_raw(settings_handle)) } } } + + fn load_settings_for_data(&self, data: &BinaryView) -> Result<Ref<Settings>> { + let settings_handle = + unsafe { BNGetBinaryViewLoadSettingsForData(self.as_ref().0, data.handle) }; + + if settings_handle.is_null() { + Err(()) + } else { + unsafe { Ok(Settings::from_raw(settings_handle)) } + } + } } pub trait BinaryViewTypeExt: BinaryViewTypeBase { @@ -253,7 +264,7 @@ impl BinaryViewTypeBase for BinaryViewType { unsafe { BNIsBinaryViewTypeDeprecated(self.0) } } - fn load_settings_for_data(&self, data: &BinaryView) -> Result<Ref<Settings>> { + fn default_load_settings_for_data(&self, data: &BinaryView) -> Result<Ref<Settings>> { let settings_handle = unsafe { BNGetBinaryViewDefaultLoadSettingsForData(self.0, data.handle) }; @@ -263,6 +274,16 @@ impl BinaryViewTypeBase for BinaryViewType { unsafe { Ok(Settings::from_raw(settings_handle)) } } } + + fn load_settings_for_data(&self, data: &BinaryView) -> Result<Ref<Settings>> { + let settings_handle = unsafe { BNGetBinaryViewLoadSettingsForData(self.0, data.handle) }; + + if settings_handle.is_null() { + Err(()) + } else { + unsafe { Ok(Settings::from_raw(settings_handle)) } + } + } } impl CoreArrayProvider for BinaryViewType { |
