diff options
| author | Mason Reed <mason@vector35.com> | 2025-05-04 19:47:55 -0400 |
|---|---|---|
| committer | Mason Reed <35282038+emesare@users.noreply.github.com> | 2025-05-12 17:45:24 -0400 |
| commit | 788a8b7091bbdde77817030e0836d7a7a786fd99 (patch) | |
| tree | 40e8f8d3c870788259a5acb5d14995cdc1656979 /rust/src/download_provider.rs | |
| parent | a826c589dfc10c542deba7ca3343a462e02d6bde (diff) | |
[Rust] Simplify usage surrounding c strings
`cstring.as_ref().as_ptr() as *const c_char` -> `cstring.as_ptr()`
`cstring.as_ref().as_ptr() as *mut _` -> `cstring.as_ptr()`
`cstring.as_ptr() as *const c_char` -> `cstring.as_ptr()`
With a few fixes for cstrings that might be dropped prematurely.
Diffstat (limited to 'rust/src/download_provider.rs')
| -rw-r--r-- | rust/src/download_provider.rs | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/rust/src/download_provider.rs b/rust/src/download_provider.rs index f9e21e64..7d28058f 100644 --- a/rust/src/download_provider.rs +++ b/rust/src/download_provider.rs @@ -14,9 +14,8 @@ pub struct DownloadProvider { impl DownloadProvider { pub fn get<S: AsCStr>(name: S) -> Option<DownloadProvider> { - let result = unsafe { - BNGetDownloadProviderByName(name.to_cstr().as_ref().as_ptr() as *const c_char) - }; + let name = name.to_cstr(); + let result = unsafe { BNGetDownloadProviderByName(name.as_ptr()) }; if result.is_null() { return None; } @@ -145,10 +144,11 @@ impl DownloadInstance { progressContext: callbacks as *mut c_void, }; + let url_raw = url.to_cstr(); let result = unsafe { BNPerformDownloadRequest( self.handle, - url.to_cstr().as_ref().as_ptr() as *const c_char, + url_raw.as_ptr(), &mut cbs as *mut BNDownloadInstanceOutputCallbacks, ) }; @@ -225,8 +225,8 @@ impl DownloadInstance { let mut header_value_ptrs = vec![]; for (key, value) in header_keys.iter().zip(header_values.iter()) { - header_key_ptrs.push(key.as_ref().as_ptr() as *const c_char); - header_value_ptrs.push(value.as_ref().as_ptr() as *const c_char); + header_key_ptrs.push(key.as_ptr()); + header_value_ptrs.push(value.as_ptr()); } let callbacks = Box::into_raw(Box::new(callbacks)); @@ -241,11 +241,13 @@ impl DownloadInstance { let mut response: *mut BNDownloadInstanceResponse = null_mut(); + let method_raw = method.to_cstr(); + let url_raw = url.to_cstr(); let result = unsafe { BNPerformCustomRequest( self.handle, - method.to_cstr().as_ref().as_ptr() as *const c_char, - url.to_cstr().as_ref().as_ptr() as *const c_char, + method_raw.as_ptr(), + url_raw.as_ptr(), header_key_ptrs.len() as u64, header_key_ptrs.as_ptr(), header_value_ptrs.as_ptr(), |
