@@ -30,14 +30,18 @@ use crate::{conn::SyncData, Connection, DispatchError, Proxy};
3030///
3131/// In the rare case of an interface with *events* creating new objects (in the core protocol, the only
3232/// instance of this is the `wl_data_device.data_offer` event), you'll need to implement the
33- /// [`Dispatch::event_created_child()`] method. See the [`crate:: event_created_child!()`] macro
33+ /// [`Dispatch::event_created_child()`] method. See the [`event_created_child!()`] macro
3434/// for a simple way to do this.
3535///
36+ /// [`event_created_child!()`]: crate::event_created_child!()
37+ ///
3638/// ## Modularity
3739///
3840/// To provide generic handlers for downstream usage, it is possible to make an implementation of the trait
3941/// that is generic over the last type argument, as illustrated below. Users will then be able to
40- /// automatically delegate their implementation to yours using the [`crate::delegate_dispatch!()`] macro.
42+ /// automatically delegate their implementation to yours using the [`delegate_dispatch!()`] macro.
43+ ///
44+ /// [`delegate_dispatch!()`]: crate::delegate_dispatch!()
4145///
4246/// As a result, when your implementation is instantiated, the last type parameter `State` will be the state
4347/// struct of the app using your generic implementation. You can put additional trait constraints on it to
@@ -117,7 +121,9 @@ where
117121 /// Method used to initialize the user-data of objects created by events
118122 ///
119123 /// If the interface does not have any such event, you can ignore it. If not, the
120- /// [`crate::event_created_child!()`] macro is provided for overriding it.
124+ /// [`event_created_child!()`] macro is provided for overriding it.
125+ ///
126+ /// [`event_created_child!()`]: crate::event_created_child!()
121127 #[ cfg_attr( coverage, coverage( off) ) ]
122128 fn event_created_child ( opcode : u16 , _qhandle : & QueueHandle < State > ) -> Arc < dyn ObjectData > {
123129 panic ! (
0 commit comments