diff options
Diffstat (limited to 'rust/src')
| -rw-r--r-- | rust/src/binaryview.rs | 15 | ||||
| -rw-r--r-- | rust/src/metadata.rs | 2 |
2 files changed, 16 insertions, 1 deletions
diff --git a/rust/src/binaryview.rs b/rust/src/binaryview.rs index ff556d54..c60c8808 100644 --- a/rust/src/binaryview.rs +++ b/rust/src/binaryview.rs @@ -860,6 +860,21 @@ pub trait BinaryViewExt: BinaryViewBase { .map(|md| T::try_from(md.as_ref()).map_err(|_| ())) } + fn store_metadata<V, S: BnStrCompatible>(&self, key: S, value: V, is_auto: bool) + where + V: Into<Ref<Metadata>>, + { + let md = value.into(); + unsafe { + BNBinaryViewStoreMetadata( + self.as_ref().handle, + key.into_bytes_with_nul().as_ref().as_ptr() as *const c_char, + md.as_ref().handle, + is_auto, + ) + }; + } + fn remove_metadata<S: BnStrCompatible>(&self, key: S) { unsafe { BNBinaryViewRemoveMetadata( diff --git a/rust/src/metadata.rs b/rust/src/metadata.rs index acc77a14..0945e58a 100644 --- a/rust/src/metadata.rs +++ b/rust/src/metadata.rs @@ -14,7 +14,7 @@ use std::slice; pub type MetadataType = BNMetadataType; pub struct Metadata { - handle: *mut BNMetadata, + pub(crate) handle: *mut BNMetadata, } impl Metadata { |
