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/string.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/string.rs')
| -rw-r--r-- | rust/src/string.rs | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/rust/src/string.rs b/rust/src/string.rs index 17fcf911..640731ff 100644 --- a/rust/src/string.rs +++ b/rust/src/string.rs @@ -23,6 +23,7 @@ use std::hash::{Hash, Hasher}; use std::mem; use std::ops::Deref; use std::path::{Path, PathBuf}; +use crate::type_archive::TypeArchiveSnapshotId; // TODO: Remove or refactor this. pub(crate) fn raw_to_string(ptr: *const c_char) -> Option<String> { @@ -291,6 +292,14 @@ unsafe impl AsCStr for &Path { } } +unsafe impl AsCStr for TypeArchiveSnapshotId { + type Result = CString; + + fn to_cstr(self) -> Self::Result { + self.to_string().to_cstr() + } +} + pub trait IntoJson { type Output: AsCStr; |
