summaryrefslogtreecommitdiff
path: root/rust/src/download_provider.rs
diff options
context:
space:
mode:
authorMason Reed <mason@vector35.com>2025-05-04 19:47:55 -0400
committerMason Reed <35282038+emesare@users.noreply.github.com>2025-05-12 17:45:24 -0400
commit788a8b7091bbdde77817030e0836d7a7a786fd99 (patch)
tree40e8f8d3c870788259a5acb5d14995cdc1656979 /rust/src/download_provider.rs
parenta826c589dfc10c542deba7ca3343a462e02d6bde (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.rs18
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(),