From 21d47a1e637ceff48bc2d9be255112ae59518126 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= Date: Sun, 23 Mar 2025 16:03:23 +0200 Subject: [PATCH] glib: Add From> impl for GStringPtr It was previously not possible to create instances of this. --- glib/src/gstring.rs | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/glib/src/gstring.rs b/glib/src/gstring.rs index a382dcc15b9d..c681148ad193 100644 --- a/glib/src/gstring.rs +++ b/glib/src/gstring.rs @@ -1040,6 +1040,18 @@ impl std::hash::Hash for GStringPtr { } } +impl> From for GStringPtr { + fn from(value: T) -> Self { + unsafe { + let value = value.as_ref(); + GStringPtr(ptr::NonNull::new_unchecked(ffi::g_strndup( + value.as_ptr() as *const _, + value.len(), + ))) + } + } +} + // size_of::() minus two bytes for length and enum discriminant const INLINE_LEN: usize = mem::size_of::>>() + mem::size_of::() - mem::size_of::() * 2;