summaryrefslogtreecommitdiff
path: root/rust/src
diff options
context:
space:
mode:
Diffstat (limited to 'rust/src')
-rw-r--r--rust/src/binaryview.rs15
-rw-r--r--rust/src/metadata.rs2
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 {