summaryrefslogtreecommitdiff
path: root/rust/src/platform.rs
diff options
context:
space:
mode:
authorRubens Brandao <git@rubens.io>2024-06-13 13:35:19 -0300
committerKyle Martin <krm504@nyu.edu>2024-07-09 18:45:30 -0400
commit66cb34c9b6fc3620cc60faf8ce964b255608b69e (patch)
tree0a3f73c7383753ab26947433e46ca5c56d3d2bf7 /rust/src/platform.rs
parent273fa764cee0e0b972546bbc460e802879b109f8 (diff)
implement rust TypeLibrary
Diffstat (limited to 'rust/src/platform.rs')
-rw-r--r--rust/src/platform.rs10
1 files changed, 10 insertions, 0 deletions
diff --git a/rust/src/platform.rs b/rust/src/platform.rs
index 11f76284..4e31a0a2 100644
--- a/rust/src/platform.rs
+++ b/rust/src/platform.rs
@@ -23,6 +23,7 @@ use crate::{
callingconvention::CallingConvention,
rc::*,
string::*,
+ typelibrary::TypeLibrary,
types::{QualifiedName, QualifiedNameAndType, Type},
};
@@ -163,6 +164,15 @@ impl Platform {
unsafe { CoreArchitecture::from_raw(BNGetPlatformArchitecture(self.handle)) }
}
+ pub fn get_type_libraries_by_name(&self, name: &QualifiedName) -> Array<TypeLibrary> {
+ let mut count = 0;
+ let result = unsafe {
+ BNGetPlatformTypeLibrariesByName(self.handle, &name.0 as *const _ as *mut _, &mut count)
+ };
+ assert!(!result.is_null());
+ unsafe { Array::new(result, count, ()) }
+ }
+
pub fn register_os<S: BnStrCompatible>(&self, os: S) {
let os = os.into_bytes_with_nul();