Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

implement FromGlibPtrNone for shared types #1152

Open
bilelmoussaoui opened this issue Aug 1, 2023 · 2 comments
Open

implement FromGlibPtrNone for shared types #1152

bilelmoussaoui opened this issue Aug 1, 2023 · 2 comments
Labels
good first issue Good for newcomers

Comments

@bilelmoussaoui
Copy link
Member

bilelmoussaoui commented Aug 1, 2023

Required by webkit6 bindings

error[E0277]: the trait bound `Event: glib::translate::FromGlibPtrNone<*mut GdkEvent>` is not satisfied
    --> webkit-web-process-extension6/src/auto/context_menu.rs:52:18
     |
52   |         unsafe { from_glib_none(ffi::webkit_context_menu_get_event(self.to_glib_none(...
     |                  ^^^^^^^^^^^^^^ the trait `glib::translate::FromGlibPtrNone<*mut GdkEvent>` is not implemented for `Event`
     |
     = help: the following other types implement trait `glib::translate::FromGlibPtrNone<P>`:
               <&glib::GStr as glib::translate::FromGlibPtrNone<*const i8>>
               <&glib::GStr as glib::translate::FromGlibPtrNone<*const u8>>
               <&glib::GStr as glib::translate::FromGlibPtrNone<*mut i8>>
               <&glib::GStr as glib::translate::FromGlibPtrNone<*mut u8>>
               <Exception as glib::translate::FromGlibPtrNone<*const JSCException>>
               <Exception as glib::translate::FromGlibPtrNone<*mut JSCException>>
               <HitTestResult as glib::translate::FromGlibPtrNone<*const WebKitHitTestResult>>
               <HitTestResult as glib::translate::FromGlibPtrNone<*mut WebKitHitTestResult>>
             and 482 others
     = note: required for `std::option::Option<Event>` to implement `glib::translate::FromGlibPtrNone<*mut GdkEvent>`
note: required by a bound in `glib::translate::from_glib_none`
    --> /home/bilalelmoussaoui/.cargo/git/checkouts/gtk-rs-core-7be42ca38bd6361c/4447e9a/glib/src/translate.rs:1621:41
     |
1621 | pub unsafe fn from_glib_none<P: Ptr, T: FromGlibPtrNone<P>>(ptr: P) -> T {
     |                                         ^^^^^^^^^^^^^^^^^^ required by this bound in `from_glib_none`

error[E0277]: the trait bound `MessageHeaders: glib::translate::FromGlibPtrNone<*mut SoupMessageHeaders>` is not satisfied
    --> webkit-web-process-extension6/src/auto/uri_request.rs:33:13
     |
33   |             from_glib_none(ffi::webkit_uri_request_get_http_headers(
     |             ^^^^^^^^^^^^^^ the trait `glib::translate::FromGlibPtrNone<*mut SoupMessageHeaders>` is not implemented for `MessageHeaders`
     |
     = help: the following other types implement trait `glib::translate::FromGlibPtrNone<P>`:
               <&glib::GStr as glib::translate::FromGlibPtrNone<*const i8>>
               <&glib::GStr as glib::translate::FromGlibPtrNone<*const u8>>
               <&glib::GStr as glib::translate::FromGlibPtrNone<*mut i8>>
               <&glib::GStr as glib::translate::FromGlibPtrNone<*mut u8>>
               <Exception as glib::translate::FromGlibPtrNone<*const JSCException>>
               <Exception as glib::translate::FromGlibPtrNone<*mut JSCException>>
               <HitTestResult as glib::translate::FromGlibPtrNone<*const WebKitHitTestResult>>
               <HitTestResult as glib::translate::FromGlibPtrNone<*mut WebKitHitTestResult>>
             and 482 others
     = note: required for `std::option::Option<MessageHeaders>` to implement `glib::translate::FromGlibPtrNone<*mut SoupMessageHeaders>`
note: required by a bound in `glib::translate::from_glib_none`
    --> /home/bilalelmoussaoui/.cargo/git/checkouts/gtk-rs-core-7be42ca38bd6361c/4447e9a/glib/src/translate.rs:1621:41
     |
1621 | pub unsafe fn from_glib_none<P: Ptr, T: FromGlibPtrNone<P>>(ptr: P) -> T {
     |                                         ^^^^^^^^^^^^^^^^^^ required by this bound in `from_glib_none`

error[E0277]: the trait bound `MessageHeaders: glib::translate::FromGlibPtrNone<*mut SoupMessageHeaders>` is not satisfied
    --> webkit-web-process-extension6/src/auto/uri_response.rs:33:13
     |
33   |             from_glib_none(ffi::webkit_uri_response_get_http_headers(
     |             ^^^^^^^^^^^^^^ the trait `glib::translate::FromGlibPtrNone<*mut SoupMessageHeaders>` is not implemented for `MessageHeaders`
     |
     = help: the following other types implement trait `glib::translate::FromGlibPtrNone<P>`:
               <&glib::GStr as glib::translate::FromGlibPtrNone<*const i8>>
               <&glib::GStr as glib::translate::FromGlibPtrNone<*const u8>>
               <&glib::GStr as glib::translate::FromGlibPtrNone<*mut i8>>
               <&glib::GStr as glib::translate::FromGlibPtrNone<*mut u8>>
               <Exception as glib::translate::FromGlibPtrNone<*const JSCException>>
               <Exception as glib::translate::FromGlibPtrNone<*mut JSCException>>
               <HitTestResult as glib::translate::FromGlibPtrNone<*const WebKitHitTestResult>>
               <HitTestResult as glib::translate::FromGlibPtrNone<*mut WebKitHitTestResult>>
             and 482 others
     = note: required for `std::option::Option<MessageHeaders>` to implement `glib::translate::FromGlibPtrNone<*mut SoupMessageHeaders>`
note: required by a bound in `glib::translate::from_glib_none`
    --> /home/bilalelmoussaoui/.cargo/git/checkouts/gtk-rs-core-7be42ca38bd6361c/4447e9a/glib/src/translate.rs:1621:41
     |
1621 | pub unsafe fn from_glib_none<P: Ptr, T: FromGlibPtrNone<P>>(ptr: P) -> T {
     |                                         ^^^^^^^^^^^^^^^^^^ required by this bound in `from_glib_none`

For more information about this error, try `rustc --explain E0277`.

@bilelmoussaoui bilelmoussaoui added the good first issue Good for newcomers label Aug 1, 2023
@bilelmoussaoui
Copy link
Member Author

Actually, this is probably something that needs to be done gtk-rs-core as it also fails for soup3-rs's MessageHeaders. Both seems to be fundamental types.

@bilelmoussaoui bilelmoussaoui transferred this issue from gtk-rs/gtk4-rs Aug 1, 2023
@bilelmoussaoui bilelmoussaoui changed the title implement FromGlibPtrNone for gdk::Event implement FromGlibPtrNone for shared types Aug 1, 2023
@sdroege
Copy link
Member

sdroege commented Aug 7, 2023

It is implemented for shared types

#[doc(hidden)]
impl $(<$($generic $(: $bound $(+ $bound2)*)?),+>)? $crate::translate::FromGlibPtrNone<*mut $ffi_name> for $name $(<$($generic),+>)? {
#[inline]
unsafe fn from_glib_none(ptr: *mut $ffi_name) -> Self {
Self {
inner: $crate::translate::from_glib_none(ptr),
}
}
}
#[doc(hidden)]
impl $(<$($generic $(: $bound $(+ $bound2)*)?),+>)? $crate::translate::FromGlibPtrNone<*const $ffi_name> for $name $(<$($generic),+>)? {
#[inline]
unsafe fn from_glib_none(ptr: *const $ffi_name) -> Self {
Self {
inner: $crate::translate::from_glib_none(ptr),
}
}
}

Nothing would work otherwise :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
good first issue Good for newcomers
Projects
None yet
Development

No branches or pull requests

2 participants