diff options
| author | Rubens Brandao <git@rubens.io> | 2024-06-13 13:35:19 -0300 |
|---|---|---|
| committer | Kyle Martin <krm504@nyu.edu> | 2024-07-09 18:45:30 -0400 |
| commit | 66cb34c9b6fc3620cc60faf8ce964b255608b69e (patch) | |
| tree | 0a3f73c7383753ab26947433e46ca5c56d3d2bf7 /rust/src/platform.rs | |
| parent | 273fa764cee0e0b972546bbc460e802879b109f8 (diff) | |
implement rust TypeLibrary
Diffstat (limited to 'rust/src/platform.rs')
| -rw-r--r-- | rust/src/platform.rs | 10 |
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(); |
