summaryrefslogtreecommitdiff
path: root/rust/src/platform.rs
diff options
context:
space:
mode:
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();