Skip to main content

wl_proxy/
protocols.rs

1#[cfg(feature = "protocol-hyprland_ctm_control_v1")]
2pub mod hyprland_ctm_control_v1;
3#[cfg(feature = "protocol-hyprland_focus_grab_v1")]
4pub mod hyprland_focus_grab_v1;
5#[cfg(feature = "protocol-hyprland_global_shortcuts_v1")]
6pub mod hyprland_global_shortcuts_v1;
7#[cfg(feature = "protocol-hyprland_input_capture_v1")]
8pub mod hyprland_input_capture_v1;
9#[cfg(feature = "protocol-hyprland_lock_notify_v1")]
10pub mod hyprland_lock_notify_v1;
11#[cfg(feature = "protocol-hyprland_surface_v1")]
12pub mod hyprland_surface_v1;
13#[cfg(feature = "protocol-hyprland_toplevel_export_v1")]
14pub mod hyprland_toplevel_export_v1;
15#[cfg(feature = "protocol-hyprland_toplevel_mapping_v1")]
16pub mod hyprland_toplevel_mapping_v1;
17#[cfg(feature = "protocol-jay_popup_ext_v1")]
18pub mod jay_popup_ext_v1;
19#[cfg(feature = "protocol-jay_tray_v1")]
20pub mod jay_tray_v1;
21#[cfg(feature = "protocol-drm")]
22pub mod drm;
23#[cfg(feature = "protocol-input_method_unstable_v2")]
24pub mod input_method_unstable_v2;
25#[cfg(feature = "protocol-org_kde_kwin_server_decoration_v1")]
26pub mod org_kde_kwin_server_decoration_v1;
27#[cfg(feature = "protocol-virtual_keyboard_unstable_v1")]
28pub mod virtual_keyboard_unstable_v1;
29pub mod wayland;
30#[cfg(feature = "protocol-alpha_modifier_v1")]
31pub mod alpha_modifier_v1;
32#[cfg(feature = "protocol-color_management_v1")]
33pub mod color_management_v1;
34#[cfg(feature = "protocol-color_representation_v1")]
35pub mod color_representation_v1;
36#[cfg(feature = "protocol-commit_timing_v1")]
37pub mod commit_timing_v1;
38#[cfg(feature = "protocol-content_type_v1")]
39pub mod content_type_v1;
40#[cfg(feature = "protocol-cursor_shape_v1")]
41pub mod cursor_shape_v1;
42#[cfg(feature = "protocol-drm_lease_v1")]
43pub mod drm_lease_v1;
44#[cfg(feature = "protocol-ext_background_effect_v1")]
45pub mod ext_background_effect_v1;
46#[cfg(feature = "protocol-ext_data_control_v1")]
47pub mod ext_data_control_v1;
48#[cfg(feature = "protocol-ext_foreign_toplevel_list_v1")]
49pub mod ext_foreign_toplevel_list_v1;
50#[cfg(feature = "protocol-ext_idle_notify_v1")]
51pub mod ext_idle_notify_v1;
52#[cfg(feature = "protocol-ext_image_capture_source_v1")]
53pub mod ext_image_capture_source_v1;
54#[cfg(feature = "protocol-ext_image_copy_capture_v1")]
55pub mod ext_image_copy_capture_v1;
56#[cfg(feature = "protocol-ext_session_lock_v1")]
57pub mod ext_session_lock_v1;
58#[cfg(feature = "protocol-ext_transient_seat_v1")]
59pub mod ext_transient_seat_v1;
60#[cfg(feature = "protocol-ext_workspace_v1")]
61pub mod ext_workspace_v1;
62#[cfg(feature = "protocol-fifo_v1")]
63pub mod fifo_v1;
64#[cfg(feature = "protocol-fractional_scale_v1")]
65pub mod fractional_scale_v1;
66#[cfg(feature = "protocol-fullscreen_shell_unstable_v1")]
67pub mod fullscreen_shell_unstable_v1;
68#[cfg(feature = "protocol-idle_inhibit_unstable_v1")]
69pub mod idle_inhibit_unstable_v1;
70#[cfg(feature = "protocol-input_method_unstable_v1")]
71pub mod input_method_unstable_v1;
72#[cfg(feature = "protocol-input_timestamps_unstable_v1")]
73pub mod input_timestamps_unstable_v1;
74#[cfg(feature = "protocol-keyboard_shortcuts_inhibit_unstable_v1")]
75pub mod keyboard_shortcuts_inhibit_unstable_v1;
76#[cfg(feature = "protocol-linux_dmabuf_v1")]
77pub mod linux_dmabuf_v1;
78#[cfg(feature = "protocol-linux_drm_syncobj_v1")]
79pub mod linux_drm_syncobj_v1;
80#[cfg(feature = "protocol-pointer_constraints_unstable_v1")]
81pub mod pointer_constraints_unstable_v1;
82#[cfg(feature = "protocol-pointer_gestures_unstable_v1")]
83pub mod pointer_gestures_unstable_v1;
84#[cfg(feature = "protocol-pointer_warp_v1")]
85pub mod pointer_warp_v1;
86#[cfg(feature = "protocol-presentation_time")]
87pub mod presentation_time;
88#[cfg(feature = "protocol-relative_pointer_unstable_v1")]
89pub mod relative_pointer_unstable_v1;
90#[cfg(feature = "protocol-security_context_v1")]
91pub mod security_context_v1;
92#[cfg(feature = "protocol-single_pixel_buffer_v1")]
93pub mod single_pixel_buffer_v1;
94#[cfg(feature = "protocol-tablet_v2")]
95pub mod tablet_v2;
96#[cfg(feature = "protocol-tearing_control_v1")]
97pub mod tearing_control_v1;
98#[cfg(feature = "protocol-text_input_unstable_v1")]
99pub mod text_input_unstable_v1;
100#[cfg(feature = "protocol-text_input_unstable_v3")]
101pub mod text_input_unstable_v3;
102#[cfg(feature = "protocol-viewporter")]
103pub mod viewporter;
104#[cfg(feature = "protocol-wp_primary_selection_unstable_v1")]
105pub mod wp_primary_selection_unstable_v1;
106#[cfg(feature = "protocol-xdg_activation_v1")]
107pub mod xdg_activation_v1;
108#[cfg(feature = "protocol-xdg_decoration_unstable_v1")]
109pub mod xdg_decoration_unstable_v1;
110#[cfg(feature = "protocol-xdg_dialog_v1")]
111pub mod xdg_dialog_v1;
112#[cfg(feature = "protocol-xdg_foreign_unstable_v2")]
113pub mod xdg_foreign_unstable_v2;
114#[cfg(feature = "protocol-xdg_output_unstable_v1")]
115pub mod xdg_output_unstable_v1;
116#[cfg(feature = "protocol-xdg_session_management_v1")]
117pub mod xdg_session_management_v1;
118#[cfg(feature = "protocol-xdg_shell")]
119pub mod xdg_shell;
120#[cfg(feature = "protocol-xdg_system_bell_v1")]
121pub mod xdg_system_bell_v1;
122#[cfg(feature = "protocol-xdg_toplevel_drag_v1")]
123pub mod xdg_toplevel_drag_v1;
124#[cfg(feature = "protocol-xdg_toplevel_icon_v1")]
125pub mod xdg_toplevel_icon_v1;
126#[cfg(feature = "protocol-xdg_toplevel_tag_v1")]
127pub mod xdg_toplevel_tag_v1;
128#[cfg(feature = "protocol-xwayland_keyboard_grab_unstable_v1")]
129pub mod xwayland_keyboard_grab_unstable_v1;
130#[cfg(feature = "protocol-xwayland_shell_v1")]
131pub mod xwayland_shell_v1;
132#[cfg(feature = "protocol-zwp_linux_explicit_synchronization_unstable_v1")]
133pub mod zwp_linux_explicit_synchronization_unstable_v1;
134#[cfg(feature = "protocol-wlr_data_control_unstable_v1")]
135pub mod wlr_data_control_unstable_v1;
136#[cfg(feature = "protocol-wlr_export_dmabuf_unstable_v1")]
137pub mod wlr_export_dmabuf_unstable_v1;
138#[cfg(feature = "protocol-wlr_foreign_toplevel_management_unstable_v1")]
139pub mod wlr_foreign_toplevel_management_unstable_v1;
140#[cfg(feature = "protocol-wlr_gamma_control_unstable_v1")]
141pub mod wlr_gamma_control_unstable_v1;
142#[cfg(feature = "protocol-wlr_input_inhibit_unstable_v1")]
143pub mod wlr_input_inhibit_unstable_v1;
144#[cfg(feature = "protocol-wlr_layer_shell_unstable_v1")]
145pub mod wlr_layer_shell_unstable_v1;
146#[cfg(feature = "protocol-wlr_output_management_unstable_v1")]
147pub mod wlr_output_management_unstable_v1;
148#[cfg(feature = "protocol-wlr_output_power_management_unstable_v1")]
149pub mod wlr_output_power_management_unstable_v1;
150#[cfg(feature = "protocol-wlr_screencopy_unstable_v1")]
151pub mod wlr_screencopy_unstable_v1;
152#[cfg(feature = "protocol-wlr_virtual_pointer_unstable_v1")]
153pub mod wlr_virtual_pointer_unstable_v1;
154#[cfg(feature = "protocol-wlproxy_sync_v1")]
155pub mod wlproxy_sync_v1;
156#[cfg(test)]
157pub mod wlproxy_test;
158#[cfg(feature = "protocol-river_input_management_v1")]
159pub mod river_input_management_v1;
160#[cfg(feature = "protocol-river_layer_shell_v1")]
161pub mod river_layer_shell_v1;
162#[cfg(feature = "protocol-river_libinput_config_v1")]
163pub mod river_libinput_config_v1;
164#[cfg(feature = "protocol-river_window_management_v1")]
165pub mod river_window_management_v1;
166#[cfg(feature = "protocol-river_xkb_bindings_v1")]
167pub mod river_xkb_bindings_v1;
168#[cfg(feature = "protocol-river_xkb_config_v1")]
169pub mod river_xkb_config_v1;
170#[cfg(feature = "protocol-ivi_application")]
171pub mod ivi_application;
172#[cfg(feature = "protocol-ivi_hmi_controller")]
173pub mod ivi_hmi_controller;
174#[cfg(feature = "protocol-weston_content_protection")]
175pub mod weston_content_protection;
176#[cfg(feature = "protocol-weston_debug")]
177pub mod weston_debug;
178#[cfg(feature = "protocol-weston_desktop")]
179pub mod weston_desktop;
180#[cfg(feature = "protocol-weston_direct_display")]
181pub mod weston_direct_display;
182#[cfg(feature = "protocol-weston_output_capture")]
183pub mod weston_output_capture;
184#[cfg(feature = "protocol-weston_test")]
185pub mod weston_test;
186#[cfg(feature = "protocol-weston_touch_calibration")]
187pub mod weston_touch_calibration;
188#[cfg(feature = "protocol-cosmic_a11y_v1")]
189pub mod cosmic_a11y_v1;
190#[cfg(feature = "protocol-cosmic_corner_radius_v1")]
191pub mod cosmic_corner_radius_v1;
192#[cfg(feature = "protocol-cosmic_image_source_unstable_v1")]
193pub mod cosmic_image_source_unstable_v1;
194#[cfg(feature = "protocol-cosmic_output_management_unstable_v1")]
195pub mod cosmic_output_management_unstable_v1;
196#[cfg(feature = "protocol-cosmic_overlap_notify_unstable_v1")]
197pub mod cosmic_overlap_notify_unstable_v1;
198#[cfg(feature = "protocol-cosmic_workspace_unstable_v2")]
199pub mod cosmic_workspace_unstable_v2;
200
201#[allow(unused_imports)]
202mod all_types {
203    #[cfg(feature = "protocol-hyprland_ctm_control_v1")]
204    pub(super) use super::hyprland_ctm_control_v1::hyprland_ctm_control_manager_v1::HyprlandCtmControlManagerV1;
205    #[cfg(feature = "protocol-hyprland_ctm_control_v1")]
206    pub(super) use super::hyprland_ctm_control_v1::hyprland_ctm_control_manager_v1::HyprlandCtmControlManagerV1Error;
207    #[cfg(feature = "protocol-hyprland_focus_grab_v1")]
208    pub(super) use super::hyprland_focus_grab_v1::hyprland_focus_grab_manager_v1::HyprlandFocusGrabManagerV1;
209    #[cfg(feature = "protocol-hyprland_focus_grab_v1")]
210    pub(super) use super::hyprland_focus_grab_v1::hyprland_focus_grab_v1::HyprlandFocusGrabV1;
211    #[cfg(feature = "protocol-hyprland_global_shortcuts_v1")]
212    pub(super) use super::hyprland_global_shortcuts_v1::hyprland_global_shortcut_v1::HyprlandGlobalShortcutV1;
213    #[cfg(feature = "protocol-hyprland_global_shortcuts_v1")]
214    pub(super) use super::hyprland_global_shortcuts_v1::hyprland_global_shortcuts_manager_v1::HyprlandGlobalShortcutsManagerV1;
215    #[cfg(feature = "protocol-hyprland_global_shortcuts_v1")]
216    pub(super) use super::hyprland_global_shortcuts_v1::hyprland_global_shortcuts_manager_v1::HyprlandGlobalShortcutsManagerV1Error;
217    #[cfg(feature = "protocol-hyprland_input_capture_v1")]
218    pub(super) use super::hyprland_input_capture_v1::hyprland_input_capture_manager_v1::HyprlandInputCaptureManagerV1;
219    #[cfg(feature = "protocol-hyprland_input_capture_v1")]
220    pub(super) use super::hyprland_input_capture_v1::hyprland_input_capture_v1::HyprlandInputCaptureV1;
221    #[cfg(feature = "protocol-hyprland_input_capture_v1")]
222    pub(super) use super::hyprland_input_capture_v1::hyprland_input_capture_v1::HyprlandInputCaptureV1Error;
223    #[cfg(feature = "protocol-hyprland_lock_notify_v1")]
224    pub(super) use super::hyprland_lock_notify_v1::hyprland_lock_notification_v1::HyprlandLockNotificationV1;
225    #[cfg(feature = "protocol-hyprland_lock_notify_v1")]
226    pub(super) use super::hyprland_lock_notify_v1::hyprland_lock_notifier_v1::HyprlandLockNotifierV1;
227    #[cfg(feature = "protocol-hyprland_surface_v1")]
228    pub(super) use super::hyprland_surface_v1::hyprland_surface_manager_v1::HyprlandSurfaceManagerV1;
229    #[cfg(feature = "protocol-hyprland_surface_v1")]
230    pub(super) use super::hyprland_surface_v1::hyprland_surface_manager_v1::HyprlandSurfaceManagerV1Error;
231    #[cfg(feature = "protocol-hyprland_surface_v1")]
232    pub(super) use super::hyprland_surface_v1::hyprland_surface_v1::HyprlandSurfaceV1;
233    #[cfg(feature = "protocol-hyprland_surface_v1")]
234    pub(super) use super::hyprland_surface_v1::hyprland_surface_v1::HyprlandSurfaceV1Error;
235    #[cfg(feature = "protocol-hyprland_toplevel_export_v1")]
236    pub(super) use super::hyprland_toplevel_export_v1::hyprland_toplevel_export_frame_v1::HyprlandToplevelExportFrameV1;
237    #[cfg(feature = "protocol-hyprland_toplevel_export_v1")]
238    pub(super) use super::hyprland_toplevel_export_v1::hyprland_toplevel_export_frame_v1::HyprlandToplevelExportFrameV1Error;
239    #[cfg(feature = "protocol-hyprland_toplevel_export_v1")]
240    pub(super) use super::hyprland_toplevel_export_v1::hyprland_toplevel_export_frame_v1::HyprlandToplevelExportFrameV1Flags;
241    #[cfg(feature = "protocol-hyprland_toplevel_export_v1")]
242    pub(super) use super::hyprland_toplevel_export_v1::hyprland_toplevel_export_manager_v1::HyprlandToplevelExportManagerV1;
243    #[cfg(feature = "protocol-hyprland_toplevel_mapping_v1")]
244    pub(super) use super::hyprland_toplevel_mapping_v1::hyprland_toplevel_mapping_manager_v1::HyprlandToplevelMappingManagerV1;
245    #[cfg(feature = "protocol-hyprland_toplevel_mapping_v1")]
246    pub(super) use super::hyprland_toplevel_mapping_v1::hyprland_toplevel_window_mapping_handle_v1::HyprlandToplevelWindowMappingHandleV1;
247    #[cfg(feature = "protocol-jay_popup_ext_v1")]
248    pub(super) use super::jay_popup_ext_v1::jay_popup_ext_manager_v1::JayPopupExtManagerV1;
249    #[cfg(feature = "protocol-jay_popup_ext_v1")]
250    pub(super) use super::jay_popup_ext_v1::jay_popup_ext_manager_v1::JayPopupExtManagerV1Error;
251    #[cfg(feature = "protocol-jay_popup_ext_v1")]
252    pub(super) use super::jay_popup_ext_v1::jay_popup_ext_v1::JayPopupExtV1;
253    #[cfg(feature = "protocol-jay_popup_ext_v1")]
254    pub(super) use super::jay_popup_ext_v1::jay_popup_ext_v1::JayPopupExtV1Error;
255    #[cfg(feature = "protocol-jay_tray_v1")]
256    pub(super) use super::jay_tray_v1::jay_tray_item_v1::JayTrayItemV1;
257    #[cfg(feature = "protocol-jay_tray_v1")]
258    pub(super) use super::jay_tray_v1::jay_tray_item_v1::JayTrayItemV1Error;
259    #[cfg(feature = "protocol-jay_tray_v1")]
260    pub(super) use super::jay_tray_v1::jay_tray_item_v1::JayTrayItemV1KeyboardFocusHint;
261    #[cfg(feature = "protocol-jay_tray_v1")]
262    pub(super) use super::jay_tray_v1::jay_tray_v1::JayTrayV1;
263    #[cfg(feature = "protocol-jay_tray_v1")]
264    pub(super) use super::jay_tray_v1::jay_tray_v1::JayTrayV1Error;
265    #[cfg(feature = "protocol-drm")]
266    pub(super) use super::drm::wl_drm::WlDrm;
267    #[cfg(feature = "protocol-drm")]
268    pub(super) use super::drm::wl_drm::WlDrmError;
269    #[cfg(feature = "protocol-drm")]
270    pub(super) use super::drm::wl_drm::WlDrmFormat;
271    #[cfg(feature = "protocol-drm")]
272    pub(super) use super::drm::wl_drm::WlDrmCapability;
273    #[cfg(feature = "protocol-input_method_unstable_v2")]
274    pub(super) use super::input_method_unstable_v2::zwp_input_method_keyboard_grab_v2::ZwpInputMethodKeyboardGrabV2;
275    #[cfg(feature = "protocol-input_method_unstable_v2")]
276    pub(super) use super::input_method_unstable_v2::zwp_input_method_manager_v2::ZwpInputMethodManagerV2;
277    #[cfg(feature = "protocol-input_method_unstable_v2")]
278    pub(super) use super::input_method_unstable_v2::zwp_input_method_v2::ZwpInputMethodV2;
279    #[cfg(feature = "protocol-input_method_unstable_v2")]
280    pub(super) use super::input_method_unstable_v2::zwp_input_method_v2::ZwpInputMethodV2Error;
281    #[cfg(feature = "protocol-input_method_unstable_v2")]
282    pub(super) use super::input_method_unstable_v2::zwp_input_popup_surface_v2::ZwpInputPopupSurfaceV2;
283    #[cfg(feature = "protocol-org_kde_kwin_server_decoration_v1")]
284    pub(super) use super::org_kde_kwin_server_decoration_v1::org_kde_kwin_server_decoration::OrgKdeKwinServerDecoration;
285    #[cfg(feature = "protocol-org_kde_kwin_server_decoration_v1")]
286    pub(super) use super::org_kde_kwin_server_decoration_v1::org_kde_kwin_server_decoration::OrgKdeKwinServerDecorationMode;
287    #[cfg(feature = "protocol-org_kde_kwin_server_decoration_v1")]
288    pub(super) use super::org_kde_kwin_server_decoration_v1::org_kde_kwin_server_decoration_manager::OrgKdeKwinServerDecorationManager;
289    #[cfg(feature = "protocol-org_kde_kwin_server_decoration_v1")]
290    pub(super) use super::org_kde_kwin_server_decoration_v1::org_kde_kwin_server_decoration_manager::OrgKdeKwinServerDecorationManagerMode;
291    #[cfg(feature = "protocol-virtual_keyboard_unstable_v1")]
292    pub(super) use super::virtual_keyboard_unstable_v1::zwp_virtual_keyboard_manager_v1::ZwpVirtualKeyboardManagerV1;
293    #[cfg(feature = "protocol-virtual_keyboard_unstable_v1")]
294    pub(super) use super::virtual_keyboard_unstable_v1::zwp_virtual_keyboard_manager_v1::ZwpVirtualKeyboardManagerV1Error;
295    #[cfg(feature = "protocol-virtual_keyboard_unstable_v1")]
296    pub(super) use super::virtual_keyboard_unstable_v1::zwp_virtual_keyboard_v1::ZwpVirtualKeyboardV1;
297    #[cfg(feature = "protocol-virtual_keyboard_unstable_v1")]
298    pub(super) use super::virtual_keyboard_unstable_v1::zwp_virtual_keyboard_v1::ZwpVirtualKeyboardV1Error;
299    pub(super) use super::wayland::wl_buffer::WlBuffer;
300    pub(super) use super::wayland::wl_callback::WlCallback;
301    pub(super) use super::wayland::wl_compositor::WlCompositor;
302    pub(super) use super::wayland::wl_data_device::WlDataDevice;
303    pub(super) use super::wayland::wl_data_device::WlDataDeviceError;
304    pub(super) use super::wayland::wl_data_device_manager::WlDataDeviceManager;
305    pub(super) use super::wayland::wl_data_device_manager::WlDataDeviceManagerDndAction;
306    pub(super) use super::wayland::wl_data_offer::WlDataOffer;
307    pub(super) use super::wayland::wl_data_offer::WlDataOfferError;
308    pub(super) use super::wayland::wl_data_source::WlDataSource;
309    pub(super) use super::wayland::wl_data_source::WlDataSourceError;
310    pub(super) use super::wayland::wl_display::WlDisplay;
311    pub(super) use super::wayland::wl_display::WlDisplayError;
312    pub(super) use super::wayland::wl_fixes::WlFixes;
313    pub(super) use super::wayland::wl_keyboard::WlKeyboard;
314    pub(super) use super::wayland::wl_keyboard::WlKeyboardKeymapFormat;
315    pub(super) use super::wayland::wl_keyboard::WlKeyboardKeyState;
316    pub(super) use super::wayland::wl_output::WlOutput;
317    pub(super) use super::wayland::wl_output::WlOutputSubpixel;
318    pub(super) use super::wayland::wl_output::WlOutputTransform;
319    pub(super) use super::wayland::wl_output::WlOutputMode;
320    pub(super) use super::wayland::wl_pointer::WlPointer;
321    pub(super) use super::wayland::wl_pointer::WlPointerError;
322    pub(super) use super::wayland::wl_pointer::WlPointerButtonState;
323    pub(super) use super::wayland::wl_pointer::WlPointerAxis;
324    pub(super) use super::wayland::wl_pointer::WlPointerAxisSource;
325    pub(super) use super::wayland::wl_pointer::WlPointerAxisRelativeDirection;
326    pub(super) use super::wayland::wl_region::WlRegion;
327    pub(super) use super::wayland::wl_registry::WlRegistry;
328    pub(super) use super::wayland::wl_seat::WlSeat;
329    pub(super) use super::wayland::wl_seat::WlSeatCapability;
330    pub(super) use super::wayland::wl_seat::WlSeatError;
331    pub(super) use super::wayland::wl_shell::WlShell;
332    pub(super) use super::wayland::wl_shell::WlShellError;
333    pub(super) use super::wayland::wl_shell_surface::WlShellSurface;
334    pub(super) use super::wayland::wl_shell_surface::WlShellSurfaceResize;
335    pub(super) use super::wayland::wl_shell_surface::WlShellSurfaceTransient;
336    pub(super) use super::wayland::wl_shell_surface::WlShellSurfaceFullscreenMethod;
337    pub(super) use super::wayland::wl_shm::WlShm;
338    pub(super) use super::wayland::wl_shm::WlShmError;
339    pub(super) use super::wayland::wl_shm::WlShmFormat;
340    pub(super) use super::wayland::wl_shm_pool::WlShmPool;
341    pub(super) use super::wayland::wl_subcompositor::WlSubcompositor;
342    pub(super) use super::wayland::wl_subcompositor::WlSubcompositorError;
343    pub(super) use super::wayland::wl_subsurface::WlSubsurface;
344    pub(super) use super::wayland::wl_subsurface::WlSubsurfaceError;
345    pub(super) use super::wayland::wl_surface::WlSurface;
346    pub(super) use super::wayland::wl_surface::WlSurfaceError;
347    pub(super) use super::wayland::wl_touch::WlTouch;
348    #[cfg(feature = "protocol-alpha_modifier_v1")]
349    pub(super) use super::alpha_modifier_v1::wp_alpha_modifier_surface_v1::WpAlphaModifierSurfaceV1;
350    #[cfg(feature = "protocol-alpha_modifier_v1")]
351    pub(super) use super::alpha_modifier_v1::wp_alpha_modifier_surface_v1::WpAlphaModifierSurfaceV1Error;
352    #[cfg(feature = "protocol-alpha_modifier_v1")]
353    pub(super) use super::alpha_modifier_v1::wp_alpha_modifier_v1::WpAlphaModifierV1;
354    #[cfg(feature = "protocol-alpha_modifier_v1")]
355    pub(super) use super::alpha_modifier_v1::wp_alpha_modifier_v1::WpAlphaModifierV1Error;
356    #[cfg(feature = "protocol-color_management_v1")]
357    pub(super) use super::color_management_v1::wp_color_management_output_v1::WpColorManagementOutputV1;
358    #[cfg(feature = "protocol-color_management_v1")]
359    pub(super) use super::color_management_v1::wp_color_management_surface_feedback_v1::WpColorManagementSurfaceFeedbackV1;
360    #[cfg(feature = "protocol-color_management_v1")]
361    pub(super) use super::color_management_v1::wp_color_management_surface_feedback_v1::WpColorManagementSurfaceFeedbackV1Error;
362    #[cfg(feature = "protocol-color_management_v1")]
363    pub(super) use super::color_management_v1::wp_color_management_surface_v1::WpColorManagementSurfaceV1;
364    #[cfg(feature = "protocol-color_management_v1")]
365    pub(super) use super::color_management_v1::wp_color_management_surface_v1::WpColorManagementSurfaceV1Error;
366    #[cfg(feature = "protocol-color_management_v1")]
367    pub(super) use super::color_management_v1::wp_color_manager_v1::WpColorManagerV1;
368    #[cfg(feature = "protocol-color_management_v1")]
369    pub(super) use super::color_management_v1::wp_color_manager_v1::WpColorManagerV1Error;
370    #[cfg(feature = "protocol-color_management_v1")]
371    pub(super) use super::color_management_v1::wp_color_manager_v1::WpColorManagerV1RenderIntent;
372    #[cfg(feature = "protocol-color_management_v1")]
373    pub(super) use super::color_management_v1::wp_color_manager_v1::WpColorManagerV1Feature;
374    #[cfg(feature = "protocol-color_management_v1")]
375    pub(super) use super::color_management_v1::wp_color_manager_v1::WpColorManagerV1Primaries;
376    #[cfg(feature = "protocol-color_management_v1")]
377    pub(super) use super::color_management_v1::wp_color_manager_v1::WpColorManagerV1TransferFunction;
378    #[cfg(feature = "protocol-color_management_v1")]
379    pub(super) use super::color_management_v1::wp_image_description_creator_icc_v1::WpImageDescriptionCreatorIccV1;
380    #[cfg(feature = "protocol-color_management_v1")]
381    pub(super) use super::color_management_v1::wp_image_description_creator_icc_v1::WpImageDescriptionCreatorIccV1Error;
382    #[cfg(feature = "protocol-color_management_v1")]
383    pub(super) use super::color_management_v1::wp_image_description_creator_params_v1::WpImageDescriptionCreatorParamsV1;
384    #[cfg(feature = "protocol-color_management_v1")]
385    pub(super) use super::color_management_v1::wp_image_description_creator_params_v1::WpImageDescriptionCreatorParamsV1Error;
386    #[cfg(feature = "protocol-color_management_v1")]
387    pub(super) use super::color_management_v1::wp_image_description_info_v1::WpImageDescriptionInfoV1;
388    #[cfg(feature = "protocol-color_management_v1")]
389    pub(super) use super::color_management_v1::wp_image_description_reference_v1::WpImageDescriptionReferenceV1;
390    #[cfg(feature = "protocol-color_management_v1")]
391    pub(super) use super::color_management_v1::wp_image_description_v1::WpImageDescriptionV1;
392    #[cfg(feature = "protocol-color_management_v1")]
393    pub(super) use super::color_management_v1::wp_image_description_v1::WpImageDescriptionV1Error;
394    #[cfg(feature = "protocol-color_management_v1")]
395    pub(super) use super::color_management_v1::wp_image_description_v1::WpImageDescriptionV1Cause;
396    #[cfg(feature = "protocol-color_representation_v1")]
397    pub(super) use super::color_representation_v1::wp_color_representation_manager_v1::WpColorRepresentationManagerV1;
398    #[cfg(feature = "protocol-color_representation_v1")]
399    pub(super) use super::color_representation_v1::wp_color_representation_manager_v1::WpColorRepresentationManagerV1Error;
400    #[cfg(feature = "protocol-color_representation_v1")]
401    pub(super) use super::color_representation_v1::wp_color_representation_surface_v1::WpColorRepresentationSurfaceV1;
402    #[cfg(feature = "protocol-color_representation_v1")]
403    pub(super) use super::color_representation_v1::wp_color_representation_surface_v1::WpColorRepresentationSurfaceV1Error;
404    #[cfg(feature = "protocol-color_representation_v1")]
405    pub(super) use super::color_representation_v1::wp_color_representation_surface_v1::WpColorRepresentationSurfaceV1AlphaMode;
406    #[cfg(feature = "protocol-color_representation_v1")]
407    pub(super) use super::color_representation_v1::wp_color_representation_surface_v1::WpColorRepresentationSurfaceV1Coefficients;
408    #[cfg(feature = "protocol-color_representation_v1")]
409    pub(super) use super::color_representation_v1::wp_color_representation_surface_v1::WpColorRepresentationSurfaceV1Range;
410    #[cfg(feature = "protocol-color_representation_v1")]
411    pub(super) use super::color_representation_v1::wp_color_representation_surface_v1::WpColorRepresentationSurfaceV1ChromaLocation;
412    #[cfg(feature = "protocol-commit_timing_v1")]
413    pub(super) use super::commit_timing_v1::wp_commit_timer_v1::WpCommitTimerV1;
414    #[cfg(feature = "protocol-commit_timing_v1")]
415    pub(super) use super::commit_timing_v1::wp_commit_timer_v1::WpCommitTimerV1Error;
416    #[cfg(feature = "protocol-commit_timing_v1")]
417    pub(super) use super::commit_timing_v1::wp_commit_timing_manager_v1::WpCommitTimingManagerV1;
418    #[cfg(feature = "protocol-commit_timing_v1")]
419    pub(super) use super::commit_timing_v1::wp_commit_timing_manager_v1::WpCommitTimingManagerV1Error;
420    #[cfg(feature = "protocol-content_type_v1")]
421    pub(super) use super::content_type_v1::wp_content_type_manager_v1::WpContentTypeManagerV1;
422    #[cfg(feature = "protocol-content_type_v1")]
423    pub(super) use super::content_type_v1::wp_content_type_manager_v1::WpContentTypeManagerV1Error;
424    #[cfg(feature = "protocol-content_type_v1")]
425    pub(super) use super::content_type_v1::wp_content_type_v1::WpContentTypeV1;
426    #[cfg(feature = "protocol-content_type_v1")]
427    pub(super) use super::content_type_v1::wp_content_type_v1::WpContentTypeV1Type;
428    #[cfg(feature = "protocol-cursor_shape_v1")]
429    pub(super) use super::cursor_shape_v1::wp_cursor_shape_device_v1::WpCursorShapeDeviceV1;
430    #[cfg(feature = "protocol-cursor_shape_v1")]
431    pub(super) use super::cursor_shape_v1::wp_cursor_shape_device_v1::WpCursorShapeDeviceV1Shape;
432    #[cfg(feature = "protocol-cursor_shape_v1")]
433    pub(super) use super::cursor_shape_v1::wp_cursor_shape_device_v1::WpCursorShapeDeviceV1Error;
434    #[cfg(feature = "protocol-cursor_shape_v1")]
435    pub(super) use super::cursor_shape_v1::wp_cursor_shape_manager_v1::WpCursorShapeManagerV1;
436    #[cfg(feature = "protocol-drm_lease_v1")]
437    pub(super) use super::drm_lease_v1::wp_drm_lease_connector_v1::WpDrmLeaseConnectorV1;
438    #[cfg(feature = "protocol-drm_lease_v1")]
439    pub(super) use super::drm_lease_v1::wp_drm_lease_device_v1::WpDrmLeaseDeviceV1;
440    #[cfg(feature = "protocol-drm_lease_v1")]
441    pub(super) use super::drm_lease_v1::wp_drm_lease_request_v1::WpDrmLeaseRequestV1;
442    #[cfg(feature = "protocol-drm_lease_v1")]
443    pub(super) use super::drm_lease_v1::wp_drm_lease_request_v1::WpDrmLeaseRequestV1Error;
444    #[cfg(feature = "protocol-drm_lease_v1")]
445    pub(super) use super::drm_lease_v1::wp_drm_lease_v1::WpDrmLeaseV1;
446    #[cfg(feature = "protocol-ext_background_effect_v1")]
447    pub(super) use super::ext_background_effect_v1::ext_background_effect_manager_v1::ExtBackgroundEffectManagerV1;
448    #[cfg(feature = "protocol-ext_background_effect_v1")]
449    pub(super) use super::ext_background_effect_v1::ext_background_effect_manager_v1::ExtBackgroundEffectManagerV1Error;
450    #[cfg(feature = "protocol-ext_background_effect_v1")]
451    pub(super) use super::ext_background_effect_v1::ext_background_effect_manager_v1::ExtBackgroundEffectManagerV1Capability;
452    #[cfg(feature = "protocol-ext_background_effect_v1")]
453    pub(super) use super::ext_background_effect_v1::ext_background_effect_surface_v1::ExtBackgroundEffectSurfaceV1;
454    #[cfg(feature = "protocol-ext_background_effect_v1")]
455    pub(super) use super::ext_background_effect_v1::ext_background_effect_surface_v1::ExtBackgroundEffectSurfaceV1Error;
456    #[cfg(feature = "protocol-ext_data_control_v1")]
457    pub(super) use super::ext_data_control_v1::ext_data_control_device_v1::ExtDataControlDeviceV1;
458    #[cfg(feature = "protocol-ext_data_control_v1")]
459    pub(super) use super::ext_data_control_v1::ext_data_control_device_v1::ExtDataControlDeviceV1Error;
460    #[cfg(feature = "protocol-ext_data_control_v1")]
461    pub(super) use super::ext_data_control_v1::ext_data_control_manager_v1::ExtDataControlManagerV1;
462    #[cfg(feature = "protocol-ext_data_control_v1")]
463    pub(super) use super::ext_data_control_v1::ext_data_control_offer_v1::ExtDataControlOfferV1;
464    #[cfg(feature = "protocol-ext_data_control_v1")]
465    pub(super) use super::ext_data_control_v1::ext_data_control_source_v1::ExtDataControlSourceV1;
466    #[cfg(feature = "protocol-ext_data_control_v1")]
467    pub(super) use super::ext_data_control_v1::ext_data_control_source_v1::ExtDataControlSourceV1Error;
468    #[cfg(feature = "protocol-ext_foreign_toplevel_list_v1")]
469    pub(super) use super::ext_foreign_toplevel_list_v1::ext_foreign_toplevel_handle_v1::ExtForeignToplevelHandleV1;
470    #[cfg(feature = "protocol-ext_foreign_toplevel_list_v1")]
471    pub(super) use super::ext_foreign_toplevel_list_v1::ext_foreign_toplevel_list_v1::ExtForeignToplevelListV1;
472    #[cfg(feature = "protocol-ext_idle_notify_v1")]
473    pub(super) use super::ext_idle_notify_v1::ext_idle_notification_v1::ExtIdleNotificationV1;
474    #[cfg(feature = "protocol-ext_idle_notify_v1")]
475    pub(super) use super::ext_idle_notify_v1::ext_idle_notifier_v1::ExtIdleNotifierV1;
476    #[cfg(feature = "protocol-ext_image_capture_source_v1")]
477    pub(super) use super::ext_image_capture_source_v1::ext_foreign_toplevel_image_capture_source_manager_v1::ExtForeignToplevelImageCaptureSourceManagerV1;
478    #[cfg(feature = "protocol-ext_image_capture_source_v1")]
479    pub(super) use super::ext_image_capture_source_v1::ext_image_capture_source_v1::ExtImageCaptureSourceV1;
480    #[cfg(feature = "protocol-ext_image_capture_source_v1")]
481    pub(super) use super::ext_image_capture_source_v1::ext_output_image_capture_source_manager_v1::ExtOutputImageCaptureSourceManagerV1;
482    #[cfg(feature = "protocol-ext_image_copy_capture_v1")]
483    pub(super) use super::ext_image_copy_capture_v1::ext_image_copy_capture_cursor_session_v1::ExtImageCopyCaptureCursorSessionV1;
484    #[cfg(feature = "protocol-ext_image_copy_capture_v1")]
485    pub(super) use super::ext_image_copy_capture_v1::ext_image_copy_capture_cursor_session_v1::ExtImageCopyCaptureCursorSessionV1Error;
486    #[cfg(feature = "protocol-ext_image_copy_capture_v1")]
487    pub(super) use super::ext_image_copy_capture_v1::ext_image_copy_capture_frame_v1::ExtImageCopyCaptureFrameV1;
488    #[cfg(feature = "protocol-ext_image_copy_capture_v1")]
489    pub(super) use super::ext_image_copy_capture_v1::ext_image_copy_capture_frame_v1::ExtImageCopyCaptureFrameV1Error;
490    #[cfg(feature = "protocol-ext_image_copy_capture_v1")]
491    pub(super) use super::ext_image_copy_capture_v1::ext_image_copy_capture_frame_v1::ExtImageCopyCaptureFrameV1FailureReason;
492    #[cfg(feature = "protocol-ext_image_copy_capture_v1")]
493    pub(super) use super::ext_image_copy_capture_v1::ext_image_copy_capture_manager_v1::ExtImageCopyCaptureManagerV1;
494    #[cfg(feature = "protocol-ext_image_copy_capture_v1")]
495    pub(super) use super::ext_image_copy_capture_v1::ext_image_copy_capture_manager_v1::ExtImageCopyCaptureManagerV1Error;
496    #[cfg(feature = "protocol-ext_image_copy_capture_v1")]
497    pub(super) use super::ext_image_copy_capture_v1::ext_image_copy_capture_manager_v1::ExtImageCopyCaptureManagerV1Options;
498    #[cfg(feature = "protocol-ext_image_copy_capture_v1")]
499    pub(super) use super::ext_image_copy_capture_v1::ext_image_copy_capture_session_v1::ExtImageCopyCaptureSessionV1;
500    #[cfg(feature = "protocol-ext_image_copy_capture_v1")]
501    pub(super) use super::ext_image_copy_capture_v1::ext_image_copy_capture_session_v1::ExtImageCopyCaptureSessionV1Error;
502    #[cfg(feature = "protocol-ext_session_lock_v1")]
503    pub(super) use super::ext_session_lock_v1::ext_session_lock_manager_v1::ExtSessionLockManagerV1;
504    #[cfg(feature = "protocol-ext_session_lock_v1")]
505    pub(super) use super::ext_session_lock_v1::ext_session_lock_surface_v1::ExtSessionLockSurfaceV1;
506    #[cfg(feature = "protocol-ext_session_lock_v1")]
507    pub(super) use super::ext_session_lock_v1::ext_session_lock_surface_v1::ExtSessionLockSurfaceV1Error;
508    #[cfg(feature = "protocol-ext_session_lock_v1")]
509    pub(super) use super::ext_session_lock_v1::ext_session_lock_v1::ExtSessionLockV1;
510    #[cfg(feature = "protocol-ext_session_lock_v1")]
511    pub(super) use super::ext_session_lock_v1::ext_session_lock_v1::ExtSessionLockV1Error;
512    #[cfg(feature = "protocol-ext_transient_seat_v1")]
513    pub(super) use super::ext_transient_seat_v1::ext_transient_seat_manager_v1::ExtTransientSeatManagerV1;
514    #[cfg(feature = "protocol-ext_transient_seat_v1")]
515    pub(super) use super::ext_transient_seat_v1::ext_transient_seat_v1::ExtTransientSeatV1;
516    #[cfg(feature = "protocol-ext_workspace_v1")]
517    pub(super) use super::ext_workspace_v1::ext_workspace_group_handle_v1::ExtWorkspaceGroupHandleV1;
518    #[cfg(feature = "protocol-ext_workspace_v1")]
519    pub(super) use super::ext_workspace_v1::ext_workspace_group_handle_v1::ExtWorkspaceGroupHandleV1GroupCapabilities;
520    #[cfg(feature = "protocol-ext_workspace_v1")]
521    pub(super) use super::ext_workspace_v1::ext_workspace_handle_v1::ExtWorkspaceHandleV1;
522    #[cfg(feature = "protocol-ext_workspace_v1")]
523    pub(super) use super::ext_workspace_v1::ext_workspace_handle_v1::ExtWorkspaceHandleV1State;
524    #[cfg(feature = "protocol-ext_workspace_v1")]
525    pub(super) use super::ext_workspace_v1::ext_workspace_handle_v1::ExtWorkspaceHandleV1WorkspaceCapabilities;
526    #[cfg(feature = "protocol-ext_workspace_v1")]
527    pub(super) use super::ext_workspace_v1::ext_workspace_manager_v1::ExtWorkspaceManagerV1;
528    #[cfg(feature = "protocol-fifo_v1")]
529    pub(super) use super::fifo_v1::wp_fifo_manager_v1::WpFifoManagerV1;
530    #[cfg(feature = "protocol-fifo_v1")]
531    pub(super) use super::fifo_v1::wp_fifo_manager_v1::WpFifoManagerV1Error;
532    #[cfg(feature = "protocol-fifo_v1")]
533    pub(super) use super::fifo_v1::wp_fifo_v1::WpFifoV1;
534    #[cfg(feature = "protocol-fifo_v1")]
535    pub(super) use super::fifo_v1::wp_fifo_v1::WpFifoV1Error;
536    #[cfg(feature = "protocol-fractional_scale_v1")]
537    pub(super) use super::fractional_scale_v1::wp_fractional_scale_manager_v1::WpFractionalScaleManagerV1;
538    #[cfg(feature = "protocol-fractional_scale_v1")]
539    pub(super) use super::fractional_scale_v1::wp_fractional_scale_manager_v1::WpFractionalScaleManagerV1Error;
540    #[cfg(feature = "protocol-fractional_scale_v1")]
541    pub(super) use super::fractional_scale_v1::wp_fractional_scale_v1::WpFractionalScaleV1;
542    #[cfg(feature = "protocol-fullscreen_shell_unstable_v1")]
543    pub(super) use super::fullscreen_shell_unstable_v1::zwp_fullscreen_shell_mode_feedback_v1::ZwpFullscreenShellModeFeedbackV1;
544    #[cfg(feature = "protocol-fullscreen_shell_unstable_v1")]
545    pub(super) use super::fullscreen_shell_unstable_v1::zwp_fullscreen_shell_v1::ZwpFullscreenShellV1;
546    #[cfg(feature = "protocol-fullscreen_shell_unstable_v1")]
547    pub(super) use super::fullscreen_shell_unstable_v1::zwp_fullscreen_shell_v1::ZwpFullscreenShellV1Capability;
548    #[cfg(feature = "protocol-fullscreen_shell_unstable_v1")]
549    pub(super) use super::fullscreen_shell_unstable_v1::zwp_fullscreen_shell_v1::ZwpFullscreenShellV1PresentMethod;
550    #[cfg(feature = "protocol-fullscreen_shell_unstable_v1")]
551    pub(super) use super::fullscreen_shell_unstable_v1::zwp_fullscreen_shell_v1::ZwpFullscreenShellV1Error;
552    #[cfg(feature = "protocol-idle_inhibit_unstable_v1")]
553    pub(super) use super::idle_inhibit_unstable_v1::zwp_idle_inhibit_manager_v1::ZwpIdleInhibitManagerV1;
554    #[cfg(feature = "protocol-idle_inhibit_unstable_v1")]
555    pub(super) use super::idle_inhibit_unstable_v1::zwp_idle_inhibitor_v1::ZwpIdleInhibitorV1;
556    #[cfg(feature = "protocol-input_method_unstable_v1")]
557    pub(super) use super::input_method_unstable_v1::zwp_input_method_context_v1::ZwpInputMethodContextV1;
558    #[cfg(feature = "protocol-input_method_unstable_v1")]
559    pub(super) use super::input_method_unstable_v1::zwp_input_method_v1::ZwpInputMethodV1;
560    #[cfg(feature = "protocol-input_method_unstable_v1")]
561    pub(super) use super::input_method_unstable_v1::zwp_input_panel_surface_v1::ZwpInputPanelSurfaceV1;
562    #[cfg(feature = "protocol-input_method_unstable_v1")]
563    pub(super) use super::input_method_unstable_v1::zwp_input_panel_surface_v1::ZwpInputPanelSurfaceV1Position;
564    #[cfg(feature = "protocol-input_method_unstable_v1")]
565    pub(super) use super::input_method_unstable_v1::zwp_input_panel_v1::ZwpInputPanelV1;
566    #[cfg(feature = "protocol-input_timestamps_unstable_v1")]
567    pub(super) use super::input_timestamps_unstable_v1::zwp_input_timestamps_manager_v1::ZwpInputTimestampsManagerV1;
568    #[cfg(feature = "protocol-input_timestamps_unstable_v1")]
569    pub(super) use super::input_timestamps_unstable_v1::zwp_input_timestamps_v1::ZwpInputTimestampsV1;
570    #[cfg(feature = "protocol-keyboard_shortcuts_inhibit_unstable_v1")]
571    pub(super) use super::keyboard_shortcuts_inhibit_unstable_v1::zwp_keyboard_shortcuts_inhibit_manager_v1::ZwpKeyboardShortcutsInhibitManagerV1;
572    #[cfg(feature = "protocol-keyboard_shortcuts_inhibit_unstable_v1")]
573    pub(super) use super::keyboard_shortcuts_inhibit_unstable_v1::zwp_keyboard_shortcuts_inhibit_manager_v1::ZwpKeyboardShortcutsInhibitManagerV1Error;
574    #[cfg(feature = "protocol-keyboard_shortcuts_inhibit_unstable_v1")]
575    pub(super) use super::keyboard_shortcuts_inhibit_unstable_v1::zwp_keyboard_shortcuts_inhibitor_v1::ZwpKeyboardShortcutsInhibitorV1;
576    #[cfg(feature = "protocol-linux_dmabuf_v1")]
577    pub(super) use super::linux_dmabuf_v1::zwp_linux_buffer_params_v1::ZwpLinuxBufferParamsV1;
578    #[cfg(feature = "protocol-linux_dmabuf_v1")]
579    pub(super) use super::linux_dmabuf_v1::zwp_linux_buffer_params_v1::ZwpLinuxBufferParamsV1Error;
580    #[cfg(feature = "protocol-linux_dmabuf_v1")]
581    pub(super) use super::linux_dmabuf_v1::zwp_linux_buffer_params_v1::ZwpLinuxBufferParamsV1Flags;
582    #[cfg(feature = "protocol-linux_dmabuf_v1")]
583    pub(super) use super::linux_dmabuf_v1::zwp_linux_dmabuf_feedback_v1::ZwpLinuxDmabufFeedbackV1;
584    #[cfg(feature = "protocol-linux_dmabuf_v1")]
585    pub(super) use super::linux_dmabuf_v1::zwp_linux_dmabuf_feedback_v1::ZwpLinuxDmabufFeedbackV1TrancheFlags;
586    #[cfg(feature = "protocol-linux_dmabuf_v1")]
587    pub(super) use super::linux_dmabuf_v1::zwp_linux_dmabuf_v1::ZwpLinuxDmabufV1;
588    #[cfg(feature = "protocol-linux_drm_syncobj_v1")]
589    pub(super) use super::linux_drm_syncobj_v1::wp_linux_drm_syncobj_manager_v1::WpLinuxDrmSyncobjManagerV1;
590    #[cfg(feature = "protocol-linux_drm_syncobj_v1")]
591    pub(super) use super::linux_drm_syncobj_v1::wp_linux_drm_syncobj_manager_v1::WpLinuxDrmSyncobjManagerV1Error;
592    #[cfg(feature = "protocol-linux_drm_syncobj_v1")]
593    pub(super) use super::linux_drm_syncobj_v1::wp_linux_drm_syncobj_surface_v1::WpLinuxDrmSyncobjSurfaceV1;
594    #[cfg(feature = "protocol-linux_drm_syncobj_v1")]
595    pub(super) use super::linux_drm_syncobj_v1::wp_linux_drm_syncobj_surface_v1::WpLinuxDrmSyncobjSurfaceV1Error;
596    #[cfg(feature = "protocol-linux_drm_syncobj_v1")]
597    pub(super) use super::linux_drm_syncobj_v1::wp_linux_drm_syncobj_timeline_v1::WpLinuxDrmSyncobjTimelineV1;
598    #[cfg(feature = "protocol-pointer_constraints_unstable_v1")]
599    pub(super) use super::pointer_constraints_unstable_v1::zwp_confined_pointer_v1::ZwpConfinedPointerV1;
600    #[cfg(feature = "protocol-pointer_constraints_unstable_v1")]
601    pub(super) use super::pointer_constraints_unstable_v1::zwp_locked_pointer_v1::ZwpLockedPointerV1;
602    #[cfg(feature = "protocol-pointer_constraints_unstable_v1")]
603    pub(super) use super::pointer_constraints_unstable_v1::zwp_pointer_constraints_v1::ZwpPointerConstraintsV1;
604    #[cfg(feature = "protocol-pointer_constraints_unstable_v1")]
605    pub(super) use super::pointer_constraints_unstable_v1::zwp_pointer_constraints_v1::ZwpPointerConstraintsV1Error;
606    #[cfg(feature = "protocol-pointer_constraints_unstable_v1")]
607    pub(super) use super::pointer_constraints_unstable_v1::zwp_pointer_constraints_v1::ZwpPointerConstraintsV1Lifetime;
608    #[cfg(feature = "protocol-pointer_gestures_unstable_v1")]
609    pub(super) use super::pointer_gestures_unstable_v1::zwp_pointer_gesture_hold_v1::ZwpPointerGestureHoldV1;
610    #[cfg(feature = "protocol-pointer_gestures_unstable_v1")]
611    pub(super) use super::pointer_gestures_unstable_v1::zwp_pointer_gesture_pinch_v1::ZwpPointerGesturePinchV1;
612    #[cfg(feature = "protocol-pointer_gestures_unstable_v1")]
613    pub(super) use super::pointer_gestures_unstable_v1::zwp_pointer_gesture_swipe_v1::ZwpPointerGestureSwipeV1;
614    #[cfg(feature = "protocol-pointer_gestures_unstable_v1")]
615    pub(super) use super::pointer_gestures_unstable_v1::zwp_pointer_gestures_v1::ZwpPointerGesturesV1;
616    #[cfg(feature = "protocol-pointer_warp_v1")]
617    pub(super) use super::pointer_warp_v1::wp_pointer_warp_v1::WpPointerWarpV1;
618    #[cfg(feature = "protocol-presentation_time")]
619    pub(super) use super::presentation_time::wp_presentation::WpPresentation;
620    #[cfg(feature = "protocol-presentation_time")]
621    pub(super) use super::presentation_time::wp_presentation::WpPresentationError;
622    #[cfg(feature = "protocol-presentation_time")]
623    pub(super) use super::presentation_time::wp_presentation_feedback::WpPresentationFeedback;
624    #[cfg(feature = "protocol-presentation_time")]
625    pub(super) use super::presentation_time::wp_presentation_feedback::WpPresentationFeedbackKind;
626    #[cfg(feature = "protocol-relative_pointer_unstable_v1")]
627    pub(super) use super::relative_pointer_unstable_v1::zwp_relative_pointer_manager_v1::ZwpRelativePointerManagerV1;
628    #[cfg(feature = "protocol-relative_pointer_unstable_v1")]
629    pub(super) use super::relative_pointer_unstable_v1::zwp_relative_pointer_v1::ZwpRelativePointerV1;
630    #[cfg(feature = "protocol-security_context_v1")]
631    pub(super) use super::security_context_v1::wp_security_context_manager_v1::WpSecurityContextManagerV1;
632    #[cfg(feature = "protocol-security_context_v1")]
633    pub(super) use super::security_context_v1::wp_security_context_manager_v1::WpSecurityContextManagerV1Error;
634    #[cfg(feature = "protocol-security_context_v1")]
635    pub(super) use super::security_context_v1::wp_security_context_v1::WpSecurityContextV1;
636    #[cfg(feature = "protocol-security_context_v1")]
637    pub(super) use super::security_context_v1::wp_security_context_v1::WpSecurityContextV1Error;
638    #[cfg(feature = "protocol-single_pixel_buffer_v1")]
639    pub(super) use super::single_pixel_buffer_v1::wp_single_pixel_buffer_manager_v1::WpSinglePixelBufferManagerV1;
640    #[cfg(feature = "protocol-tablet_v2")]
641    pub(super) use super::tablet_v2::zwp_tablet_manager_v2::ZwpTabletManagerV2;
642    #[cfg(feature = "protocol-tablet_v2")]
643    pub(super) use super::tablet_v2::zwp_tablet_pad_dial_v2::ZwpTabletPadDialV2;
644    #[cfg(feature = "protocol-tablet_v2")]
645    pub(super) use super::tablet_v2::zwp_tablet_pad_group_v2::ZwpTabletPadGroupV2;
646    #[cfg(feature = "protocol-tablet_v2")]
647    pub(super) use super::tablet_v2::zwp_tablet_pad_ring_v2::ZwpTabletPadRingV2;
648    #[cfg(feature = "protocol-tablet_v2")]
649    pub(super) use super::tablet_v2::zwp_tablet_pad_ring_v2::ZwpTabletPadRingV2Source;
650    #[cfg(feature = "protocol-tablet_v2")]
651    pub(super) use super::tablet_v2::zwp_tablet_pad_strip_v2::ZwpTabletPadStripV2;
652    #[cfg(feature = "protocol-tablet_v2")]
653    pub(super) use super::tablet_v2::zwp_tablet_pad_strip_v2::ZwpTabletPadStripV2Source;
654    #[cfg(feature = "protocol-tablet_v2")]
655    pub(super) use super::tablet_v2::zwp_tablet_pad_v2::ZwpTabletPadV2;
656    #[cfg(feature = "protocol-tablet_v2")]
657    pub(super) use super::tablet_v2::zwp_tablet_pad_v2::ZwpTabletPadV2ButtonState;
658    #[cfg(feature = "protocol-tablet_v2")]
659    pub(super) use super::tablet_v2::zwp_tablet_seat_v2::ZwpTabletSeatV2;
660    #[cfg(feature = "protocol-tablet_v2")]
661    pub(super) use super::tablet_v2::zwp_tablet_tool_v2::ZwpTabletToolV2;
662    #[cfg(feature = "protocol-tablet_v2")]
663    pub(super) use super::tablet_v2::zwp_tablet_tool_v2::ZwpTabletToolV2Type;
664    #[cfg(feature = "protocol-tablet_v2")]
665    pub(super) use super::tablet_v2::zwp_tablet_tool_v2::ZwpTabletToolV2Capability;
666    #[cfg(feature = "protocol-tablet_v2")]
667    pub(super) use super::tablet_v2::zwp_tablet_tool_v2::ZwpTabletToolV2ButtonState;
668    #[cfg(feature = "protocol-tablet_v2")]
669    pub(super) use super::tablet_v2::zwp_tablet_tool_v2::ZwpTabletToolV2Error;
670    #[cfg(feature = "protocol-tablet_v2")]
671    pub(super) use super::tablet_v2::zwp_tablet_v2::ZwpTabletV2;
672    #[cfg(feature = "protocol-tablet_v2")]
673    pub(super) use super::tablet_v2::zwp_tablet_v2::ZwpTabletV2Bustype;
674    #[cfg(feature = "protocol-tearing_control_v1")]
675    pub(super) use super::tearing_control_v1::wp_tearing_control_manager_v1::WpTearingControlManagerV1;
676    #[cfg(feature = "protocol-tearing_control_v1")]
677    pub(super) use super::tearing_control_v1::wp_tearing_control_manager_v1::WpTearingControlManagerV1Error;
678    #[cfg(feature = "protocol-tearing_control_v1")]
679    pub(super) use super::tearing_control_v1::wp_tearing_control_v1::WpTearingControlV1;
680    #[cfg(feature = "protocol-tearing_control_v1")]
681    pub(super) use super::tearing_control_v1::wp_tearing_control_v1::WpTearingControlV1PresentationHint;
682    #[cfg(feature = "protocol-text_input_unstable_v1")]
683    pub(super) use super::text_input_unstable_v1::zwp_text_input_manager_v1::ZwpTextInputManagerV1;
684    #[cfg(feature = "protocol-text_input_unstable_v1")]
685    pub(super) use super::text_input_unstable_v1::zwp_text_input_v1::ZwpTextInputV1;
686    #[cfg(feature = "protocol-text_input_unstable_v1")]
687    pub(super) use super::text_input_unstable_v1::zwp_text_input_v1::ZwpTextInputV1ContentHint;
688    #[cfg(feature = "protocol-text_input_unstable_v1")]
689    pub(super) use super::text_input_unstable_v1::zwp_text_input_v1::ZwpTextInputV1ContentPurpose;
690    #[cfg(feature = "protocol-text_input_unstable_v1")]
691    pub(super) use super::text_input_unstable_v1::zwp_text_input_v1::ZwpTextInputV1PreeditStyle;
692    #[cfg(feature = "protocol-text_input_unstable_v1")]
693    pub(super) use super::text_input_unstable_v1::zwp_text_input_v1::ZwpTextInputV1TextDirection;
694    #[cfg(feature = "protocol-text_input_unstable_v3")]
695    pub(super) use super::text_input_unstable_v3::zwp_text_input_manager_v3::ZwpTextInputManagerV3;
696    #[cfg(feature = "protocol-text_input_unstable_v3")]
697    pub(super) use super::text_input_unstable_v3::zwp_text_input_v3::ZwpTextInputV3;
698    #[cfg(feature = "protocol-text_input_unstable_v3")]
699    pub(super) use super::text_input_unstable_v3::zwp_text_input_v3::ZwpTextInputV3ChangeCause;
700    #[cfg(feature = "protocol-text_input_unstable_v3")]
701    pub(super) use super::text_input_unstable_v3::zwp_text_input_v3::ZwpTextInputV3ContentHint;
702    #[cfg(feature = "protocol-text_input_unstable_v3")]
703    pub(super) use super::text_input_unstable_v3::zwp_text_input_v3::ZwpTextInputV3ContentPurpose;
704    #[cfg(feature = "protocol-viewporter")]
705    pub(super) use super::viewporter::wp_viewport::WpViewport;
706    #[cfg(feature = "protocol-viewporter")]
707    pub(super) use super::viewporter::wp_viewport::WpViewportError;
708    #[cfg(feature = "protocol-viewporter")]
709    pub(super) use super::viewporter::wp_viewporter::WpViewporter;
710    #[cfg(feature = "protocol-viewporter")]
711    pub(super) use super::viewporter::wp_viewporter::WpViewporterError;
712    #[cfg(feature = "protocol-wp_primary_selection_unstable_v1")]
713    pub(super) use super::wp_primary_selection_unstable_v1::zwp_primary_selection_device_manager_v1::ZwpPrimarySelectionDeviceManagerV1;
714    #[cfg(feature = "protocol-wp_primary_selection_unstable_v1")]
715    pub(super) use super::wp_primary_selection_unstable_v1::zwp_primary_selection_device_v1::ZwpPrimarySelectionDeviceV1;
716    #[cfg(feature = "protocol-wp_primary_selection_unstable_v1")]
717    pub(super) use super::wp_primary_selection_unstable_v1::zwp_primary_selection_offer_v1::ZwpPrimarySelectionOfferV1;
718    #[cfg(feature = "protocol-wp_primary_selection_unstable_v1")]
719    pub(super) use super::wp_primary_selection_unstable_v1::zwp_primary_selection_source_v1::ZwpPrimarySelectionSourceV1;
720    #[cfg(feature = "protocol-xdg_activation_v1")]
721    pub(super) use super::xdg_activation_v1::xdg_activation_token_v1::XdgActivationTokenV1;
722    #[cfg(feature = "protocol-xdg_activation_v1")]
723    pub(super) use super::xdg_activation_v1::xdg_activation_token_v1::XdgActivationTokenV1Error;
724    #[cfg(feature = "protocol-xdg_activation_v1")]
725    pub(super) use super::xdg_activation_v1::xdg_activation_v1::XdgActivationV1;
726    #[cfg(feature = "protocol-xdg_decoration_unstable_v1")]
727    pub(super) use super::xdg_decoration_unstable_v1::zxdg_decoration_manager_v1::ZxdgDecorationManagerV1;
728    #[cfg(feature = "protocol-xdg_decoration_unstable_v1")]
729    pub(super) use super::xdg_decoration_unstable_v1::zxdg_toplevel_decoration_v1::ZxdgToplevelDecorationV1;
730    #[cfg(feature = "protocol-xdg_decoration_unstable_v1")]
731    pub(super) use super::xdg_decoration_unstable_v1::zxdg_toplevel_decoration_v1::ZxdgToplevelDecorationV1Error;
732    #[cfg(feature = "protocol-xdg_decoration_unstable_v1")]
733    pub(super) use super::xdg_decoration_unstable_v1::zxdg_toplevel_decoration_v1::ZxdgToplevelDecorationV1Mode;
734    #[cfg(feature = "protocol-xdg_dialog_v1")]
735    pub(super) use super::xdg_dialog_v1::xdg_dialog_v1::XdgDialogV1;
736    #[cfg(feature = "protocol-xdg_dialog_v1")]
737    pub(super) use super::xdg_dialog_v1::xdg_wm_dialog_v1::XdgWmDialogV1;
738    #[cfg(feature = "protocol-xdg_dialog_v1")]
739    pub(super) use super::xdg_dialog_v1::xdg_wm_dialog_v1::XdgWmDialogV1Error;
740    #[cfg(feature = "protocol-xdg_foreign_unstable_v2")]
741    pub(super) use super::xdg_foreign_unstable_v2::zxdg_exported_v2::ZxdgExportedV2;
742    #[cfg(feature = "protocol-xdg_foreign_unstable_v2")]
743    pub(super) use super::xdg_foreign_unstable_v2::zxdg_exporter_v2::ZxdgExporterV2;
744    #[cfg(feature = "protocol-xdg_foreign_unstable_v2")]
745    pub(super) use super::xdg_foreign_unstable_v2::zxdg_exporter_v2::ZxdgExporterV2Error;
746    #[cfg(feature = "protocol-xdg_foreign_unstable_v2")]
747    pub(super) use super::xdg_foreign_unstable_v2::zxdg_imported_v2::ZxdgImportedV2;
748    #[cfg(feature = "protocol-xdg_foreign_unstable_v2")]
749    pub(super) use super::xdg_foreign_unstable_v2::zxdg_imported_v2::ZxdgImportedV2Error;
750    #[cfg(feature = "protocol-xdg_foreign_unstable_v2")]
751    pub(super) use super::xdg_foreign_unstable_v2::zxdg_importer_v2::ZxdgImporterV2;
752    #[cfg(feature = "protocol-xdg_output_unstable_v1")]
753    pub(super) use super::xdg_output_unstable_v1::zxdg_output_manager_v1::ZxdgOutputManagerV1;
754    #[cfg(feature = "protocol-xdg_output_unstable_v1")]
755    pub(super) use super::xdg_output_unstable_v1::zxdg_output_v1::ZxdgOutputV1;
756    #[cfg(feature = "protocol-xdg_session_management_v1")]
757    pub(super) use super::xdg_session_management_v1::xdg_session_manager_v1::XdgSessionManagerV1;
758    #[cfg(feature = "protocol-xdg_session_management_v1")]
759    pub(super) use super::xdg_session_management_v1::xdg_session_manager_v1::XdgSessionManagerV1Error;
760    #[cfg(feature = "protocol-xdg_session_management_v1")]
761    pub(super) use super::xdg_session_management_v1::xdg_session_manager_v1::XdgSessionManagerV1Reason;
762    #[cfg(feature = "protocol-xdg_session_management_v1")]
763    pub(super) use super::xdg_session_management_v1::xdg_session_v1::XdgSessionV1;
764    #[cfg(feature = "protocol-xdg_session_management_v1")]
765    pub(super) use super::xdg_session_management_v1::xdg_session_v1::XdgSessionV1Error;
766    #[cfg(feature = "protocol-xdg_session_management_v1")]
767    pub(super) use super::xdg_session_management_v1::xdg_toplevel_session_v1::XdgToplevelSessionV1;
768    #[cfg(feature = "protocol-xdg_shell")]
769    pub(super) use super::xdg_shell::xdg_popup::XdgPopup;
770    #[cfg(feature = "protocol-xdg_shell")]
771    pub(super) use super::xdg_shell::xdg_popup::XdgPopupError;
772    #[cfg(feature = "protocol-xdg_shell")]
773    pub(super) use super::xdg_shell::xdg_positioner::XdgPositioner;
774    #[cfg(feature = "protocol-xdg_shell")]
775    pub(super) use super::xdg_shell::xdg_positioner::XdgPositionerError;
776    #[cfg(feature = "protocol-xdg_shell")]
777    pub(super) use super::xdg_shell::xdg_positioner::XdgPositionerAnchor;
778    #[cfg(feature = "protocol-xdg_shell")]
779    pub(super) use super::xdg_shell::xdg_positioner::XdgPositionerGravity;
780    #[cfg(feature = "protocol-xdg_shell")]
781    pub(super) use super::xdg_shell::xdg_positioner::XdgPositionerConstraintAdjustment;
782    #[cfg(feature = "protocol-xdg_shell")]
783    pub(super) use super::xdg_shell::xdg_surface::XdgSurface;
784    #[cfg(feature = "protocol-xdg_shell")]
785    pub(super) use super::xdg_shell::xdg_surface::XdgSurfaceError;
786    #[cfg(feature = "protocol-xdg_shell")]
787    pub(super) use super::xdg_shell::xdg_toplevel::XdgToplevel;
788    #[cfg(feature = "protocol-xdg_shell")]
789    pub(super) use super::xdg_shell::xdg_toplevel::XdgToplevelError;
790    #[cfg(feature = "protocol-xdg_shell")]
791    pub(super) use super::xdg_shell::xdg_toplevel::XdgToplevelResizeEdge;
792    #[cfg(feature = "protocol-xdg_shell")]
793    pub(super) use super::xdg_shell::xdg_toplevel::XdgToplevelState;
794    #[cfg(feature = "protocol-xdg_shell")]
795    pub(super) use super::xdg_shell::xdg_toplevel::XdgToplevelWmCapabilities;
796    #[cfg(feature = "protocol-xdg_shell")]
797    pub(super) use super::xdg_shell::xdg_wm_base::XdgWmBase;
798    #[cfg(feature = "protocol-xdg_shell")]
799    pub(super) use super::xdg_shell::xdg_wm_base::XdgWmBaseError;
800    #[cfg(feature = "protocol-xdg_system_bell_v1")]
801    pub(super) use super::xdg_system_bell_v1::xdg_system_bell_v1::XdgSystemBellV1;
802    #[cfg(feature = "protocol-xdg_toplevel_drag_v1")]
803    pub(super) use super::xdg_toplevel_drag_v1::xdg_toplevel_drag_manager_v1::XdgToplevelDragManagerV1;
804    #[cfg(feature = "protocol-xdg_toplevel_drag_v1")]
805    pub(super) use super::xdg_toplevel_drag_v1::xdg_toplevel_drag_manager_v1::XdgToplevelDragManagerV1Error;
806    #[cfg(feature = "protocol-xdg_toplevel_drag_v1")]
807    pub(super) use super::xdg_toplevel_drag_v1::xdg_toplevel_drag_v1::XdgToplevelDragV1;
808    #[cfg(feature = "protocol-xdg_toplevel_drag_v1")]
809    pub(super) use super::xdg_toplevel_drag_v1::xdg_toplevel_drag_v1::XdgToplevelDragV1Error;
810    #[cfg(feature = "protocol-xdg_toplevel_icon_v1")]
811    pub(super) use super::xdg_toplevel_icon_v1::xdg_toplevel_icon_manager_v1::XdgToplevelIconManagerV1;
812    #[cfg(feature = "protocol-xdg_toplevel_icon_v1")]
813    pub(super) use super::xdg_toplevel_icon_v1::xdg_toplevel_icon_v1::XdgToplevelIconV1;
814    #[cfg(feature = "protocol-xdg_toplevel_icon_v1")]
815    pub(super) use super::xdg_toplevel_icon_v1::xdg_toplevel_icon_v1::XdgToplevelIconV1Error;
816    #[cfg(feature = "protocol-xdg_toplevel_tag_v1")]
817    pub(super) use super::xdg_toplevel_tag_v1::xdg_toplevel_tag_manager_v1::XdgToplevelTagManagerV1;
818    #[cfg(feature = "protocol-xwayland_keyboard_grab_unstable_v1")]
819    pub(super) use super::xwayland_keyboard_grab_unstable_v1::zwp_xwayland_keyboard_grab_manager_v1::ZwpXwaylandKeyboardGrabManagerV1;
820    #[cfg(feature = "protocol-xwayland_keyboard_grab_unstable_v1")]
821    pub(super) use super::xwayland_keyboard_grab_unstable_v1::zwp_xwayland_keyboard_grab_v1::ZwpXwaylandKeyboardGrabV1;
822    #[cfg(feature = "protocol-xwayland_shell_v1")]
823    pub(super) use super::xwayland_shell_v1::xwayland_shell_v1::XwaylandShellV1;
824    #[cfg(feature = "protocol-xwayland_shell_v1")]
825    pub(super) use super::xwayland_shell_v1::xwayland_shell_v1::XwaylandShellV1Error;
826    #[cfg(feature = "protocol-xwayland_shell_v1")]
827    pub(super) use super::xwayland_shell_v1::xwayland_surface_v1::XwaylandSurfaceV1;
828    #[cfg(feature = "protocol-xwayland_shell_v1")]
829    pub(super) use super::xwayland_shell_v1::xwayland_surface_v1::XwaylandSurfaceV1Error;
830    #[cfg(feature = "protocol-zwp_linux_explicit_synchronization_unstable_v1")]
831    pub(super) use super::zwp_linux_explicit_synchronization_unstable_v1::zwp_linux_buffer_release_v1::ZwpLinuxBufferReleaseV1;
832    #[cfg(feature = "protocol-zwp_linux_explicit_synchronization_unstable_v1")]
833    pub(super) use super::zwp_linux_explicit_synchronization_unstable_v1::zwp_linux_explicit_synchronization_v1::ZwpLinuxExplicitSynchronizationV1;
834    #[cfg(feature = "protocol-zwp_linux_explicit_synchronization_unstable_v1")]
835    pub(super) use super::zwp_linux_explicit_synchronization_unstable_v1::zwp_linux_explicit_synchronization_v1::ZwpLinuxExplicitSynchronizationV1Error;
836    #[cfg(feature = "protocol-zwp_linux_explicit_synchronization_unstable_v1")]
837    pub(super) use super::zwp_linux_explicit_synchronization_unstable_v1::zwp_linux_surface_synchronization_v1::ZwpLinuxSurfaceSynchronizationV1;
838    #[cfg(feature = "protocol-zwp_linux_explicit_synchronization_unstable_v1")]
839    pub(super) use super::zwp_linux_explicit_synchronization_unstable_v1::zwp_linux_surface_synchronization_v1::ZwpLinuxSurfaceSynchronizationV1Error;
840    #[cfg(feature = "protocol-wlr_data_control_unstable_v1")]
841    pub(super) use super::wlr_data_control_unstable_v1::zwlr_data_control_device_v1::ZwlrDataControlDeviceV1;
842    #[cfg(feature = "protocol-wlr_data_control_unstable_v1")]
843    pub(super) use super::wlr_data_control_unstable_v1::zwlr_data_control_device_v1::ZwlrDataControlDeviceV1Error;
844    #[cfg(feature = "protocol-wlr_data_control_unstable_v1")]
845    pub(super) use super::wlr_data_control_unstable_v1::zwlr_data_control_manager_v1::ZwlrDataControlManagerV1;
846    #[cfg(feature = "protocol-wlr_data_control_unstable_v1")]
847    pub(super) use super::wlr_data_control_unstable_v1::zwlr_data_control_offer_v1::ZwlrDataControlOfferV1;
848    #[cfg(feature = "protocol-wlr_data_control_unstable_v1")]
849    pub(super) use super::wlr_data_control_unstable_v1::zwlr_data_control_source_v1::ZwlrDataControlSourceV1;
850    #[cfg(feature = "protocol-wlr_data_control_unstable_v1")]
851    pub(super) use super::wlr_data_control_unstable_v1::zwlr_data_control_source_v1::ZwlrDataControlSourceV1Error;
852    #[cfg(feature = "protocol-wlr_export_dmabuf_unstable_v1")]
853    pub(super) use super::wlr_export_dmabuf_unstable_v1::zwlr_export_dmabuf_frame_v1::ZwlrExportDmabufFrameV1;
854    #[cfg(feature = "protocol-wlr_export_dmabuf_unstable_v1")]
855    pub(super) use super::wlr_export_dmabuf_unstable_v1::zwlr_export_dmabuf_frame_v1::ZwlrExportDmabufFrameV1Flags;
856    #[cfg(feature = "protocol-wlr_export_dmabuf_unstable_v1")]
857    pub(super) use super::wlr_export_dmabuf_unstable_v1::zwlr_export_dmabuf_frame_v1::ZwlrExportDmabufFrameV1CancelReason;
858    #[cfg(feature = "protocol-wlr_export_dmabuf_unstable_v1")]
859    pub(super) use super::wlr_export_dmabuf_unstable_v1::zwlr_export_dmabuf_manager_v1::ZwlrExportDmabufManagerV1;
860    #[cfg(feature = "protocol-wlr_foreign_toplevel_management_unstable_v1")]
861    pub(super) use super::wlr_foreign_toplevel_management_unstable_v1::zwlr_foreign_toplevel_handle_v1::ZwlrForeignToplevelHandleV1;
862    #[cfg(feature = "protocol-wlr_foreign_toplevel_management_unstable_v1")]
863    pub(super) use super::wlr_foreign_toplevel_management_unstable_v1::zwlr_foreign_toplevel_handle_v1::ZwlrForeignToplevelHandleV1State;
864    #[cfg(feature = "protocol-wlr_foreign_toplevel_management_unstable_v1")]
865    pub(super) use super::wlr_foreign_toplevel_management_unstable_v1::zwlr_foreign_toplevel_handle_v1::ZwlrForeignToplevelHandleV1Error;
866    #[cfg(feature = "protocol-wlr_foreign_toplevel_management_unstable_v1")]
867    pub(super) use super::wlr_foreign_toplevel_management_unstable_v1::zwlr_foreign_toplevel_manager_v1::ZwlrForeignToplevelManagerV1;
868    #[cfg(feature = "protocol-wlr_gamma_control_unstable_v1")]
869    pub(super) use super::wlr_gamma_control_unstable_v1::zwlr_gamma_control_manager_v1::ZwlrGammaControlManagerV1;
870    #[cfg(feature = "protocol-wlr_gamma_control_unstable_v1")]
871    pub(super) use super::wlr_gamma_control_unstable_v1::zwlr_gamma_control_v1::ZwlrGammaControlV1;
872    #[cfg(feature = "protocol-wlr_gamma_control_unstable_v1")]
873    pub(super) use super::wlr_gamma_control_unstable_v1::zwlr_gamma_control_v1::ZwlrGammaControlV1Error;
874    #[cfg(feature = "protocol-wlr_input_inhibit_unstable_v1")]
875    pub(super) use super::wlr_input_inhibit_unstable_v1::zwlr_input_inhibit_manager_v1::ZwlrInputInhibitManagerV1;
876    #[cfg(feature = "protocol-wlr_input_inhibit_unstable_v1")]
877    pub(super) use super::wlr_input_inhibit_unstable_v1::zwlr_input_inhibit_manager_v1::ZwlrInputInhibitManagerV1Error;
878    #[cfg(feature = "protocol-wlr_input_inhibit_unstable_v1")]
879    pub(super) use super::wlr_input_inhibit_unstable_v1::zwlr_input_inhibitor_v1::ZwlrInputInhibitorV1;
880    #[cfg(feature = "protocol-wlr_layer_shell_unstable_v1")]
881    pub(super) use super::wlr_layer_shell_unstable_v1::zwlr_layer_shell_v1::ZwlrLayerShellV1;
882    #[cfg(feature = "protocol-wlr_layer_shell_unstable_v1")]
883    pub(super) use super::wlr_layer_shell_unstable_v1::zwlr_layer_shell_v1::ZwlrLayerShellV1Error;
884    #[cfg(feature = "protocol-wlr_layer_shell_unstable_v1")]
885    pub(super) use super::wlr_layer_shell_unstable_v1::zwlr_layer_shell_v1::ZwlrLayerShellV1Layer;
886    #[cfg(feature = "protocol-wlr_layer_shell_unstable_v1")]
887    pub(super) use super::wlr_layer_shell_unstable_v1::zwlr_layer_surface_v1::ZwlrLayerSurfaceV1;
888    #[cfg(feature = "protocol-wlr_layer_shell_unstable_v1")]
889    pub(super) use super::wlr_layer_shell_unstable_v1::zwlr_layer_surface_v1::ZwlrLayerSurfaceV1KeyboardInteractivity;
890    #[cfg(feature = "protocol-wlr_layer_shell_unstable_v1")]
891    pub(super) use super::wlr_layer_shell_unstable_v1::zwlr_layer_surface_v1::ZwlrLayerSurfaceV1Error;
892    #[cfg(feature = "protocol-wlr_layer_shell_unstable_v1")]
893    pub(super) use super::wlr_layer_shell_unstable_v1::zwlr_layer_surface_v1::ZwlrLayerSurfaceV1Anchor;
894    #[cfg(feature = "protocol-wlr_output_management_unstable_v1")]
895    pub(super) use super::wlr_output_management_unstable_v1::zwlr_output_configuration_head_v1::ZwlrOutputConfigurationHeadV1;
896    #[cfg(feature = "protocol-wlr_output_management_unstable_v1")]
897    pub(super) use super::wlr_output_management_unstable_v1::zwlr_output_configuration_head_v1::ZwlrOutputConfigurationHeadV1Error;
898    #[cfg(feature = "protocol-wlr_output_management_unstable_v1")]
899    pub(super) use super::wlr_output_management_unstable_v1::zwlr_output_configuration_v1::ZwlrOutputConfigurationV1;
900    #[cfg(feature = "protocol-wlr_output_management_unstable_v1")]
901    pub(super) use super::wlr_output_management_unstable_v1::zwlr_output_configuration_v1::ZwlrOutputConfigurationV1Error;
902    #[cfg(feature = "protocol-wlr_output_management_unstable_v1")]
903    pub(super) use super::wlr_output_management_unstable_v1::zwlr_output_head_v1::ZwlrOutputHeadV1;
904    #[cfg(feature = "protocol-wlr_output_management_unstable_v1")]
905    pub(super) use super::wlr_output_management_unstable_v1::zwlr_output_head_v1::ZwlrOutputHeadV1AdaptiveSyncState;
906    #[cfg(feature = "protocol-wlr_output_management_unstable_v1")]
907    pub(super) use super::wlr_output_management_unstable_v1::zwlr_output_manager_v1::ZwlrOutputManagerV1;
908    #[cfg(feature = "protocol-wlr_output_management_unstable_v1")]
909    pub(super) use super::wlr_output_management_unstable_v1::zwlr_output_mode_v1::ZwlrOutputModeV1;
910    #[cfg(feature = "protocol-wlr_output_power_management_unstable_v1")]
911    pub(super) use super::wlr_output_power_management_unstable_v1::zwlr_output_power_manager_v1::ZwlrOutputPowerManagerV1;
912    #[cfg(feature = "protocol-wlr_output_power_management_unstable_v1")]
913    pub(super) use super::wlr_output_power_management_unstable_v1::zwlr_output_power_v1::ZwlrOutputPowerV1;
914    #[cfg(feature = "protocol-wlr_output_power_management_unstable_v1")]
915    pub(super) use super::wlr_output_power_management_unstable_v1::zwlr_output_power_v1::ZwlrOutputPowerV1Mode;
916    #[cfg(feature = "protocol-wlr_output_power_management_unstable_v1")]
917    pub(super) use super::wlr_output_power_management_unstable_v1::zwlr_output_power_v1::ZwlrOutputPowerV1Error;
918    #[cfg(feature = "protocol-wlr_screencopy_unstable_v1")]
919    pub(super) use super::wlr_screencopy_unstable_v1::zwlr_screencopy_frame_v1::ZwlrScreencopyFrameV1;
920    #[cfg(feature = "protocol-wlr_screencopy_unstable_v1")]
921    pub(super) use super::wlr_screencopy_unstable_v1::zwlr_screencopy_frame_v1::ZwlrScreencopyFrameV1Error;
922    #[cfg(feature = "protocol-wlr_screencopy_unstable_v1")]
923    pub(super) use super::wlr_screencopy_unstable_v1::zwlr_screencopy_frame_v1::ZwlrScreencopyFrameV1Flags;
924    #[cfg(feature = "protocol-wlr_screencopy_unstable_v1")]
925    pub(super) use super::wlr_screencopy_unstable_v1::zwlr_screencopy_manager_v1::ZwlrScreencopyManagerV1;
926    #[cfg(feature = "protocol-wlr_virtual_pointer_unstable_v1")]
927    pub(super) use super::wlr_virtual_pointer_unstable_v1::zwlr_virtual_pointer_manager_v1::ZwlrVirtualPointerManagerV1;
928    #[cfg(feature = "protocol-wlr_virtual_pointer_unstable_v1")]
929    pub(super) use super::wlr_virtual_pointer_unstable_v1::zwlr_virtual_pointer_v1::ZwlrVirtualPointerV1;
930    #[cfg(feature = "protocol-wlr_virtual_pointer_unstable_v1")]
931    pub(super) use super::wlr_virtual_pointer_unstable_v1::zwlr_virtual_pointer_v1::ZwlrVirtualPointerV1Error;
932    #[cfg(feature = "protocol-wlproxy_sync_v1")]
933    pub(super) use super::wlproxy_sync_v1::wlproxy_sync_v1::WlproxySyncV1;
934    #[cfg(test)]
935    pub(super) use super::wlproxy_test::wlproxy_test::WlproxyTest;
936    #[cfg(test)]
937    pub(super) use super::wlproxy_test::wlproxy_test_array_echo::WlproxyTestArrayEcho;
938    #[cfg(test)]
939    pub(super) use super::wlproxy_test::wlproxy_test_dummy::WlproxyTestDummy;
940    #[cfg(test)]
941    pub(super) use super::wlproxy_test::wlproxy_test_fd_echo::WlproxyTestFdEcho;
942    #[cfg(test)]
943    pub(super) use super::wlproxy_test::wlproxy_test_hops::WlproxyTestHops;
944    #[cfg(test)]
945    pub(super) use super::wlproxy_test::wlproxy_test_non_forward::WlproxyTestNonForward;
946    #[cfg(test)]
947    pub(super) use super::wlproxy_test::wlproxy_test_object_echo::WlproxyTestObjectEcho;
948    #[cfg(test)]
949    pub(super) use super::wlproxy_test::wlproxy_test_server_sent::WlproxyTestServerSent;
950    #[cfg(feature = "protocol-river_input_management_v1")]
951    pub(super) use super::river_input_management_v1::river_input_device_v1::RiverInputDeviceV1;
952    #[cfg(feature = "protocol-river_input_management_v1")]
953    pub(super) use super::river_input_management_v1::river_input_device_v1::RiverInputDeviceV1Error;
954    #[cfg(feature = "protocol-river_input_management_v1")]
955    pub(super) use super::river_input_management_v1::river_input_device_v1::RiverInputDeviceV1Type;
956    #[cfg(feature = "protocol-river_input_management_v1")]
957    pub(super) use super::river_input_management_v1::river_input_manager_v1::RiverInputManagerV1;
958    #[cfg(feature = "protocol-river_input_management_v1")]
959    pub(super) use super::river_input_management_v1::river_input_manager_v1::RiverInputManagerV1Error;
960    #[cfg(feature = "protocol-river_layer_shell_v1")]
961    pub(super) use super::river_layer_shell_v1::river_layer_shell_output_v1::RiverLayerShellOutputV1;
962    #[cfg(feature = "protocol-river_layer_shell_v1")]
963    pub(super) use super::river_layer_shell_v1::river_layer_shell_seat_v1::RiverLayerShellSeatV1;
964    #[cfg(feature = "protocol-river_layer_shell_v1")]
965    pub(super) use super::river_layer_shell_v1::river_layer_shell_v1::RiverLayerShellV1;
966    #[cfg(feature = "protocol-river_layer_shell_v1")]
967    pub(super) use super::river_layer_shell_v1::river_layer_shell_v1::RiverLayerShellV1Error;
968    #[cfg(feature = "protocol-river_libinput_config_v1")]
969    pub(super) use super::river_libinput_config_v1::river_libinput_accel_config_v1::RiverLibinputAccelConfigV1;
970    #[cfg(feature = "protocol-river_libinput_config_v1")]
971    pub(super) use super::river_libinput_config_v1::river_libinput_accel_config_v1::RiverLibinputAccelConfigV1Error;
972    #[cfg(feature = "protocol-river_libinput_config_v1")]
973    pub(super) use super::river_libinput_config_v1::river_libinput_accel_config_v1::RiverLibinputAccelConfigV1AccelType;
974    #[cfg(feature = "protocol-river_libinput_config_v1")]
975    pub(super) use super::river_libinput_config_v1::river_libinput_config_v1::RiverLibinputConfigV1;
976    #[cfg(feature = "protocol-river_libinput_config_v1")]
977    pub(super) use super::river_libinput_config_v1::river_libinput_config_v1::RiverLibinputConfigV1Error;
978    #[cfg(feature = "protocol-river_libinput_config_v1")]
979    pub(super) use super::river_libinput_config_v1::river_libinput_device_v1::RiverLibinputDeviceV1;
980    #[cfg(feature = "protocol-river_libinput_config_v1")]
981    pub(super) use super::river_libinput_config_v1::river_libinput_device_v1::RiverLibinputDeviceV1Error;
982    #[cfg(feature = "protocol-river_libinput_config_v1")]
983    pub(super) use super::river_libinput_config_v1::river_libinput_device_v1::RiverLibinputDeviceV1SendEventsModes;
984    #[cfg(feature = "protocol-river_libinput_config_v1")]
985    pub(super) use super::river_libinput_config_v1::river_libinput_device_v1::RiverLibinputDeviceV1TapState;
986    #[cfg(feature = "protocol-river_libinput_config_v1")]
987    pub(super) use super::river_libinput_config_v1::river_libinput_device_v1::RiverLibinputDeviceV1TapButtonMap;
988    #[cfg(feature = "protocol-river_libinput_config_v1")]
989    pub(super) use super::river_libinput_config_v1::river_libinput_device_v1::RiverLibinputDeviceV1DragState;
990    #[cfg(feature = "protocol-river_libinput_config_v1")]
991    pub(super) use super::river_libinput_config_v1::river_libinput_device_v1::RiverLibinputDeviceV1DragLockState;
992    #[cfg(feature = "protocol-river_libinput_config_v1")]
993    pub(super) use super::river_libinput_config_v1::river_libinput_device_v1::RiverLibinputDeviceV1ThreeFingerDragState;
994    #[cfg(feature = "protocol-river_libinput_config_v1")]
995    pub(super) use super::river_libinput_config_v1::river_libinput_device_v1::RiverLibinputDeviceV1AccelProfile;
996    #[cfg(feature = "protocol-river_libinput_config_v1")]
997    pub(super) use super::river_libinput_config_v1::river_libinput_device_v1::RiverLibinputDeviceV1AccelProfiles;
998    #[cfg(feature = "protocol-river_libinput_config_v1")]
999    pub(super) use super::river_libinput_config_v1::river_libinput_device_v1::RiverLibinputDeviceV1NaturalScrollState;
1000    #[cfg(feature = "protocol-river_libinput_config_v1")]
1001    pub(super) use super::river_libinput_config_v1::river_libinput_device_v1::RiverLibinputDeviceV1LeftHandedState;
1002    #[cfg(feature = "protocol-river_libinput_config_v1")]
1003    pub(super) use super::river_libinput_config_v1::river_libinput_device_v1::RiverLibinputDeviceV1ClickMethod;
1004    #[cfg(feature = "protocol-river_libinput_config_v1")]
1005    pub(super) use super::river_libinput_config_v1::river_libinput_device_v1::RiverLibinputDeviceV1ClickMethods;
1006    #[cfg(feature = "protocol-river_libinput_config_v1")]
1007    pub(super) use super::river_libinput_config_v1::river_libinput_device_v1::RiverLibinputDeviceV1ClickfingerButtonMap;
1008    #[cfg(feature = "protocol-river_libinput_config_v1")]
1009    pub(super) use super::river_libinput_config_v1::river_libinput_device_v1::RiverLibinputDeviceV1MiddleEmulationState;
1010    #[cfg(feature = "protocol-river_libinput_config_v1")]
1011    pub(super) use super::river_libinput_config_v1::river_libinput_device_v1::RiverLibinputDeviceV1ScrollMethod;
1012    #[cfg(feature = "protocol-river_libinput_config_v1")]
1013    pub(super) use super::river_libinput_config_v1::river_libinput_device_v1::RiverLibinputDeviceV1ScrollMethods;
1014    #[cfg(feature = "protocol-river_libinput_config_v1")]
1015    pub(super) use super::river_libinput_config_v1::river_libinput_device_v1::RiverLibinputDeviceV1ScrollButtonLockState;
1016    #[cfg(feature = "protocol-river_libinput_config_v1")]
1017    pub(super) use super::river_libinput_config_v1::river_libinput_device_v1::RiverLibinputDeviceV1DwtState;
1018    #[cfg(feature = "protocol-river_libinput_config_v1")]
1019    pub(super) use super::river_libinput_config_v1::river_libinput_device_v1::RiverLibinputDeviceV1DwtpState;
1020    #[cfg(feature = "protocol-river_libinput_config_v1")]
1021    pub(super) use super::river_libinput_config_v1::river_libinput_result_v1::RiverLibinputResultV1;
1022    #[cfg(feature = "protocol-river_window_management_v1")]
1023    pub(super) use super::river_window_management_v1::river_decoration_v1::RiverDecorationV1;
1024    #[cfg(feature = "protocol-river_window_management_v1")]
1025    pub(super) use super::river_window_management_v1::river_decoration_v1::RiverDecorationV1Error;
1026    #[cfg(feature = "protocol-river_window_management_v1")]
1027    pub(super) use super::river_window_management_v1::river_node_v1::RiverNodeV1;
1028    #[cfg(feature = "protocol-river_window_management_v1")]
1029    pub(super) use super::river_window_management_v1::river_output_v1::RiverOutputV1;
1030    #[cfg(feature = "protocol-river_window_management_v1")]
1031    pub(super) use super::river_window_management_v1::river_output_v1::RiverOutputV1Error;
1032    #[cfg(feature = "protocol-river_window_management_v1")]
1033    pub(super) use super::river_window_management_v1::river_output_v1::RiverOutputV1PresentationMode;
1034    #[cfg(feature = "protocol-river_window_management_v1")]
1035    pub(super) use super::river_window_management_v1::river_pointer_binding_v1::RiverPointerBindingV1;
1036    #[cfg(feature = "protocol-river_window_management_v1")]
1037    pub(super) use super::river_window_management_v1::river_seat_v1::RiverSeatV1;
1038    #[cfg(feature = "protocol-river_window_management_v1")]
1039    pub(super) use super::river_window_management_v1::river_seat_v1::RiverSeatV1Modifiers;
1040    #[cfg(feature = "protocol-river_window_management_v1")]
1041    pub(super) use super::river_window_management_v1::river_shell_surface_v1::RiverShellSurfaceV1;
1042    #[cfg(feature = "protocol-river_window_management_v1")]
1043    pub(super) use super::river_window_management_v1::river_shell_surface_v1::RiverShellSurfaceV1Error;
1044    #[cfg(feature = "protocol-river_window_management_v1")]
1045    pub(super) use super::river_window_management_v1::river_window_manager_v1::RiverWindowManagerV1;
1046    #[cfg(feature = "protocol-river_window_management_v1")]
1047    pub(super) use super::river_window_management_v1::river_window_manager_v1::RiverWindowManagerV1Error;
1048    #[cfg(feature = "protocol-river_window_management_v1")]
1049    pub(super) use super::river_window_management_v1::river_window_v1::RiverWindowV1;
1050    #[cfg(feature = "protocol-river_window_management_v1")]
1051    pub(super) use super::river_window_management_v1::river_window_v1::RiverWindowV1Error;
1052    #[cfg(feature = "protocol-river_window_management_v1")]
1053    pub(super) use super::river_window_management_v1::river_window_v1::RiverWindowV1DecorationHint;
1054    #[cfg(feature = "protocol-river_window_management_v1")]
1055    pub(super) use super::river_window_management_v1::river_window_v1::RiverWindowV1Edges;
1056    #[cfg(feature = "protocol-river_window_management_v1")]
1057    pub(super) use super::river_window_management_v1::river_window_v1::RiverWindowV1Capabilities;
1058    #[cfg(feature = "protocol-river_xkb_bindings_v1")]
1059    pub(super) use super::river_xkb_bindings_v1::river_xkb_binding_v1::RiverXkbBindingV1;
1060    #[cfg(feature = "protocol-river_xkb_bindings_v1")]
1061    pub(super) use super::river_xkb_bindings_v1::river_xkb_bindings_seat_v1::RiverXkbBindingsSeatV1;
1062    #[cfg(feature = "protocol-river_xkb_bindings_v1")]
1063    pub(super) use super::river_xkb_bindings_v1::river_xkb_bindings_v1::RiverXkbBindingsV1;
1064    #[cfg(feature = "protocol-river_xkb_bindings_v1")]
1065    pub(super) use super::river_xkb_bindings_v1::river_xkb_bindings_v1::RiverXkbBindingsV1Error;
1066    #[cfg(feature = "protocol-river_xkb_config_v1")]
1067    pub(super) use super::river_xkb_config_v1::river_xkb_config_v1::RiverXkbConfigV1;
1068    #[cfg(feature = "protocol-river_xkb_config_v1")]
1069    pub(super) use super::river_xkb_config_v1::river_xkb_config_v1::RiverXkbConfigV1Error;
1070    #[cfg(feature = "protocol-river_xkb_config_v1")]
1071    pub(super) use super::river_xkb_config_v1::river_xkb_config_v1::RiverXkbConfigV1KeymapFormat;
1072    #[cfg(feature = "protocol-river_xkb_config_v1")]
1073    pub(super) use super::river_xkb_config_v1::river_xkb_keyboard_v1::RiverXkbKeyboardV1;
1074    #[cfg(feature = "protocol-river_xkb_config_v1")]
1075    pub(super) use super::river_xkb_config_v1::river_xkb_keyboard_v1::RiverXkbKeyboardV1Error;
1076    #[cfg(feature = "protocol-river_xkb_config_v1")]
1077    pub(super) use super::river_xkb_config_v1::river_xkb_keymap_v1::RiverXkbKeymapV1;
1078    #[cfg(feature = "protocol-ivi_application")]
1079    pub(super) use super::ivi_application::ivi_application::IviApplication;
1080    #[cfg(feature = "protocol-ivi_application")]
1081    pub(super) use super::ivi_application::ivi_application::IviApplicationError;
1082    #[cfg(feature = "protocol-ivi_application")]
1083    pub(super) use super::ivi_application::ivi_surface::IviSurface;
1084    #[cfg(feature = "protocol-ivi_hmi_controller")]
1085    pub(super) use super::ivi_hmi_controller::ivi_hmi_controller::IviHmiController;
1086    #[cfg(feature = "protocol-ivi_hmi_controller")]
1087    pub(super) use super::ivi_hmi_controller::ivi_hmi_controller::IviHmiControllerLayoutMode;
1088    #[cfg(feature = "protocol-ivi_hmi_controller")]
1089    pub(super) use super::ivi_hmi_controller::ivi_hmi_controller::IviHmiControllerHome;
1090    #[cfg(feature = "protocol-weston_content_protection")]
1091    pub(super) use super::weston_content_protection::weston_content_protection::WestonContentProtection;
1092    #[cfg(feature = "protocol-weston_content_protection")]
1093    pub(super) use super::weston_content_protection::weston_content_protection::WestonContentProtectionError;
1094    #[cfg(feature = "protocol-weston_content_protection")]
1095    pub(super) use super::weston_content_protection::weston_protected_surface::WestonProtectedSurface;
1096    #[cfg(feature = "protocol-weston_content_protection")]
1097    pub(super) use super::weston_content_protection::weston_protected_surface::WestonProtectedSurfaceError;
1098    #[cfg(feature = "protocol-weston_content_protection")]
1099    pub(super) use super::weston_content_protection::weston_protected_surface::WestonProtectedSurfaceType;
1100    #[cfg(feature = "protocol-weston_debug")]
1101    pub(super) use super::weston_debug::weston_debug_stream_v1::WestonDebugStreamV1;
1102    #[cfg(feature = "protocol-weston_debug")]
1103    pub(super) use super::weston_debug::weston_debug_v1::WestonDebugV1;
1104    #[cfg(feature = "protocol-weston_desktop")]
1105    pub(super) use super::weston_desktop::weston_desktop_shell::WestonDesktopShell;
1106    #[cfg(feature = "protocol-weston_desktop")]
1107    pub(super) use super::weston_desktop::weston_desktop_shell::WestonDesktopShellCursor;
1108    #[cfg(feature = "protocol-weston_desktop")]
1109    pub(super) use super::weston_desktop::weston_desktop_shell::WestonDesktopShellPanelPosition;
1110    #[cfg(feature = "protocol-weston_desktop")]
1111    pub(super) use super::weston_desktop::weston_desktop_shell::WestonDesktopShellError;
1112    #[cfg(feature = "protocol-weston_desktop")]
1113    pub(super) use super::weston_desktop::weston_screensaver::WestonScreensaver;
1114    #[cfg(feature = "protocol-weston_direct_display")]
1115    pub(super) use super::weston_direct_display::weston_direct_display_v1::WestonDirectDisplayV1;
1116    #[cfg(feature = "protocol-weston_output_capture")]
1117    pub(super) use super::weston_output_capture::weston_capture_source_v1::WestonCaptureSourceV1;
1118    #[cfg(feature = "protocol-weston_output_capture")]
1119    pub(super) use super::weston_output_capture::weston_capture_source_v1::WestonCaptureSourceV1Error;
1120    #[cfg(feature = "protocol-weston_output_capture")]
1121    pub(super) use super::weston_output_capture::weston_capture_v1::WestonCaptureV1;
1122    #[cfg(feature = "protocol-weston_output_capture")]
1123    pub(super) use super::weston_output_capture::weston_capture_v1::WestonCaptureV1Error;
1124    #[cfg(feature = "protocol-weston_output_capture")]
1125    pub(super) use super::weston_output_capture::weston_capture_v1::WestonCaptureV1Source;
1126    #[cfg(feature = "protocol-weston_test")]
1127    pub(super) use super::weston_test::weston_test::WestonTest;
1128    #[cfg(feature = "protocol-weston_test")]
1129    pub(super) use super::weston_test::weston_test::WestonTestError;
1130    #[cfg(feature = "protocol-weston_test")]
1131    pub(super) use super::weston_test::weston_test::WestonTestBreakpoint;
1132    #[cfg(feature = "protocol-weston_test")]
1133    pub(super) use super::weston_test::weston_test_runner::WestonTestRunner;
1134    #[cfg(feature = "protocol-weston_test")]
1135    pub(super) use super::weston_test::weston_test_runner::WestonTestRunnerError;
1136    #[cfg(feature = "protocol-weston_touch_calibration")]
1137    pub(super) use super::weston_touch_calibration::weston_touch_calibration::WestonTouchCalibration;
1138    #[cfg(feature = "protocol-weston_touch_calibration")]
1139    pub(super) use super::weston_touch_calibration::weston_touch_calibration::WestonTouchCalibrationError;
1140    #[cfg(feature = "protocol-weston_touch_calibration")]
1141    pub(super) use super::weston_touch_calibration::weston_touch_calibrator::WestonTouchCalibrator;
1142    #[cfg(feature = "protocol-weston_touch_calibration")]
1143    pub(super) use super::weston_touch_calibration::weston_touch_calibrator::WestonTouchCalibratorError;
1144    #[cfg(feature = "protocol-weston_touch_calibration")]
1145    pub(super) use super::weston_touch_calibration::weston_touch_coordinate::WestonTouchCoordinate;
1146    #[cfg(feature = "protocol-cosmic_a11y_v1")]
1147    pub(super) use super::cosmic_a11y_v1::cosmic_a11y_manager_v1::CosmicA11yManagerV1;
1148    #[cfg(feature = "protocol-cosmic_a11y_v1")]
1149    pub(super) use super::cosmic_a11y_v1::cosmic_a11y_manager_v1::CosmicA11yManagerV1ActiveState;
1150    #[cfg(feature = "protocol-cosmic_a11y_v1")]
1151    pub(super) use super::cosmic_a11y_v1::cosmic_a11y_manager_v1::CosmicA11yManagerV1Filter;
1152    #[cfg(feature = "protocol-cosmic_a11y_v1")]
1153    pub(super) use super::cosmic_a11y_v1::cosmic_a11y_manager_v1::CosmicA11yManagerV1Error;
1154    #[cfg(feature = "protocol-cosmic_corner_radius_v1")]
1155    pub(super) use super::cosmic_corner_radius_v1::cosmic_corner_radius_manager_v1::CosmicCornerRadiusManagerV1;
1156    #[cfg(feature = "protocol-cosmic_corner_radius_v1")]
1157    pub(super) use super::cosmic_corner_radius_v1::cosmic_corner_radius_manager_v1::CosmicCornerRadiusManagerV1Error;
1158    #[cfg(feature = "protocol-cosmic_corner_radius_v1")]
1159    pub(super) use super::cosmic_corner_radius_v1::cosmic_corner_radius_toplevel_v1::CosmicCornerRadiusToplevelV1;
1160    #[cfg(feature = "protocol-cosmic_corner_radius_v1")]
1161    pub(super) use super::cosmic_corner_radius_v1::cosmic_corner_radius_toplevel_v1::CosmicCornerRadiusToplevelV1Error;
1162    #[cfg(feature = "protocol-cosmic_image_source_unstable_v1")]
1163    pub(super) use super::cosmic_image_source_unstable_v1::zcosmic_workspace_image_capture_source_manager_v1::ZcosmicWorkspaceImageCaptureSourceManagerV1;
1164    #[cfg(feature = "protocol-cosmic_output_management_unstable_v1")]
1165    pub(super) use super::cosmic_output_management_unstable_v1::zcosmic_output_configuration_head_v1::ZcosmicOutputConfigurationHeadV1;
1166    #[cfg(feature = "protocol-cosmic_output_management_unstable_v1")]
1167    pub(super) use super::cosmic_output_management_unstable_v1::zcosmic_output_configuration_v1::ZcosmicOutputConfigurationV1;
1168    #[cfg(feature = "protocol-cosmic_output_management_unstable_v1")]
1169    pub(super) use super::cosmic_output_management_unstable_v1::zcosmic_output_configuration_v1::ZcosmicOutputConfigurationV1Error;
1170    #[cfg(feature = "protocol-cosmic_output_management_unstable_v1")]
1171    pub(super) use super::cosmic_output_management_unstable_v1::zcosmic_output_head_v1::ZcosmicOutputHeadV1;
1172    #[cfg(feature = "protocol-cosmic_output_management_unstable_v1")]
1173    pub(super) use super::cosmic_output_management_unstable_v1::zcosmic_output_head_v1::ZcosmicOutputHeadV1AdaptiveSyncAvailability;
1174    #[cfg(feature = "protocol-cosmic_output_management_unstable_v1")]
1175    pub(super) use super::cosmic_output_management_unstable_v1::zcosmic_output_head_v1::ZcosmicOutputHeadV1AdaptiveSyncStateExt;
1176    #[cfg(feature = "protocol-cosmic_output_management_unstable_v1")]
1177    pub(super) use super::cosmic_output_management_unstable_v1::zcosmic_output_manager_v1::ZcosmicOutputManagerV1;
1178    #[cfg(feature = "protocol-cosmic_output_management_unstable_v1")]
1179    pub(super) use super::cosmic_output_management_unstable_v1::zcosmic_output_manager_v1::ZcosmicOutputManagerV1Error;
1180    #[cfg(feature = "protocol-cosmic_overlap_notify_unstable_v1")]
1181    pub(super) use super::cosmic_overlap_notify_unstable_v1::zcosmic_overlap_notification_v1::ZcosmicOverlapNotificationV1;
1182    #[cfg(feature = "protocol-cosmic_overlap_notify_unstable_v1")]
1183    pub(super) use super::cosmic_overlap_notify_unstable_v1::zcosmic_overlap_notify_v1::ZcosmicOverlapNotifyV1;
1184    #[cfg(feature = "protocol-cosmic_workspace_unstable_v2")]
1185    pub(super) use super::cosmic_workspace_unstable_v2::zcosmic_workspace_handle_v2::ZcosmicWorkspaceHandleV2;
1186    #[cfg(feature = "protocol-cosmic_workspace_unstable_v2")]
1187    pub(super) use super::cosmic_workspace_unstable_v2::zcosmic_workspace_handle_v2::ZcosmicWorkspaceHandleV2WorkspaceCapabilities;
1188    #[cfg(feature = "protocol-cosmic_workspace_unstable_v2")]
1189    pub(super) use super::cosmic_workspace_unstable_v2::zcosmic_workspace_handle_v2::ZcosmicWorkspaceHandleV2TilingState;
1190    #[cfg(feature = "protocol-cosmic_workspace_unstable_v2")]
1191    pub(super) use super::cosmic_workspace_unstable_v2::zcosmic_workspace_handle_v2::ZcosmicWorkspaceHandleV2State;
1192    #[cfg(feature = "protocol-cosmic_workspace_unstable_v2")]
1193    pub(super) use super::cosmic_workspace_unstable_v2::zcosmic_workspace_manager_v2::ZcosmicWorkspaceManagerV2;
1194    #[cfg(feature = "protocol-cosmic_workspace_unstable_v2")]
1195    pub(super) use super::cosmic_workspace_unstable_v2::zcosmic_workspace_manager_v2::ZcosmicWorkspaceManagerV2Error;
1196
1197    use crate::protocol_helpers::prelude::*;
1198
1199    pub(super) fn create_object_for_interface(state: &Rc<State>, interface: &str, version: u32) -> Result<Rc<dyn Object>, ObjectError> {
1200        ObjectInterface::from_str(interface)
1201            .ok_or(ObjectError(ObjectErrorKind::UnsupportedInterface(interface.to_string())))
1202            .and_then(|i| i.create_object(state, version))
1203    }
1204
1205    impl ObjectInterface {
1206        #[expect(clippy::should_implement_trait)]
1207        pub fn from_str(interface: &str) -> Option<ObjectInterface> {
1208            static INTERFACES: phf::Map<&'static str, Option<ObjectInterface>> = phf::phf_map! {
1209                "hyprland_ctm_control_manager_v1" => {
1210                    #[cfg(feature = "protocol-hyprland_ctm_control_v1")] { Some(ObjectInterface::HyprlandCtmControlManagerV1) }
1211                    #[cfg(not(feature = "protocol-hyprland_ctm_control_v1"))] { None }
1212                },
1213                "hyprland_focus_grab_manager_v1" => {
1214                    #[cfg(feature = "protocol-hyprland_focus_grab_v1")] { Some(ObjectInterface::HyprlandFocusGrabManagerV1) }
1215                    #[cfg(not(feature = "protocol-hyprland_focus_grab_v1"))] { None }
1216                },
1217                "hyprland_focus_grab_v1" => {
1218                    #[cfg(feature = "protocol-hyprland_focus_grab_v1")] { Some(ObjectInterface::HyprlandFocusGrabV1) }
1219                    #[cfg(not(feature = "protocol-hyprland_focus_grab_v1"))] { None }
1220                },
1221                "hyprland_global_shortcut_v1" => {
1222                    #[cfg(feature = "protocol-hyprland_global_shortcuts_v1")] { Some(ObjectInterface::HyprlandGlobalShortcutV1) }
1223                    #[cfg(not(feature = "protocol-hyprland_global_shortcuts_v1"))] { None }
1224                },
1225                "hyprland_global_shortcuts_manager_v1" => {
1226                    #[cfg(feature = "protocol-hyprland_global_shortcuts_v1")] { Some(ObjectInterface::HyprlandGlobalShortcutsManagerV1) }
1227                    #[cfg(not(feature = "protocol-hyprland_global_shortcuts_v1"))] { None }
1228                },
1229                "hyprland_input_capture_manager_v1" => {
1230                    #[cfg(feature = "protocol-hyprland_input_capture_v1")] { Some(ObjectInterface::HyprlandInputCaptureManagerV1) }
1231                    #[cfg(not(feature = "protocol-hyprland_input_capture_v1"))] { None }
1232                },
1233                "hyprland_input_capture_v1" => {
1234                    #[cfg(feature = "protocol-hyprland_input_capture_v1")] { Some(ObjectInterface::HyprlandInputCaptureV1) }
1235                    #[cfg(not(feature = "protocol-hyprland_input_capture_v1"))] { None }
1236                },
1237                "hyprland_lock_notification_v1" => {
1238                    #[cfg(feature = "protocol-hyprland_lock_notify_v1")] { Some(ObjectInterface::HyprlandLockNotificationV1) }
1239                    #[cfg(not(feature = "protocol-hyprland_lock_notify_v1"))] { None }
1240                },
1241                "hyprland_lock_notifier_v1" => {
1242                    #[cfg(feature = "protocol-hyprland_lock_notify_v1")] { Some(ObjectInterface::HyprlandLockNotifierV1) }
1243                    #[cfg(not(feature = "protocol-hyprland_lock_notify_v1"))] { None }
1244                },
1245                "hyprland_surface_manager_v1" => {
1246                    #[cfg(feature = "protocol-hyprland_surface_v1")] { Some(ObjectInterface::HyprlandSurfaceManagerV1) }
1247                    #[cfg(not(feature = "protocol-hyprland_surface_v1"))] { None }
1248                },
1249                "hyprland_surface_v1" => {
1250                    #[cfg(feature = "protocol-hyprland_surface_v1")] { Some(ObjectInterface::HyprlandSurfaceV1) }
1251                    #[cfg(not(feature = "protocol-hyprland_surface_v1"))] { None }
1252                },
1253                "hyprland_toplevel_export_frame_v1" => {
1254                    #[cfg(feature = "protocol-hyprland_toplevel_export_v1")] { Some(ObjectInterface::HyprlandToplevelExportFrameV1) }
1255                    #[cfg(not(feature = "protocol-hyprland_toplevel_export_v1"))] { None }
1256                },
1257                "hyprland_toplevel_export_manager_v1" => {
1258                    #[cfg(feature = "protocol-hyprland_toplevel_export_v1")] { Some(ObjectInterface::HyprlandToplevelExportManagerV1) }
1259                    #[cfg(not(feature = "protocol-hyprland_toplevel_export_v1"))] { None }
1260                },
1261                "hyprland_toplevel_mapping_manager_v1" => {
1262                    #[cfg(feature = "protocol-hyprland_toplevel_mapping_v1")] { Some(ObjectInterface::HyprlandToplevelMappingManagerV1) }
1263                    #[cfg(not(feature = "protocol-hyprland_toplevel_mapping_v1"))] { None }
1264                },
1265                "hyprland_toplevel_window_mapping_handle_v1" => {
1266                    #[cfg(feature = "protocol-hyprland_toplevel_mapping_v1")] { Some(ObjectInterface::HyprlandToplevelWindowMappingHandleV1) }
1267                    #[cfg(not(feature = "protocol-hyprland_toplevel_mapping_v1"))] { None }
1268                },
1269                "jay_popup_ext_manager_v1" => {
1270                    #[cfg(feature = "protocol-jay_popup_ext_v1")] { Some(ObjectInterface::JayPopupExtManagerV1) }
1271                    #[cfg(not(feature = "protocol-jay_popup_ext_v1"))] { None }
1272                },
1273                "jay_popup_ext_v1" => {
1274                    #[cfg(feature = "protocol-jay_popup_ext_v1")] { Some(ObjectInterface::JayPopupExtV1) }
1275                    #[cfg(not(feature = "protocol-jay_popup_ext_v1"))] { None }
1276                },
1277                "jay_tray_item_v1" => {
1278                    #[cfg(feature = "protocol-jay_tray_v1")] { Some(ObjectInterface::JayTrayItemV1) }
1279                    #[cfg(not(feature = "protocol-jay_tray_v1"))] { None }
1280                },
1281                "jay_tray_v1" => {
1282                    #[cfg(feature = "protocol-jay_tray_v1")] { Some(ObjectInterface::JayTrayV1) }
1283                    #[cfg(not(feature = "protocol-jay_tray_v1"))] { None }
1284                },
1285                "wl_drm" => {
1286                    #[cfg(feature = "protocol-drm")] { Some(ObjectInterface::WlDrm) }
1287                    #[cfg(not(feature = "protocol-drm"))] { None }
1288                },
1289                "zwp_input_method_keyboard_grab_v2" => {
1290                    #[cfg(feature = "protocol-input_method_unstable_v2")] { Some(ObjectInterface::ZwpInputMethodKeyboardGrabV2) }
1291                    #[cfg(not(feature = "protocol-input_method_unstable_v2"))] { None }
1292                },
1293                "zwp_input_method_manager_v2" => {
1294                    #[cfg(feature = "protocol-input_method_unstable_v2")] { Some(ObjectInterface::ZwpInputMethodManagerV2) }
1295                    #[cfg(not(feature = "protocol-input_method_unstable_v2"))] { None }
1296                },
1297                "zwp_input_method_v2" => {
1298                    #[cfg(feature = "protocol-input_method_unstable_v2")] { Some(ObjectInterface::ZwpInputMethodV2) }
1299                    #[cfg(not(feature = "protocol-input_method_unstable_v2"))] { None }
1300                },
1301                "zwp_input_popup_surface_v2" => {
1302                    #[cfg(feature = "protocol-input_method_unstable_v2")] { Some(ObjectInterface::ZwpInputPopupSurfaceV2) }
1303                    #[cfg(not(feature = "protocol-input_method_unstable_v2"))] { None }
1304                },
1305                "org_kde_kwin_server_decoration" => {
1306                    #[cfg(feature = "protocol-org_kde_kwin_server_decoration_v1")] { Some(ObjectInterface::OrgKdeKwinServerDecoration) }
1307                    #[cfg(not(feature = "protocol-org_kde_kwin_server_decoration_v1"))] { None }
1308                },
1309                "org_kde_kwin_server_decoration_manager" => {
1310                    #[cfg(feature = "protocol-org_kde_kwin_server_decoration_v1")] { Some(ObjectInterface::OrgKdeKwinServerDecorationManager) }
1311                    #[cfg(not(feature = "protocol-org_kde_kwin_server_decoration_v1"))] { None }
1312                },
1313                "zwp_virtual_keyboard_manager_v1" => {
1314                    #[cfg(feature = "protocol-virtual_keyboard_unstable_v1")] { Some(ObjectInterface::ZwpVirtualKeyboardManagerV1) }
1315                    #[cfg(not(feature = "protocol-virtual_keyboard_unstable_v1"))] { None }
1316                },
1317                "zwp_virtual_keyboard_v1" => {
1318                    #[cfg(feature = "protocol-virtual_keyboard_unstable_v1")] { Some(ObjectInterface::ZwpVirtualKeyboardV1) }
1319                    #[cfg(not(feature = "protocol-virtual_keyboard_unstable_v1"))] { None }
1320                },
1321                "wl_buffer" => Some(ObjectInterface::WlBuffer),
1322                "wl_callback" => Some(ObjectInterface::WlCallback),
1323                "wl_compositor" => Some(ObjectInterface::WlCompositor),
1324                "wl_data_device" => Some(ObjectInterface::WlDataDevice),
1325                "wl_data_device_manager" => Some(ObjectInterface::WlDataDeviceManager),
1326                "wl_data_offer" => Some(ObjectInterface::WlDataOffer),
1327                "wl_data_source" => Some(ObjectInterface::WlDataSource),
1328                "wl_display" => Some(ObjectInterface::WlDisplay),
1329                "wl_fixes" => Some(ObjectInterface::WlFixes),
1330                "wl_keyboard" => Some(ObjectInterface::WlKeyboard),
1331                "wl_output" => Some(ObjectInterface::WlOutput),
1332                "wl_pointer" => Some(ObjectInterface::WlPointer),
1333                "wl_region" => Some(ObjectInterface::WlRegion),
1334                "wl_registry" => Some(ObjectInterface::WlRegistry),
1335                "wl_seat" => Some(ObjectInterface::WlSeat),
1336                "wl_shell" => Some(ObjectInterface::WlShell),
1337                "wl_shell_surface" => Some(ObjectInterface::WlShellSurface),
1338                "wl_shm" => Some(ObjectInterface::WlShm),
1339                "wl_shm_pool" => Some(ObjectInterface::WlShmPool),
1340                "wl_subcompositor" => Some(ObjectInterface::WlSubcompositor),
1341                "wl_subsurface" => Some(ObjectInterface::WlSubsurface),
1342                "wl_surface" => Some(ObjectInterface::WlSurface),
1343                "wl_touch" => Some(ObjectInterface::WlTouch),
1344                "wp_alpha_modifier_surface_v1" => {
1345                    #[cfg(feature = "protocol-alpha_modifier_v1")] { Some(ObjectInterface::WpAlphaModifierSurfaceV1) }
1346                    #[cfg(not(feature = "protocol-alpha_modifier_v1"))] { None }
1347                },
1348                "wp_alpha_modifier_v1" => {
1349                    #[cfg(feature = "protocol-alpha_modifier_v1")] { Some(ObjectInterface::WpAlphaModifierV1) }
1350                    #[cfg(not(feature = "protocol-alpha_modifier_v1"))] { None }
1351                },
1352                "wp_color_management_output_v1" => {
1353                    #[cfg(feature = "protocol-color_management_v1")] { Some(ObjectInterface::WpColorManagementOutputV1) }
1354                    #[cfg(not(feature = "protocol-color_management_v1"))] { None }
1355                },
1356                "wp_color_management_surface_feedback_v1" => {
1357                    #[cfg(feature = "protocol-color_management_v1")] { Some(ObjectInterface::WpColorManagementSurfaceFeedbackV1) }
1358                    #[cfg(not(feature = "protocol-color_management_v1"))] { None }
1359                },
1360                "wp_color_management_surface_v1" => {
1361                    #[cfg(feature = "protocol-color_management_v1")] { Some(ObjectInterface::WpColorManagementSurfaceV1) }
1362                    #[cfg(not(feature = "protocol-color_management_v1"))] { None }
1363                },
1364                "wp_color_manager_v1" => {
1365                    #[cfg(feature = "protocol-color_management_v1")] { Some(ObjectInterface::WpColorManagerV1) }
1366                    #[cfg(not(feature = "protocol-color_management_v1"))] { None }
1367                },
1368                "wp_image_description_creator_icc_v1" => {
1369                    #[cfg(feature = "protocol-color_management_v1")] { Some(ObjectInterface::WpImageDescriptionCreatorIccV1) }
1370                    #[cfg(not(feature = "protocol-color_management_v1"))] { None }
1371                },
1372                "wp_image_description_creator_params_v1" => {
1373                    #[cfg(feature = "protocol-color_management_v1")] { Some(ObjectInterface::WpImageDescriptionCreatorParamsV1) }
1374                    #[cfg(not(feature = "protocol-color_management_v1"))] { None }
1375                },
1376                "wp_image_description_info_v1" => {
1377                    #[cfg(feature = "protocol-color_management_v1")] { Some(ObjectInterface::WpImageDescriptionInfoV1) }
1378                    #[cfg(not(feature = "protocol-color_management_v1"))] { None }
1379                },
1380                "wp_image_description_reference_v1" => {
1381                    #[cfg(feature = "protocol-color_management_v1")] { Some(ObjectInterface::WpImageDescriptionReferenceV1) }
1382                    #[cfg(not(feature = "protocol-color_management_v1"))] { None }
1383                },
1384                "wp_image_description_v1" => {
1385                    #[cfg(feature = "protocol-color_management_v1")] { Some(ObjectInterface::WpImageDescriptionV1) }
1386                    #[cfg(not(feature = "protocol-color_management_v1"))] { None }
1387                },
1388                "wp_color_representation_manager_v1" => {
1389                    #[cfg(feature = "protocol-color_representation_v1")] { Some(ObjectInterface::WpColorRepresentationManagerV1) }
1390                    #[cfg(not(feature = "protocol-color_representation_v1"))] { None }
1391                },
1392                "wp_color_representation_surface_v1" => {
1393                    #[cfg(feature = "protocol-color_representation_v1")] { Some(ObjectInterface::WpColorRepresentationSurfaceV1) }
1394                    #[cfg(not(feature = "protocol-color_representation_v1"))] { None }
1395                },
1396                "wp_commit_timer_v1" => {
1397                    #[cfg(feature = "protocol-commit_timing_v1")] { Some(ObjectInterface::WpCommitTimerV1) }
1398                    #[cfg(not(feature = "protocol-commit_timing_v1"))] { None }
1399                },
1400                "wp_commit_timing_manager_v1" => {
1401                    #[cfg(feature = "protocol-commit_timing_v1")] { Some(ObjectInterface::WpCommitTimingManagerV1) }
1402                    #[cfg(not(feature = "protocol-commit_timing_v1"))] { None }
1403                },
1404                "wp_content_type_manager_v1" => {
1405                    #[cfg(feature = "protocol-content_type_v1")] { Some(ObjectInterface::WpContentTypeManagerV1) }
1406                    #[cfg(not(feature = "protocol-content_type_v1"))] { None }
1407                },
1408                "wp_content_type_v1" => {
1409                    #[cfg(feature = "protocol-content_type_v1")] { Some(ObjectInterface::WpContentTypeV1) }
1410                    #[cfg(not(feature = "protocol-content_type_v1"))] { None }
1411                },
1412                "wp_cursor_shape_device_v1" => {
1413                    #[cfg(feature = "protocol-cursor_shape_v1")] { Some(ObjectInterface::WpCursorShapeDeviceV1) }
1414                    #[cfg(not(feature = "protocol-cursor_shape_v1"))] { None }
1415                },
1416                "wp_cursor_shape_manager_v1" => {
1417                    #[cfg(feature = "protocol-cursor_shape_v1")] { Some(ObjectInterface::WpCursorShapeManagerV1) }
1418                    #[cfg(not(feature = "protocol-cursor_shape_v1"))] { None }
1419                },
1420                "wp_drm_lease_connector_v1" => {
1421                    #[cfg(feature = "protocol-drm_lease_v1")] { Some(ObjectInterface::WpDrmLeaseConnectorV1) }
1422                    #[cfg(not(feature = "protocol-drm_lease_v1"))] { None }
1423                },
1424                "wp_drm_lease_device_v1" => {
1425                    #[cfg(feature = "protocol-drm_lease_v1")] { Some(ObjectInterface::WpDrmLeaseDeviceV1) }
1426                    #[cfg(not(feature = "protocol-drm_lease_v1"))] { None }
1427                },
1428                "wp_drm_lease_request_v1" => {
1429                    #[cfg(feature = "protocol-drm_lease_v1")] { Some(ObjectInterface::WpDrmLeaseRequestV1) }
1430                    #[cfg(not(feature = "protocol-drm_lease_v1"))] { None }
1431                },
1432                "wp_drm_lease_v1" => {
1433                    #[cfg(feature = "protocol-drm_lease_v1")] { Some(ObjectInterface::WpDrmLeaseV1) }
1434                    #[cfg(not(feature = "protocol-drm_lease_v1"))] { None }
1435                },
1436                "ext_background_effect_manager_v1" => {
1437                    #[cfg(feature = "protocol-ext_background_effect_v1")] { Some(ObjectInterface::ExtBackgroundEffectManagerV1) }
1438                    #[cfg(not(feature = "protocol-ext_background_effect_v1"))] { None }
1439                },
1440                "ext_background_effect_surface_v1" => {
1441                    #[cfg(feature = "protocol-ext_background_effect_v1")] { Some(ObjectInterface::ExtBackgroundEffectSurfaceV1) }
1442                    #[cfg(not(feature = "protocol-ext_background_effect_v1"))] { None }
1443                },
1444                "ext_data_control_device_v1" => {
1445                    #[cfg(feature = "protocol-ext_data_control_v1")] { Some(ObjectInterface::ExtDataControlDeviceV1) }
1446                    #[cfg(not(feature = "protocol-ext_data_control_v1"))] { None }
1447                },
1448                "ext_data_control_manager_v1" => {
1449                    #[cfg(feature = "protocol-ext_data_control_v1")] { Some(ObjectInterface::ExtDataControlManagerV1) }
1450                    #[cfg(not(feature = "protocol-ext_data_control_v1"))] { None }
1451                },
1452                "ext_data_control_offer_v1" => {
1453                    #[cfg(feature = "protocol-ext_data_control_v1")] { Some(ObjectInterface::ExtDataControlOfferV1) }
1454                    #[cfg(not(feature = "protocol-ext_data_control_v1"))] { None }
1455                },
1456                "ext_data_control_source_v1" => {
1457                    #[cfg(feature = "protocol-ext_data_control_v1")] { Some(ObjectInterface::ExtDataControlSourceV1) }
1458                    #[cfg(not(feature = "protocol-ext_data_control_v1"))] { None }
1459                },
1460                "ext_foreign_toplevel_handle_v1" => {
1461                    #[cfg(feature = "protocol-ext_foreign_toplevel_list_v1")] { Some(ObjectInterface::ExtForeignToplevelHandleV1) }
1462                    #[cfg(not(feature = "protocol-ext_foreign_toplevel_list_v1"))] { None }
1463                },
1464                "ext_foreign_toplevel_list_v1" => {
1465                    #[cfg(feature = "protocol-ext_foreign_toplevel_list_v1")] { Some(ObjectInterface::ExtForeignToplevelListV1) }
1466                    #[cfg(not(feature = "protocol-ext_foreign_toplevel_list_v1"))] { None }
1467                },
1468                "ext_idle_notification_v1" => {
1469                    #[cfg(feature = "protocol-ext_idle_notify_v1")] { Some(ObjectInterface::ExtIdleNotificationV1) }
1470                    #[cfg(not(feature = "protocol-ext_idle_notify_v1"))] { None }
1471                },
1472                "ext_idle_notifier_v1" => {
1473                    #[cfg(feature = "protocol-ext_idle_notify_v1")] { Some(ObjectInterface::ExtIdleNotifierV1) }
1474                    #[cfg(not(feature = "protocol-ext_idle_notify_v1"))] { None }
1475                },
1476                "ext_foreign_toplevel_image_capture_source_manager_v1" => {
1477                    #[cfg(feature = "protocol-ext_image_capture_source_v1")] { Some(ObjectInterface::ExtForeignToplevelImageCaptureSourceManagerV1) }
1478                    #[cfg(not(feature = "protocol-ext_image_capture_source_v1"))] { None }
1479                },
1480                "ext_image_capture_source_v1" => {
1481                    #[cfg(feature = "protocol-ext_image_capture_source_v1")] { Some(ObjectInterface::ExtImageCaptureSourceV1) }
1482                    #[cfg(not(feature = "protocol-ext_image_capture_source_v1"))] { None }
1483                },
1484                "ext_output_image_capture_source_manager_v1" => {
1485                    #[cfg(feature = "protocol-ext_image_capture_source_v1")] { Some(ObjectInterface::ExtOutputImageCaptureSourceManagerV1) }
1486                    #[cfg(not(feature = "protocol-ext_image_capture_source_v1"))] { None }
1487                },
1488                "ext_image_copy_capture_cursor_session_v1" => {
1489                    #[cfg(feature = "protocol-ext_image_copy_capture_v1")] { Some(ObjectInterface::ExtImageCopyCaptureCursorSessionV1) }
1490                    #[cfg(not(feature = "protocol-ext_image_copy_capture_v1"))] { None }
1491                },
1492                "ext_image_copy_capture_frame_v1" => {
1493                    #[cfg(feature = "protocol-ext_image_copy_capture_v1")] { Some(ObjectInterface::ExtImageCopyCaptureFrameV1) }
1494                    #[cfg(not(feature = "protocol-ext_image_copy_capture_v1"))] { None }
1495                },
1496                "ext_image_copy_capture_manager_v1" => {
1497                    #[cfg(feature = "protocol-ext_image_copy_capture_v1")] { Some(ObjectInterface::ExtImageCopyCaptureManagerV1) }
1498                    #[cfg(not(feature = "protocol-ext_image_copy_capture_v1"))] { None }
1499                },
1500                "ext_image_copy_capture_session_v1" => {
1501                    #[cfg(feature = "protocol-ext_image_copy_capture_v1")] { Some(ObjectInterface::ExtImageCopyCaptureSessionV1) }
1502                    #[cfg(not(feature = "protocol-ext_image_copy_capture_v1"))] { None }
1503                },
1504                "ext_session_lock_manager_v1" => {
1505                    #[cfg(feature = "protocol-ext_session_lock_v1")] { Some(ObjectInterface::ExtSessionLockManagerV1) }
1506                    #[cfg(not(feature = "protocol-ext_session_lock_v1"))] { None }
1507                },
1508                "ext_session_lock_surface_v1" => {
1509                    #[cfg(feature = "protocol-ext_session_lock_v1")] { Some(ObjectInterface::ExtSessionLockSurfaceV1) }
1510                    #[cfg(not(feature = "protocol-ext_session_lock_v1"))] { None }
1511                },
1512                "ext_session_lock_v1" => {
1513                    #[cfg(feature = "protocol-ext_session_lock_v1")] { Some(ObjectInterface::ExtSessionLockV1) }
1514                    #[cfg(not(feature = "protocol-ext_session_lock_v1"))] { None }
1515                },
1516                "ext_transient_seat_manager_v1" => {
1517                    #[cfg(feature = "protocol-ext_transient_seat_v1")] { Some(ObjectInterface::ExtTransientSeatManagerV1) }
1518                    #[cfg(not(feature = "protocol-ext_transient_seat_v1"))] { None }
1519                },
1520                "ext_transient_seat_v1" => {
1521                    #[cfg(feature = "protocol-ext_transient_seat_v1")] { Some(ObjectInterface::ExtTransientSeatV1) }
1522                    #[cfg(not(feature = "protocol-ext_transient_seat_v1"))] { None }
1523                },
1524                "ext_workspace_group_handle_v1" => {
1525                    #[cfg(feature = "protocol-ext_workspace_v1")] { Some(ObjectInterface::ExtWorkspaceGroupHandleV1) }
1526                    #[cfg(not(feature = "protocol-ext_workspace_v1"))] { None }
1527                },
1528                "ext_workspace_handle_v1" => {
1529                    #[cfg(feature = "protocol-ext_workspace_v1")] { Some(ObjectInterface::ExtWorkspaceHandleV1) }
1530                    #[cfg(not(feature = "protocol-ext_workspace_v1"))] { None }
1531                },
1532                "ext_workspace_manager_v1" => {
1533                    #[cfg(feature = "protocol-ext_workspace_v1")] { Some(ObjectInterface::ExtWorkspaceManagerV1) }
1534                    #[cfg(not(feature = "protocol-ext_workspace_v1"))] { None }
1535                },
1536                "wp_fifo_manager_v1" => {
1537                    #[cfg(feature = "protocol-fifo_v1")] { Some(ObjectInterface::WpFifoManagerV1) }
1538                    #[cfg(not(feature = "protocol-fifo_v1"))] { None }
1539                },
1540                "wp_fifo_v1" => {
1541                    #[cfg(feature = "protocol-fifo_v1")] { Some(ObjectInterface::WpFifoV1) }
1542                    #[cfg(not(feature = "protocol-fifo_v1"))] { None }
1543                },
1544                "wp_fractional_scale_manager_v1" => {
1545                    #[cfg(feature = "protocol-fractional_scale_v1")] { Some(ObjectInterface::WpFractionalScaleManagerV1) }
1546                    #[cfg(not(feature = "protocol-fractional_scale_v1"))] { None }
1547                },
1548                "wp_fractional_scale_v1" => {
1549                    #[cfg(feature = "protocol-fractional_scale_v1")] { Some(ObjectInterface::WpFractionalScaleV1) }
1550                    #[cfg(not(feature = "protocol-fractional_scale_v1"))] { None }
1551                },
1552                "zwp_fullscreen_shell_mode_feedback_v1" => {
1553                    #[cfg(feature = "protocol-fullscreen_shell_unstable_v1")] { Some(ObjectInterface::ZwpFullscreenShellModeFeedbackV1) }
1554                    #[cfg(not(feature = "protocol-fullscreen_shell_unstable_v1"))] { None }
1555                },
1556                "zwp_fullscreen_shell_v1" => {
1557                    #[cfg(feature = "protocol-fullscreen_shell_unstable_v1")] { Some(ObjectInterface::ZwpFullscreenShellV1) }
1558                    #[cfg(not(feature = "protocol-fullscreen_shell_unstable_v1"))] { None }
1559                },
1560                "zwp_idle_inhibit_manager_v1" => {
1561                    #[cfg(feature = "protocol-idle_inhibit_unstable_v1")] { Some(ObjectInterface::ZwpIdleInhibitManagerV1) }
1562                    #[cfg(not(feature = "protocol-idle_inhibit_unstable_v1"))] { None }
1563                },
1564                "zwp_idle_inhibitor_v1" => {
1565                    #[cfg(feature = "protocol-idle_inhibit_unstable_v1")] { Some(ObjectInterface::ZwpIdleInhibitorV1) }
1566                    #[cfg(not(feature = "protocol-idle_inhibit_unstable_v1"))] { None }
1567                },
1568                "zwp_input_method_context_v1" => {
1569                    #[cfg(feature = "protocol-input_method_unstable_v1")] { Some(ObjectInterface::ZwpInputMethodContextV1) }
1570                    #[cfg(not(feature = "protocol-input_method_unstable_v1"))] { None }
1571                },
1572                "zwp_input_method_v1" => {
1573                    #[cfg(feature = "protocol-input_method_unstable_v1")] { Some(ObjectInterface::ZwpInputMethodV1) }
1574                    #[cfg(not(feature = "protocol-input_method_unstable_v1"))] { None }
1575                },
1576                "zwp_input_panel_surface_v1" => {
1577                    #[cfg(feature = "protocol-input_method_unstable_v1")] { Some(ObjectInterface::ZwpInputPanelSurfaceV1) }
1578                    #[cfg(not(feature = "protocol-input_method_unstable_v1"))] { None }
1579                },
1580                "zwp_input_panel_v1" => {
1581                    #[cfg(feature = "protocol-input_method_unstable_v1")] { Some(ObjectInterface::ZwpInputPanelV1) }
1582                    #[cfg(not(feature = "protocol-input_method_unstable_v1"))] { None }
1583                },
1584                "zwp_input_timestamps_manager_v1" => {
1585                    #[cfg(feature = "protocol-input_timestamps_unstable_v1")] { Some(ObjectInterface::ZwpInputTimestampsManagerV1) }
1586                    #[cfg(not(feature = "protocol-input_timestamps_unstable_v1"))] { None }
1587                },
1588                "zwp_input_timestamps_v1" => {
1589                    #[cfg(feature = "protocol-input_timestamps_unstable_v1")] { Some(ObjectInterface::ZwpInputTimestampsV1) }
1590                    #[cfg(not(feature = "protocol-input_timestamps_unstable_v1"))] { None }
1591                },
1592                "zwp_keyboard_shortcuts_inhibit_manager_v1" => {
1593                    #[cfg(feature = "protocol-keyboard_shortcuts_inhibit_unstable_v1")] { Some(ObjectInterface::ZwpKeyboardShortcutsInhibitManagerV1) }
1594                    #[cfg(not(feature = "protocol-keyboard_shortcuts_inhibit_unstable_v1"))] { None }
1595                },
1596                "zwp_keyboard_shortcuts_inhibitor_v1" => {
1597                    #[cfg(feature = "protocol-keyboard_shortcuts_inhibit_unstable_v1")] { Some(ObjectInterface::ZwpKeyboardShortcutsInhibitorV1) }
1598                    #[cfg(not(feature = "protocol-keyboard_shortcuts_inhibit_unstable_v1"))] { None }
1599                },
1600                "zwp_linux_buffer_params_v1" => {
1601                    #[cfg(feature = "protocol-linux_dmabuf_v1")] { Some(ObjectInterface::ZwpLinuxBufferParamsV1) }
1602                    #[cfg(not(feature = "protocol-linux_dmabuf_v1"))] { None }
1603                },
1604                "zwp_linux_dmabuf_feedback_v1" => {
1605                    #[cfg(feature = "protocol-linux_dmabuf_v1")] { Some(ObjectInterface::ZwpLinuxDmabufFeedbackV1) }
1606                    #[cfg(not(feature = "protocol-linux_dmabuf_v1"))] { None }
1607                },
1608                "zwp_linux_dmabuf_v1" => {
1609                    #[cfg(feature = "protocol-linux_dmabuf_v1")] { Some(ObjectInterface::ZwpLinuxDmabufV1) }
1610                    #[cfg(not(feature = "protocol-linux_dmabuf_v1"))] { None }
1611                },
1612                "wp_linux_drm_syncobj_manager_v1" => {
1613                    #[cfg(feature = "protocol-linux_drm_syncobj_v1")] { Some(ObjectInterface::WpLinuxDrmSyncobjManagerV1) }
1614                    #[cfg(not(feature = "protocol-linux_drm_syncobj_v1"))] { None }
1615                },
1616                "wp_linux_drm_syncobj_surface_v1" => {
1617                    #[cfg(feature = "protocol-linux_drm_syncobj_v1")] { Some(ObjectInterface::WpLinuxDrmSyncobjSurfaceV1) }
1618                    #[cfg(not(feature = "protocol-linux_drm_syncobj_v1"))] { None }
1619                },
1620                "wp_linux_drm_syncobj_timeline_v1" => {
1621                    #[cfg(feature = "protocol-linux_drm_syncobj_v1")] { Some(ObjectInterface::WpLinuxDrmSyncobjTimelineV1) }
1622                    #[cfg(not(feature = "protocol-linux_drm_syncobj_v1"))] { None }
1623                },
1624                "zwp_confined_pointer_v1" => {
1625                    #[cfg(feature = "protocol-pointer_constraints_unstable_v1")] { Some(ObjectInterface::ZwpConfinedPointerV1) }
1626                    #[cfg(not(feature = "protocol-pointer_constraints_unstable_v1"))] { None }
1627                },
1628                "zwp_locked_pointer_v1" => {
1629                    #[cfg(feature = "protocol-pointer_constraints_unstable_v1")] { Some(ObjectInterface::ZwpLockedPointerV1) }
1630                    #[cfg(not(feature = "protocol-pointer_constraints_unstable_v1"))] { None }
1631                },
1632                "zwp_pointer_constraints_v1" => {
1633                    #[cfg(feature = "protocol-pointer_constraints_unstable_v1")] { Some(ObjectInterface::ZwpPointerConstraintsV1) }
1634                    #[cfg(not(feature = "protocol-pointer_constraints_unstable_v1"))] { None }
1635                },
1636                "zwp_pointer_gesture_hold_v1" => {
1637                    #[cfg(feature = "protocol-pointer_gestures_unstable_v1")] { Some(ObjectInterface::ZwpPointerGestureHoldV1) }
1638                    #[cfg(not(feature = "protocol-pointer_gestures_unstable_v1"))] { None }
1639                },
1640                "zwp_pointer_gesture_pinch_v1" => {
1641                    #[cfg(feature = "protocol-pointer_gestures_unstable_v1")] { Some(ObjectInterface::ZwpPointerGesturePinchV1) }
1642                    #[cfg(not(feature = "protocol-pointer_gestures_unstable_v1"))] { None }
1643                },
1644                "zwp_pointer_gesture_swipe_v1" => {
1645                    #[cfg(feature = "protocol-pointer_gestures_unstable_v1")] { Some(ObjectInterface::ZwpPointerGestureSwipeV1) }
1646                    #[cfg(not(feature = "protocol-pointer_gestures_unstable_v1"))] { None }
1647                },
1648                "zwp_pointer_gestures_v1" => {
1649                    #[cfg(feature = "protocol-pointer_gestures_unstable_v1")] { Some(ObjectInterface::ZwpPointerGesturesV1) }
1650                    #[cfg(not(feature = "protocol-pointer_gestures_unstable_v1"))] { None }
1651                },
1652                "wp_pointer_warp_v1" => {
1653                    #[cfg(feature = "protocol-pointer_warp_v1")] { Some(ObjectInterface::WpPointerWarpV1) }
1654                    #[cfg(not(feature = "protocol-pointer_warp_v1"))] { None }
1655                },
1656                "wp_presentation" => {
1657                    #[cfg(feature = "protocol-presentation_time")] { Some(ObjectInterface::WpPresentation) }
1658                    #[cfg(not(feature = "protocol-presentation_time"))] { None }
1659                },
1660                "wp_presentation_feedback" => {
1661                    #[cfg(feature = "protocol-presentation_time")] { Some(ObjectInterface::WpPresentationFeedback) }
1662                    #[cfg(not(feature = "protocol-presentation_time"))] { None }
1663                },
1664                "zwp_relative_pointer_manager_v1" => {
1665                    #[cfg(feature = "protocol-relative_pointer_unstable_v1")] { Some(ObjectInterface::ZwpRelativePointerManagerV1) }
1666                    #[cfg(not(feature = "protocol-relative_pointer_unstable_v1"))] { None }
1667                },
1668                "zwp_relative_pointer_v1" => {
1669                    #[cfg(feature = "protocol-relative_pointer_unstable_v1")] { Some(ObjectInterface::ZwpRelativePointerV1) }
1670                    #[cfg(not(feature = "protocol-relative_pointer_unstable_v1"))] { None }
1671                },
1672                "wp_security_context_manager_v1" => {
1673                    #[cfg(feature = "protocol-security_context_v1")] { Some(ObjectInterface::WpSecurityContextManagerV1) }
1674                    #[cfg(not(feature = "protocol-security_context_v1"))] { None }
1675                },
1676                "wp_security_context_v1" => {
1677                    #[cfg(feature = "protocol-security_context_v1")] { Some(ObjectInterface::WpSecurityContextV1) }
1678                    #[cfg(not(feature = "protocol-security_context_v1"))] { None }
1679                },
1680                "wp_single_pixel_buffer_manager_v1" => {
1681                    #[cfg(feature = "protocol-single_pixel_buffer_v1")] { Some(ObjectInterface::WpSinglePixelBufferManagerV1) }
1682                    #[cfg(not(feature = "protocol-single_pixel_buffer_v1"))] { None }
1683                },
1684                "zwp_tablet_manager_v2" => {
1685                    #[cfg(feature = "protocol-tablet_v2")] { Some(ObjectInterface::ZwpTabletManagerV2) }
1686                    #[cfg(not(feature = "protocol-tablet_v2"))] { None }
1687                },
1688                "zwp_tablet_pad_dial_v2" => {
1689                    #[cfg(feature = "protocol-tablet_v2")] { Some(ObjectInterface::ZwpTabletPadDialV2) }
1690                    #[cfg(not(feature = "protocol-tablet_v2"))] { None }
1691                },
1692                "zwp_tablet_pad_group_v2" => {
1693                    #[cfg(feature = "protocol-tablet_v2")] { Some(ObjectInterface::ZwpTabletPadGroupV2) }
1694                    #[cfg(not(feature = "protocol-tablet_v2"))] { None }
1695                },
1696                "zwp_tablet_pad_ring_v2" => {
1697                    #[cfg(feature = "protocol-tablet_v2")] { Some(ObjectInterface::ZwpTabletPadRingV2) }
1698                    #[cfg(not(feature = "protocol-tablet_v2"))] { None }
1699                },
1700                "zwp_tablet_pad_strip_v2" => {
1701                    #[cfg(feature = "protocol-tablet_v2")] { Some(ObjectInterface::ZwpTabletPadStripV2) }
1702                    #[cfg(not(feature = "protocol-tablet_v2"))] { None }
1703                },
1704                "zwp_tablet_pad_v2" => {
1705                    #[cfg(feature = "protocol-tablet_v2")] { Some(ObjectInterface::ZwpTabletPadV2) }
1706                    #[cfg(not(feature = "protocol-tablet_v2"))] { None }
1707                },
1708                "zwp_tablet_seat_v2" => {
1709                    #[cfg(feature = "protocol-tablet_v2")] { Some(ObjectInterface::ZwpTabletSeatV2) }
1710                    #[cfg(not(feature = "protocol-tablet_v2"))] { None }
1711                },
1712                "zwp_tablet_tool_v2" => {
1713                    #[cfg(feature = "protocol-tablet_v2")] { Some(ObjectInterface::ZwpTabletToolV2) }
1714                    #[cfg(not(feature = "protocol-tablet_v2"))] { None }
1715                },
1716                "zwp_tablet_v2" => {
1717                    #[cfg(feature = "protocol-tablet_v2")] { Some(ObjectInterface::ZwpTabletV2) }
1718                    #[cfg(not(feature = "protocol-tablet_v2"))] { None }
1719                },
1720                "wp_tearing_control_manager_v1" => {
1721                    #[cfg(feature = "protocol-tearing_control_v1")] { Some(ObjectInterface::WpTearingControlManagerV1) }
1722                    #[cfg(not(feature = "protocol-tearing_control_v1"))] { None }
1723                },
1724                "wp_tearing_control_v1" => {
1725                    #[cfg(feature = "protocol-tearing_control_v1")] { Some(ObjectInterface::WpTearingControlV1) }
1726                    #[cfg(not(feature = "protocol-tearing_control_v1"))] { None }
1727                },
1728                "zwp_text_input_manager_v1" => {
1729                    #[cfg(feature = "protocol-text_input_unstable_v1")] { Some(ObjectInterface::ZwpTextInputManagerV1) }
1730                    #[cfg(not(feature = "protocol-text_input_unstable_v1"))] { None }
1731                },
1732                "zwp_text_input_v1" => {
1733                    #[cfg(feature = "protocol-text_input_unstable_v1")] { Some(ObjectInterface::ZwpTextInputV1) }
1734                    #[cfg(not(feature = "protocol-text_input_unstable_v1"))] { None }
1735                },
1736                "zwp_text_input_manager_v3" => {
1737                    #[cfg(feature = "protocol-text_input_unstable_v3")] { Some(ObjectInterface::ZwpTextInputManagerV3) }
1738                    #[cfg(not(feature = "protocol-text_input_unstable_v3"))] { None }
1739                },
1740                "zwp_text_input_v3" => {
1741                    #[cfg(feature = "protocol-text_input_unstable_v3")] { Some(ObjectInterface::ZwpTextInputV3) }
1742                    #[cfg(not(feature = "protocol-text_input_unstable_v3"))] { None }
1743                },
1744                "wp_viewport" => {
1745                    #[cfg(feature = "protocol-viewporter")] { Some(ObjectInterface::WpViewport) }
1746                    #[cfg(not(feature = "protocol-viewporter"))] { None }
1747                },
1748                "wp_viewporter" => {
1749                    #[cfg(feature = "protocol-viewporter")] { Some(ObjectInterface::WpViewporter) }
1750                    #[cfg(not(feature = "protocol-viewporter"))] { None }
1751                },
1752                "zwp_primary_selection_device_manager_v1" => {
1753                    #[cfg(feature = "protocol-wp_primary_selection_unstable_v1")] { Some(ObjectInterface::ZwpPrimarySelectionDeviceManagerV1) }
1754                    #[cfg(not(feature = "protocol-wp_primary_selection_unstable_v1"))] { None }
1755                },
1756                "zwp_primary_selection_device_v1" => {
1757                    #[cfg(feature = "protocol-wp_primary_selection_unstable_v1")] { Some(ObjectInterface::ZwpPrimarySelectionDeviceV1) }
1758                    #[cfg(not(feature = "protocol-wp_primary_selection_unstable_v1"))] { None }
1759                },
1760                "zwp_primary_selection_offer_v1" => {
1761                    #[cfg(feature = "protocol-wp_primary_selection_unstable_v1")] { Some(ObjectInterface::ZwpPrimarySelectionOfferV1) }
1762                    #[cfg(not(feature = "protocol-wp_primary_selection_unstable_v1"))] { None }
1763                },
1764                "zwp_primary_selection_source_v1" => {
1765                    #[cfg(feature = "protocol-wp_primary_selection_unstable_v1")] { Some(ObjectInterface::ZwpPrimarySelectionSourceV1) }
1766                    #[cfg(not(feature = "protocol-wp_primary_selection_unstable_v1"))] { None }
1767                },
1768                "xdg_activation_token_v1" => {
1769                    #[cfg(feature = "protocol-xdg_activation_v1")] { Some(ObjectInterface::XdgActivationTokenV1) }
1770                    #[cfg(not(feature = "protocol-xdg_activation_v1"))] { None }
1771                },
1772                "xdg_activation_v1" => {
1773                    #[cfg(feature = "protocol-xdg_activation_v1")] { Some(ObjectInterface::XdgActivationV1) }
1774                    #[cfg(not(feature = "protocol-xdg_activation_v1"))] { None }
1775                },
1776                "zxdg_decoration_manager_v1" => {
1777                    #[cfg(feature = "protocol-xdg_decoration_unstable_v1")] { Some(ObjectInterface::ZxdgDecorationManagerV1) }
1778                    #[cfg(not(feature = "protocol-xdg_decoration_unstable_v1"))] { None }
1779                },
1780                "zxdg_toplevel_decoration_v1" => {
1781                    #[cfg(feature = "protocol-xdg_decoration_unstable_v1")] { Some(ObjectInterface::ZxdgToplevelDecorationV1) }
1782                    #[cfg(not(feature = "protocol-xdg_decoration_unstable_v1"))] { None }
1783                },
1784                "xdg_dialog_v1" => {
1785                    #[cfg(feature = "protocol-xdg_dialog_v1")] { Some(ObjectInterface::XdgDialogV1) }
1786                    #[cfg(not(feature = "protocol-xdg_dialog_v1"))] { None }
1787                },
1788                "xdg_wm_dialog_v1" => {
1789                    #[cfg(feature = "protocol-xdg_dialog_v1")] { Some(ObjectInterface::XdgWmDialogV1) }
1790                    #[cfg(not(feature = "protocol-xdg_dialog_v1"))] { None }
1791                },
1792                "zxdg_exported_v2" => {
1793                    #[cfg(feature = "protocol-xdg_foreign_unstable_v2")] { Some(ObjectInterface::ZxdgExportedV2) }
1794                    #[cfg(not(feature = "protocol-xdg_foreign_unstable_v2"))] { None }
1795                },
1796                "zxdg_exporter_v2" => {
1797                    #[cfg(feature = "protocol-xdg_foreign_unstable_v2")] { Some(ObjectInterface::ZxdgExporterV2) }
1798                    #[cfg(not(feature = "protocol-xdg_foreign_unstable_v2"))] { None }
1799                },
1800                "zxdg_imported_v2" => {
1801                    #[cfg(feature = "protocol-xdg_foreign_unstable_v2")] { Some(ObjectInterface::ZxdgImportedV2) }
1802                    #[cfg(not(feature = "protocol-xdg_foreign_unstable_v2"))] { None }
1803                },
1804                "zxdg_importer_v2" => {
1805                    #[cfg(feature = "protocol-xdg_foreign_unstable_v2")] { Some(ObjectInterface::ZxdgImporterV2) }
1806                    #[cfg(not(feature = "protocol-xdg_foreign_unstable_v2"))] { None }
1807                },
1808                "zxdg_output_manager_v1" => {
1809                    #[cfg(feature = "protocol-xdg_output_unstable_v1")] { Some(ObjectInterface::ZxdgOutputManagerV1) }
1810                    #[cfg(not(feature = "protocol-xdg_output_unstable_v1"))] { None }
1811                },
1812                "zxdg_output_v1" => {
1813                    #[cfg(feature = "protocol-xdg_output_unstable_v1")] { Some(ObjectInterface::ZxdgOutputV1) }
1814                    #[cfg(not(feature = "protocol-xdg_output_unstable_v1"))] { None }
1815                },
1816                "xdg_session_manager_v1" => {
1817                    #[cfg(feature = "protocol-xdg_session_management_v1")] { Some(ObjectInterface::XdgSessionManagerV1) }
1818                    #[cfg(not(feature = "protocol-xdg_session_management_v1"))] { None }
1819                },
1820                "xdg_session_v1" => {
1821                    #[cfg(feature = "protocol-xdg_session_management_v1")] { Some(ObjectInterface::XdgSessionV1) }
1822                    #[cfg(not(feature = "protocol-xdg_session_management_v1"))] { None }
1823                },
1824                "xdg_toplevel_session_v1" => {
1825                    #[cfg(feature = "protocol-xdg_session_management_v1")] { Some(ObjectInterface::XdgToplevelSessionV1) }
1826                    #[cfg(not(feature = "protocol-xdg_session_management_v1"))] { None }
1827                },
1828                "xdg_popup" => {
1829                    #[cfg(feature = "protocol-xdg_shell")] { Some(ObjectInterface::XdgPopup) }
1830                    #[cfg(not(feature = "protocol-xdg_shell"))] { None }
1831                },
1832                "xdg_positioner" => {
1833                    #[cfg(feature = "protocol-xdg_shell")] { Some(ObjectInterface::XdgPositioner) }
1834                    #[cfg(not(feature = "protocol-xdg_shell"))] { None }
1835                },
1836                "xdg_surface" => {
1837                    #[cfg(feature = "protocol-xdg_shell")] { Some(ObjectInterface::XdgSurface) }
1838                    #[cfg(not(feature = "protocol-xdg_shell"))] { None }
1839                },
1840                "xdg_toplevel" => {
1841                    #[cfg(feature = "protocol-xdg_shell")] { Some(ObjectInterface::XdgToplevel) }
1842                    #[cfg(not(feature = "protocol-xdg_shell"))] { None }
1843                },
1844                "xdg_wm_base" => {
1845                    #[cfg(feature = "protocol-xdg_shell")] { Some(ObjectInterface::XdgWmBase) }
1846                    #[cfg(not(feature = "protocol-xdg_shell"))] { None }
1847                },
1848                "xdg_system_bell_v1" => {
1849                    #[cfg(feature = "protocol-xdg_system_bell_v1")] { Some(ObjectInterface::XdgSystemBellV1) }
1850                    #[cfg(not(feature = "protocol-xdg_system_bell_v1"))] { None }
1851                },
1852                "xdg_toplevel_drag_manager_v1" => {
1853                    #[cfg(feature = "protocol-xdg_toplevel_drag_v1")] { Some(ObjectInterface::XdgToplevelDragManagerV1) }
1854                    #[cfg(not(feature = "protocol-xdg_toplevel_drag_v1"))] { None }
1855                },
1856                "xdg_toplevel_drag_v1" => {
1857                    #[cfg(feature = "protocol-xdg_toplevel_drag_v1")] { Some(ObjectInterface::XdgToplevelDragV1) }
1858                    #[cfg(not(feature = "protocol-xdg_toplevel_drag_v1"))] { None }
1859                },
1860                "xdg_toplevel_icon_manager_v1" => {
1861                    #[cfg(feature = "protocol-xdg_toplevel_icon_v1")] { Some(ObjectInterface::XdgToplevelIconManagerV1) }
1862                    #[cfg(not(feature = "protocol-xdg_toplevel_icon_v1"))] { None }
1863                },
1864                "xdg_toplevel_icon_v1" => {
1865                    #[cfg(feature = "protocol-xdg_toplevel_icon_v1")] { Some(ObjectInterface::XdgToplevelIconV1) }
1866                    #[cfg(not(feature = "protocol-xdg_toplevel_icon_v1"))] { None }
1867                },
1868                "xdg_toplevel_tag_manager_v1" => {
1869                    #[cfg(feature = "protocol-xdg_toplevel_tag_v1")] { Some(ObjectInterface::XdgToplevelTagManagerV1) }
1870                    #[cfg(not(feature = "protocol-xdg_toplevel_tag_v1"))] { None }
1871                },
1872                "zwp_xwayland_keyboard_grab_manager_v1" => {
1873                    #[cfg(feature = "protocol-xwayland_keyboard_grab_unstable_v1")] { Some(ObjectInterface::ZwpXwaylandKeyboardGrabManagerV1) }
1874                    #[cfg(not(feature = "protocol-xwayland_keyboard_grab_unstable_v1"))] { None }
1875                },
1876                "zwp_xwayland_keyboard_grab_v1" => {
1877                    #[cfg(feature = "protocol-xwayland_keyboard_grab_unstable_v1")] { Some(ObjectInterface::ZwpXwaylandKeyboardGrabV1) }
1878                    #[cfg(not(feature = "protocol-xwayland_keyboard_grab_unstable_v1"))] { None }
1879                },
1880                "xwayland_shell_v1" => {
1881                    #[cfg(feature = "protocol-xwayland_shell_v1")] { Some(ObjectInterface::XwaylandShellV1) }
1882                    #[cfg(not(feature = "protocol-xwayland_shell_v1"))] { None }
1883                },
1884                "xwayland_surface_v1" => {
1885                    #[cfg(feature = "protocol-xwayland_shell_v1")] { Some(ObjectInterface::XwaylandSurfaceV1) }
1886                    #[cfg(not(feature = "protocol-xwayland_shell_v1"))] { None }
1887                },
1888                "zwp_linux_buffer_release_v1" => {
1889                    #[cfg(feature = "protocol-zwp_linux_explicit_synchronization_unstable_v1")] { Some(ObjectInterface::ZwpLinuxBufferReleaseV1) }
1890                    #[cfg(not(feature = "protocol-zwp_linux_explicit_synchronization_unstable_v1"))] { None }
1891                },
1892                "zwp_linux_explicit_synchronization_v1" => {
1893                    #[cfg(feature = "protocol-zwp_linux_explicit_synchronization_unstable_v1")] { Some(ObjectInterface::ZwpLinuxExplicitSynchronizationV1) }
1894                    #[cfg(not(feature = "protocol-zwp_linux_explicit_synchronization_unstable_v1"))] { None }
1895                },
1896                "zwp_linux_surface_synchronization_v1" => {
1897                    #[cfg(feature = "protocol-zwp_linux_explicit_synchronization_unstable_v1")] { Some(ObjectInterface::ZwpLinuxSurfaceSynchronizationV1) }
1898                    #[cfg(not(feature = "protocol-zwp_linux_explicit_synchronization_unstable_v1"))] { None }
1899                },
1900                "zwlr_data_control_device_v1" => {
1901                    #[cfg(feature = "protocol-wlr_data_control_unstable_v1")] { Some(ObjectInterface::ZwlrDataControlDeviceV1) }
1902                    #[cfg(not(feature = "protocol-wlr_data_control_unstable_v1"))] { None }
1903                },
1904                "zwlr_data_control_manager_v1" => {
1905                    #[cfg(feature = "protocol-wlr_data_control_unstable_v1")] { Some(ObjectInterface::ZwlrDataControlManagerV1) }
1906                    #[cfg(not(feature = "protocol-wlr_data_control_unstable_v1"))] { None }
1907                },
1908                "zwlr_data_control_offer_v1" => {
1909                    #[cfg(feature = "protocol-wlr_data_control_unstable_v1")] { Some(ObjectInterface::ZwlrDataControlOfferV1) }
1910                    #[cfg(not(feature = "protocol-wlr_data_control_unstable_v1"))] { None }
1911                },
1912                "zwlr_data_control_source_v1" => {
1913                    #[cfg(feature = "protocol-wlr_data_control_unstable_v1")] { Some(ObjectInterface::ZwlrDataControlSourceV1) }
1914                    #[cfg(not(feature = "protocol-wlr_data_control_unstable_v1"))] { None }
1915                },
1916                "zwlr_export_dmabuf_frame_v1" => {
1917                    #[cfg(feature = "protocol-wlr_export_dmabuf_unstable_v1")] { Some(ObjectInterface::ZwlrExportDmabufFrameV1) }
1918                    #[cfg(not(feature = "protocol-wlr_export_dmabuf_unstable_v1"))] { None }
1919                },
1920                "zwlr_export_dmabuf_manager_v1" => {
1921                    #[cfg(feature = "protocol-wlr_export_dmabuf_unstable_v1")] { Some(ObjectInterface::ZwlrExportDmabufManagerV1) }
1922                    #[cfg(not(feature = "protocol-wlr_export_dmabuf_unstable_v1"))] { None }
1923                },
1924                "zwlr_foreign_toplevel_handle_v1" => {
1925                    #[cfg(feature = "protocol-wlr_foreign_toplevel_management_unstable_v1")] { Some(ObjectInterface::ZwlrForeignToplevelHandleV1) }
1926                    #[cfg(not(feature = "protocol-wlr_foreign_toplevel_management_unstable_v1"))] { None }
1927                },
1928                "zwlr_foreign_toplevel_manager_v1" => {
1929                    #[cfg(feature = "protocol-wlr_foreign_toplevel_management_unstable_v1")] { Some(ObjectInterface::ZwlrForeignToplevelManagerV1) }
1930                    #[cfg(not(feature = "protocol-wlr_foreign_toplevel_management_unstable_v1"))] { None }
1931                },
1932                "zwlr_gamma_control_manager_v1" => {
1933                    #[cfg(feature = "protocol-wlr_gamma_control_unstable_v1")] { Some(ObjectInterface::ZwlrGammaControlManagerV1) }
1934                    #[cfg(not(feature = "protocol-wlr_gamma_control_unstable_v1"))] { None }
1935                },
1936                "zwlr_gamma_control_v1" => {
1937                    #[cfg(feature = "protocol-wlr_gamma_control_unstable_v1")] { Some(ObjectInterface::ZwlrGammaControlV1) }
1938                    #[cfg(not(feature = "protocol-wlr_gamma_control_unstable_v1"))] { None }
1939                },
1940                "zwlr_input_inhibit_manager_v1" => {
1941                    #[cfg(feature = "protocol-wlr_input_inhibit_unstable_v1")] { Some(ObjectInterface::ZwlrInputInhibitManagerV1) }
1942                    #[cfg(not(feature = "protocol-wlr_input_inhibit_unstable_v1"))] { None }
1943                },
1944                "zwlr_input_inhibitor_v1" => {
1945                    #[cfg(feature = "protocol-wlr_input_inhibit_unstable_v1")] { Some(ObjectInterface::ZwlrInputInhibitorV1) }
1946                    #[cfg(not(feature = "protocol-wlr_input_inhibit_unstable_v1"))] { None }
1947                },
1948                "zwlr_layer_shell_v1" => {
1949                    #[cfg(feature = "protocol-wlr_layer_shell_unstable_v1")] { Some(ObjectInterface::ZwlrLayerShellV1) }
1950                    #[cfg(not(feature = "protocol-wlr_layer_shell_unstable_v1"))] { None }
1951                },
1952                "zwlr_layer_surface_v1" => {
1953                    #[cfg(feature = "protocol-wlr_layer_shell_unstable_v1")] { Some(ObjectInterface::ZwlrLayerSurfaceV1) }
1954                    #[cfg(not(feature = "protocol-wlr_layer_shell_unstable_v1"))] { None }
1955                },
1956                "zwlr_output_configuration_head_v1" => {
1957                    #[cfg(feature = "protocol-wlr_output_management_unstable_v1")] { Some(ObjectInterface::ZwlrOutputConfigurationHeadV1) }
1958                    #[cfg(not(feature = "protocol-wlr_output_management_unstable_v1"))] { None }
1959                },
1960                "zwlr_output_configuration_v1" => {
1961                    #[cfg(feature = "protocol-wlr_output_management_unstable_v1")] { Some(ObjectInterface::ZwlrOutputConfigurationV1) }
1962                    #[cfg(not(feature = "protocol-wlr_output_management_unstable_v1"))] { None }
1963                },
1964                "zwlr_output_head_v1" => {
1965                    #[cfg(feature = "protocol-wlr_output_management_unstable_v1")] { Some(ObjectInterface::ZwlrOutputHeadV1) }
1966                    #[cfg(not(feature = "protocol-wlr_output_management_unstable_v1"))] { None }
1967                },
1968                "zwlr_output_manager_v1" => {
1969                    #[cfg(feature = "protocol-wlr_output_management_unstable_v1")] { Some(ObjectInterface::ZwlrOutputManagerV1) }
1970                    #[cfg(not(feature = "protocol-wlr_output_management_unstable_v1"))] { None }
1971                },
1972                "zwlr_output_mode_v1" => {
1973                    #[cfg(feature = "protocol-wlr_output_management_unstable_v1")] { Some(ObjectInterface::ZwlrOutputModeV1) }
1974                    #[cfg(not(feature = "protocol-wlr_output_management_unstable_v1"))] { None }
1975                },
1976                "zwlr_output_power_manager_v1" => {
1977                    #[cfg(feature = "protocol-wlr_output_power_management_unstable_v1")] { Some(ObjectInterface::ZwlrOutputPowerManagerV1) }
1978                    #[cfg(not(feature = "protocol-wlr_output_power_management_unstable_v1"))] { None }
1979                },
1980                "zwlr_output_power_v1" => {
1981                    #[cfg(feature = "protocol-wlr_output_power_management_unstable_v1")] { Some(ObjectInterface::ZwlrOutputPowerV1) }
1982                    #[cfg(not(feature = "protocol-wlr_output_power_management_unstable_v1"))] { None }
1983                },
1984                "zwlr_screencopy_frame_v1" => {
1985                    #[cfg(feature = "protocol-wlr_screencopy_unstable_v1")] { Some(ObjectInterface::ZwlrScreencopyFrameV1) }
1986                    #[cfg(not(feature = "protocol-wlr_screencopy_unstable_v1"))] { None }
1987                },
1988                "zwlr_screencopy_manager_v1" => {
1989                    #[cfg(feature = "protocol-wlr_screencopy_unstable_v1")] { Some(ObjectInterface::ZwlrScreencopyManagerV1) }
1990                    #[cfg(not(feature = "protocol-wlr_screencopy_unstable_v1"))] { None }
1991                },
1992                "zwlr_virtual_pointer_manager_v1" => {
1993                    #[cfg(feature = "protocol-wlr_virtual_pointer_unstable_v1")] { Some(ObjectInterface::ZwlrVirtualPointerManagerV1) }
1994                    #[cfg(not(feature = "protocol-wlr_virtual_pointer_unstable_v1"))] { None }
1995                },
1996                "zwlr_virtual_pointer_v1" => {
1997                    #[cfg(feature = "protocol-wlr_virtual_pointer_unstable_v1")] { Some(ObjectInterface::ZwlrVirtualPointerV1) }
1998                    #[cfg(not(feature = "protocol-wlr_virtual_pointer_unstable_v1"))] { None }
1999                },
2000                "wlproxy_sync_v1" => {
2001                    #[cfg(feature = "protocol-wlproxy_sync_v1")] { Some(ObjectInterface::WlproxySyncV1) }
2002                    #[cfg(not(feature = "protocol-wlproxy_sync_v1"))] { None }
2003                },
2004                "wlproxy_test" => {
2005                    #[cfg(test)] { Some(ObjectInterface::WlproxyTest) }
2006                    #[cfg(not(test))] { None }
2007                },
2008                "wlproxy_test_array_echo" => {
2009                    #[cfg(test)] { Some(ObjectInterface::WlproxyTestArrayEcho) }
2010                    #[cfg(not(test))] { None }
2011                },
2012                "wlproxy_test_dummy" => {
2013                    #[cfg(test)] { Some(ObjectInterface::WlproxyTestDummy) }
2014                    #[cfg(not(test))] { None }
2015                },
2016                "wlproxy_test_fd_echo" => {
2017                    #[cfg(test)] { Some(ObjectInterface::WlproxyTestFdEcho) }
2018                    #[cfg(not(test))] { None }
2019                },
2020                "wlproxy_test_hops" => {
2021                    #[cfg(test)] { Some(ObjectInterface::WlproxyTestHops) }
2022                    #[cfg(not(test))] { None }
2023                },
2024                "wlproxy_test_non_forward" => {
2025                    #[cfg(test)] { Some(ObjectInterface::WlproxyTestNonForward) }
2026                    #[cfg(not(test))] { None }
2027                },
2028                "wlproxy_test_object_echo" => {
2029                    #[cfg(test)] { Some(ObjectInterface::WlproxyTestObjectEcho) }
2030                    #[cfg(not(test))] { None }
2031                },
2032                "wlproxy_test_server_sent" => {
2033                    #[cfg(test)] { Some(ObjectInterface::WlproxyTestServerSent) }
2034                    #[cfg(not(test))] { None }
2035                },
2036                "river_input_device_v1" => {
2037                    #[cfg(feature = "protocol-river_input_management_v1")] { Some(ObjectInterface::RiverInputDeviceV1) }
2038                    #[cfg(not(feature = "protocol-river_input_management_v1"))] { None }
2039                },
2040                "river_input_manager_v1" => {
2041                    #[cfg(feature = "protocol-river_input_management_v1")] { Some(ObjectInterface::RiverInputManagerV1) }
2042                    #[cfg(not(feature = "protocol-river_input_management_v1"))] { None }
2043                },
2044                "river_layer_shell_output_v1" => {
2045                    #[cfg(feature = "protocol-river_layer_shell_v1")] { Some(ObjectInterface::RiverLayerShellOutputV1) }
2046                    #[cfg(not(feature = "protocol-river_layer_shell_v1"))] { None }
2047                },
2048                "river_layer_shell_seat_v1" => {
2049                    #[cfg(feature = "protocol-river_layer_shell_v1")] { Some(ObjectInterface::RiverLayerShellSeatV1) }
2050                    #[cfg(not(feature = "protocol-river_layer_shell_v1"))] { None }
2051                },
2052                "river_layer_shell_v1" => {
2053                    #[cfg(feature = "protocol-river_layer_shell_v1")] { Some(ObjectInterface::RiverLayerShellV1) }
2054                    #[cfg(not(feature = "protocol-river_layer_shell_v1"))] { None }
2055                },
2056                "river_libinput_accel_config_v1" => {
2057                    #[cfg(feature = "protocol-river_libinput_config_v1")] { Some(ObjectInterface::RiverLibinputAccelConfigV1) }
2058                    #[cfg(not(feature = "protocol-river_libinput_config_v1"))] { None }
2059                },
2060                "river_libinput_config_v1" => {
2061                    #[cfg(feature = "protocol-river_libinput_config_v1")] { Some(ObjectInterface::RiverLibinputConfigV1) }
2062                    #[cfg(not(feature = "protocol-river_libinput_config_v1"))] { None }
2063                },
2064                "river_libinput_device_v1" => {
2065                    #[cfg(feature = "protocol-river_libinput_config_v1")] { Some(ObjectInterface::RiverLibinputDeviceV1) }
2066                    #[cfg(not(feature = "protocol-river_libinput_config_v1"))] { None }
2067                },
2068                "river_libinput_result_v1" => {
2069                    #[cfg(feature = "protocol-river_libinput_config_v1")] { Some(ObjectInterface::RiverLibinputResultV1) }
2070                    #[cfg(not(feature = "protocol-river_libinput_config_v1"))] { None }
2071                },
2072                "river_decoration_v1" => {
2073                    #[cfg(feature = "protocol-river_window_management_v1")] { Some(ObjectInterface::RiverDecorationV1) }
2074                    #[cfg(not(feature = "protocol-river_window_management_v1"))] { None }
2075                },
2076                "river_node_v1" => {
2077                    #[cfg(feature = "protocol-river_window_management_v1")] { Some(ObjectInterface::RiverNodeV1) }
2078                    #[cfg(not(feature = "protocol-river_window_management_v1"))] { None }
2079                },
2080                "river_output_v1" => {
2081                    #[cfg(feature = "protocol-river_window_management_v1")] { Some(ObjectInterface::RiverOutputV1) }
2082                    #[cfg(not(feature = "protocol-river_window_management_v1"))] { None }
2083                },
2084                "river_pointer_binding_v1" => {
2085                    #[cfg(feature = "protocol-river_window_management_v1")] { Some(ObjectInterface::RiverPointerBindingV1) }
2086                    #[cfg(not(feature = "protocol-river_window_management_v1"))] { None }
2087                },
2088                "river_seat_v1" => {
2089                    #[cfg(feature = "protocol-river_window_management_v1")] { Some(ObjectInterface::RiverSeatV1) }
2090                    #[cfg(not(feature = "protocol-river_window_management_v1"))] { None }
2091                },
2092                "river_shell_surface_v1" => {
2093                    #[cfg(feature = "protocol-river_window_management_v1")] { Some(ObjectInterface::RiverShellSurfaceV1) }
2094                    #[cfg(not(feature = "protocol-river_window_management_v1"))] { None }
2095                },
2096                "river_window_manager_v1" => {
2097                    #[cfg(feature = "protocol-river_window_management_v1")] { Some(ObjectInterface::RiverWindowManagerV1) }
2098                    #[cfg(not(feature = "protocol-river_window_management_v1"))] { None }
2099                },
2100                "river_window_v1" => {
2101                    #[cfg(feature = "protocol-river_window_management_v1")] { Some(ObjectInterface::RiverWindowV1) }
2102                    #[cfg(not(feature = "protocol-river_window_management_v1"))] { None }
2103                },
2104                "river_xkb_binding_v1" => {
2105                    #[cfg(feature = "protocol-river_xkb_bindings_v1")] { Some(ObjectInterface::RiverXkbBindingV1) }
2106                    #[cfg(not(feature = "protocol-river_xkb_bindings_v1"))] { None }
2107                },
2108                "river_xkb_bindings_seat_v1" => {
2109                    #[cfg(feature = "protocol-river_xkb_bindings_v1")] { Some(ObjectInterface::RiverXkbBindingsSeatV1) }
2110                    #[cfg(not(feature = "protocol-river_xkb_bindings_v1"))] { None }
2111                },
2112                "river_xkb_bindings_v1" => {
2113                    #[cfg(feature = "protocol-river_xkb_bindings_v1")] { Some(ObjectInterface::RiverXkbBindingsV1) }
2114                    #[cfg(not(feature = "protocol-river_xkb_bindings_v1"))] { None }
2115                },
2116                "river_xkb_config_v1" => {
2117                    #[cfg(feature = "protocol-river_xkb_config_v1")] { Some(ObjectInterface::RiverXkbConfigV1) }
2118                    #[cfg(not(feature = "protocol-river_xkb_config_v1"))] { None }
2119                },
2120                "river_xkb_keyboard_v1" => {
2121                    #[cfg(feature = "protocol-river_xkb_config_v1")] { Some(ObjectInterface::RiverXkbKeyboardV1) }
2122                    #[cfg(not(feature = "protocol-river_xkb_config_v1"))] { None }
2123                },
2124                "river_xkb_keymap_v1" => {
2125                    #[cfg(feature = "protocol-river_xkb_config_v1")] { Some(ObjectInterface::RiverXkbKeymapV1) }
2126                    #[cfg(not(feature = "protocol-river_xkb_config_v1"))] { None }
2127                },
2128                "ivi_application" => {
2129                    #[cfg(feature = "protocol-ivi_application")] { Some(ObjectInterface::IviApplication) }
2130                    #[cfg(not(feature = "protocol-ivi_application"))] { None }
2131                },
2132                "ivi_surface" => {
2133                    #[cfg(feature = "protocol-ivi_application")] { Some(ObjectInterface::IviSurface) }
2134                    #[cfg(not(feature = "protocol-ivi_application"))] { None }
2135                },
2136                "ivi_hmi_controller" => {
2137                    #[cfg(feature = "protocol-ivi_hmi_controller")] { Some(ObjectInterface::IviHmiController) }
2138                    #[cfg(not(feature = "protocol-ivi_hmi_controller"))] { None }
2139                },
2140                "weston_content_protection" => {
2141                    #[cfg(feature = "protocol-weston_content_protection")] { Some(ObjectInterface::WestonContentProtection) }
2142                    #[cfg(not(feature = "protocol-weston_content_protection"))] { None }
2143                },
2144                "weston_protected_surface" => {
2145                    #[cfg(feature = "protocol-weston_content_protection")] { Some(ObjectInterface::WestonProtectedSurface) }
2146                    #[cfg(not(feature = "protocol-weston_content_protection"))] { None }
2147                },
2148                "weston_debug_stream_v1" => {
2149                    #[cfg(feature = "protocol-weston_debug")] { Some(ObjectInterface::WestonDebugStreamV1) }
2150                    #[cfg(not(feature = "protocol-weston_debug"))] { None }
2151                },
2152                "weston_debug_v1" => {
2153                    #[cfg(feature = "protocol-weston_debug")] { Some(ObjectInterface::WestonDebugV1) }
2154                    #[cfg(not(feature = "protocol-weston_debug"))] { None }
2155                },
2156                "weston_desktop_shell" => {
2157                    #[cfg(feature = "protocol-weston_desktop")] { Some(ObjectInterface::WestonDesktopShell) }
2158                    #[cfg(not(feature = "protocol-weston_desktop"))] { None }
2159                },
2160                "weston_screensaver" => {
2161                    #[cfg(feature = "protocol-weston_desktop")] { Some(ObjectInterface::WestonScreensaver) }
2162                    #[cfg(not(feature = "protocol-weston_desktop"))] { None }
2163                },
2164                "weston_direct_display_v1" => {
2165                    #[cfg(feature = "protocol-weston_direct_display")] { Some(ObjectInterface::WestonDirectDisplayV1) }
2166                    #[cfg(not(feature = "protocol-weston_direct_display"))] { None }
2167                },
2168                "weston_capture_source_v1" => {
2169                    #[cfg(feature = "protocol-weston_output_capture")] { Some(ObjectInterface::WestonCaptureSourceV1) }
2170                    #[cfg(not(feature = "protocol-weston_output_capture"))] { None }
2171                },
2172                "weston_capture_v1" => {
2173                    #[cfg(feature = "protocol-weston_output_capture")] { Some(ObjectInterface::WestonCaptureV1) }
2174                    #[cfg(not(feature = "protocol-weston_output_capture"))] { None }
2175                },
2176                "weston_test" => {
2177                    #[cfg(feature = "protocol-weston_test")] { Some(ObjectInterface::WestonTest) }
2178                    #[cfg(not(feature = "protocol-weston_test"))] { None }
2179                },
2180                "weston_test_runner" => {
2181                    #[cfg(feature = "protocol-weston_test")] { Some(ObjectInterface::WestonTestRunner) }
2182                    #[cfg(not(feature = "protocol-weston_test"))] { None }
2183                },
2184                "weston_touch_calibration" => {
2185                    #[cfg(feature = "protocol-weston_touch_calibration")] { Some(ObjectInterface::WestonTouchCalibration) }
2186                    #[cfg(not(feature = "protocol-weston_touch_calibration"))] { None }
2187                },
2188                "weston_touch_calibrator" => {
2189                    #[cfg(feature = "protocol-weston_touch_calibration")] { Some(ObjectInterface::WestonTouchCalibrator) }
2190                    #[cfg(not(feature = "protocol-weston_touch_calibration"))] { None }
2191                },
2192                "weston_touch_coordinate" => {
2193                    #[cfg(feature = "protocol-weston_touch_calibration")] { Some(ObjectInterface::WestonTouchCoordinate) }
2194                    #[cfg(not(feature = "protocol-weston_touch_calibration"))] { None }
2195                },
2196                "cosmic_a11y_manager_v1" => {
2197                    #[cfg(feature = "protocol-cosmic_a11y_v1")] { Some(ObjectInterface::CosmicA11yManagerV1) }
2198                    #[cfg(not(feature = "protocol-cosmic_a11y_v1"))] { None }
2199                },
2200                "cosmic_corner_radius_manager_v1" => {
2201                    #[cfg(feature = "protocol-cosmic_corner_radius_v1")] { Some(ObjectInterface::CosmicCornerRadiusManagerV1) }
2202                    #[cfg(not(feature = "protocol-cosmic_corner_radius_v1"))] { None }
2203                },
2204                "cosmic_corner_radius_toplevel_v1" => {
2205                    #[cfg(feature = "protocol-cosmic_corner_radius_v1")] { Some(ObjectInterface::CosmicCornerRadiusToplevelV1) }
2206                    #[cfg(not(feature = "protocol-cosmic_corner_radius_v1"))] { None }
2207                },
2208                "zcosmic_workspace_image_capture_source_manager_v1" => {
2209                    #[cfg(feature = "protocol-cosmic_image_source_unstable_v1")] { Some(ObjectInterface::ZcosmicWorkspaceImageCaptureSourceManagerV1) }
2210                    #[cfg(not(feature = "protocol-cosmic_image_source_unstable_v1"))] { None }
2211                },
2212                "zcosmic_output_configuration_head_v1" => {
2213                    #[cfg(feature = "protocol-cosmic_output_management_unstable_v1")] { Some(ObjectInterface::ZcosmicOutputConfigurationHeadV1) }
2214                    #[cfg(not(feature = "protocol-cosmic_output_management_unstable_v1"))] { None }
2215                },
2216                "zcosmic_output_configuration_v1" => {
2217                    #[cfg(feature = "protocol-cosmic_output_management_unstable_v1")] { Some(ObjectInterface::ZcosmicOutputConfigurationV1) }
2218                    #[cfg(not(feature = "protocol-cosmic_output_management_unstable_v1"))] { None }
2219                },
2220                "zcosmic_output_head_v1" => {
2221                    #[cfg(feature = "protocol-cosmic_output_management_unstable_v1")] { Some(ObjectInterface::ZcosmicOutputHeadV1) }
2222                    #[cfg(not(feature = "protocol-cosmic_output_management_unstable_v1"))] { None }
2223                },
2224                "zcosmic_output_manager_v1" => {
2225                    #[cfg(feature = "protocol-cosmic_output_management_unstable_v1")] { Some(ObjectInterface::ZcosmicOutputManagerV1) }
2226                    #[cfg(not(feature = "protocol-cosmic_output_management_unstable_v1"))] { None }
2227                },
2228                "zcosmic_overlap_notification_v1" => {
2229                    #[cfg(feature = "protocol-cosmic_overlap_notify_unstable_v1")] { Some(ObjectInterface::ZcosmicOverlapNotificationV1) }
2230                    #[cfg(not(feature = "protocol-cosmic_overlap_notify_unstable_v1"))] { None }
2231                },
2232                "zcosmic_overlap_notify_v1" => {
2233                    #[cfg(feature = "protocol-cosmic_overlap_notify_unstable_v1")] { Some(ObjectInterface::ZcosmicOverlapNotifyV1) }
2234                    #[cfg(not(feature = "protocol-cosmic_overlap_notify_unstable_v1"))] { None }
2235                },
2236                "zcosmic_workspace_handle_v2" => {
2237                    #[cfg(feature = "protocol-cosmic_workspace_unstable_v2")] { Some(ObjectInterface::ZcosmicWorkspaceHandleV2) }
2238                    #[cfg(not(feature = "protocol-cosmic_workspace_unstable_v2"))] { None }
2239                },
2240                "zcosmic_workspace_manager_v2" => {
2241                    #[cfg(feature = "protocol-cosmic_workspace_unstable_v2")] { Some(ObjectInterface::ZcosmicWorkspaceManagerV2) }
2242                    #[cfg(not(feature = "protocol-cosmic_workspace_unstable_v2"))] { None }
2243                },
2244            };
2245            INTERFACES.get(interface).copied().flatten()
2246        }
2247
2248        fn create_object(self, state: &Rc<State>, version: u32) -> Result<Rc<dyn Object>, ObjectError> {
2249            match self {
2250                #[cfg(feature = "protocol-hyprland_ctm_control_v1")]
2251                Self::HyprlandCtmControlManagerV1 => {
2252                    if version > HyprlandCtmControlManagerV1::XML_VERSION {
2253                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2254                    }
2255                    Ok(HyprlandCtmControlManagerV1::new(state, version))
2256                }
2257                #[cfg(feature = "protocol-hyprland_focus_grab_v1")]
2258                Self::HyprlandFocusGrabManagerV1 => {
2259                    if version > HyprlandFocusGrabManagerV1::XML_VERSION {
2260                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2261                    }
2262                    Ok(HyprlandFocusGrabManagerV1::new(state, version))
2263                }
2264                #[cfg(feature = "protocol-hyprland_focus_grab_v1")]
2265                Self::HyprlandFocusGrabV1 => {
2266                    if version > HyprlandFocusGrabV1::XML_VERSION {
2267                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2268                    }
2269                    Ok(HyprlandFocusGrabV1::new(state, version))
2270                }
2271                #[cfg(feature = "protocol-hyprland_global_shortcuts_v1")]
2272                Self::HyprlandGlobalShortcutV1 => {
2273                    if version > HyprlandGlobalShortcutV1::XML_VERSION {
2274                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2275                    }
2276                    Ok(HyprlandGlobalShortcutV1::new(state, version))
2277                }
2278                #[cfg(feature = "protocol-hyprland_global_shortcuts_v1")]
2279                Self::HyprlandGlobalShortcutsManagerV1 => {
2280                    if version > HyprlandGlobalShortcutsManagerV1::XML_VERSION {
2281                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2282                    }
2283                    Ok(HyprlandGlobalShortcutsManagerV1::new(state, version))
2284                }
2285                #[cfg(feature = "protocol-hyprland_input_capture_v1")]
2286                Self::HyprlandInputCaptureManagerV1 => {
2287                    if version > HyprlandInputCaptureManagerV1::XML_VERSION {
2288                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2289                    }
2290                    Ok(HyprlandInputCaptureManagerV1::new(state, version))
2291                }
2292                #[cfg(feature = "protocol-hyprland_input_capture_v1")]
2293                Self::HyprlandInputCaptureV1 => {
2294                    if version > HyprlandInputCaptureV1::XML_VERSION {
2295                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2296                    }
2297                    Ok(HyprlandInputCaptureV1::new(state, version))
2298                }
2299                #[cfg(feature = "protocol-hyprland_lock_notify_v1")]
2300                Self::HyprlandLockNotificationV1 => {
2301                    if version > HyprlandLockNotificationV1::XML_VERSION {
2302                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2303                    }
2304                    Ok(HyprlandLockNotificationV1::new(state, version))
2305                }
2306                #[cfg(feature = "protocol-hyprland_lock_notify_v1")]
2307                Self::HyprlandLockNotifierV1 => {
2308                    if version > HyprlandLockNotifierV1::XML_VERSION {
2309                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2310                    }
2311                    Ok(HyprlandLockNotifierV1::new(state, version))
2312                }
2313                #[cfg(feature = "protocol-hyprland_surface_v1")]
2314                Self::HyprlandSurfaceManagerV1 => {
2315                    if version > HyprlandSurfaceManagerV1::XML_VERSION {
2316                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2317                    }
2318                    Ok(HyprlandSurfaceManagerV1::new(state, version))
2319                }
2320                #[cfg(feature = "protocol-hyprland_surface_v1")]
2321                Self::HyprlandSurfaceV1 => {
2322                    if version > HyprlandSurfaceV1::XML_VERSION {
2323                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2324                    }
2325                    Ok(HyprlandSurfaceV1::new(state, version))
2326                }
2327                #[cfg(feature = "protocol-hyprland_toplevel_export_v1")]
2328                Self::HyprlandToplevelExportFrameV1 => {
2329                    if version > HyprlandToplevelExportFrameV1::XML_VERSION {
2330                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2331                    }
2332                    Ok(HyprlandToplevelExportFrameV1::new(state, version))
2333                }
2334                #[cfg(feature = "protocol-hyprland_toplevel_export_v1")]
2335                Self::HyprlandToplevelExportManagerV1 => {
2336                    if version > HyprlandToplevelExportManagerV1::XML_VERSION {
2337                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2338                    }
2339                    Ok(HyprlandToplevelExportManagerV1::new(state, version))
2340                }
2341                #[cfg(feature = "protocol-hyprland_toplevel_mapping_v1")]
2342                Self::HyprlandToplevelMappingManagerV1 => {
2343                    if version > HyprlandToplevelMappingManagerV1::XML_VERSION {
2344                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2345                    }
2346                    Ok(HyprlandToplevelMappingManagerV1::new(state, version))
2347                }
2348                #[cfg(feature = "protocol-hyprland_toplevel_mapping_v1")]
2349                Self::HyprlandToplevelWindowMappingHandleV1 => {
2350                    if version > HyprlandToplevelWindowMappingHandleV1::XML_VERSION {
2351                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2352                    }
2353                    Ok(HyprlandToplevelWindowMappingHandleV1::new(state, version))
2354                }
2355                #[cfg(feature = "protocol-jay_popup_ext_v1")]
2356                Self::JayPopupExtManagerV1 => {
2357                    if version > JayPopupExtManagerV1::XML_VERSION {
2358                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2359                    }
2360                    Ok(JayPopupExtManagerV1::new(state, version))
2361                }
2362                #[cfg(feature = "protocol-jay_popup_ext_v1")]
2363                Self::JayPopupExtV1 => {
2364                    if version > JayPopupExtV1::XML_VERSION {
2365                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2366                    }
2367                    Ok(JayPopupExtV1::new(state, version))
2368                }
2369                #[cfg(feature = "protocol-jay_tray_v1")]
2370                Self::JayTrayItemV1 => {
2371                    if version > JayTrayItemV1::XML_VERSION {
2372                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2373                    }
2374                    Ok(JayTrayItemV1::new(state, version))
2375                }
2376                #[cfg(feature = "protocol-jay_tray_v1")]
2377                Self::JayTrayV1 => {
2378                    if version > JayTrayV1::XML_VERSION {
2379                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2380                    }
2381                    Ok(JayTrayV1::new(state, version))
2382                }
2383                #[cfg(feature = "protocol-drm")]
2384                Self::WlDrm => {
2385                    if version > WlDrm::XML_VERSION {
2386                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2387                    }
2388                    Ok(WlDrm::new(state, version))
2389                }
2390                #[cfg(feature = "protocol-input_method_unstable_v2")]
2391                Self::ZwpInputMethodKeyboardGrabV2 => {
2392                    if version > ZwpInputMethodKeyboardGrabV2::XML_VERSION {
2393                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2394                    }
2395                    Ok(ZwpInputMethodKeyboardGrabV2::new(state, version))
2396                }
2397                #[cfg(feature = "protocol-input_method_unstable_v2")]
2398                Self::ZwpInputMethodManagerV2 => {
2399                    if version > ZwpInputMethodManagerV2::XML_VERSION {
2400                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2401                    }
2402                    Ok(ZwpInputMethodManagerV2::new(state, version))
2403                }
2404                #[cfg(feature = "protocol-input_method_unstable_v2")]
2405                Self::ZwpInputMethodV2 => {
2406                    if version > ZwpInputMethodV2::XML_VERSION {
2407                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2408                    }
2409                    Ok(ZwpInputMethodV2::new(state, version))
2410                }
2411                #[cfg(feature = "protocol-input_method_unstable_v2")]
2412                Self::ZwpInputPopupSurfaceV2 => {
2413                    if version > ZwpInputPopupSurfaceV2::XML_VERSION {
2414                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2415                    }
2416                    Ok(ZwpInputPopupSurfaceV2::new(state, version))
2417                }
2418                #[cfg(feature = "protocol-org_kde_kwin_server_decoration_v1")]
2419                Self::OrgKdeKwinServerDecoration => {
2420                    if version > OrgKdeKwinServerDecoration::XML_VERSION {
2421                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2422                    }
2423                    Ok(OrgKdeKwinServerDecoration::new(state, version))
2424                }
2425                #[cfg(feature = "protocol-org_kde_kwin_server_decoration_v1")]
2426                Self::OrgKdeKwinServerDecorationManager => {
2427                    if version > OrgKdeKwinServerDecorationManager::XML_VERSION {
2428                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2429                    }
2430                    Ok(OrgKdeKwinServerDecorationManager::new(state, version))
2431                }
2432                #[cfg(feature = "protocol-virtual_keyboard_unstable_v1")]
2433                Self::ZwpVirtualKeyboardManagerV1 => {
2434                    if version > ZwpVirtualKeyboardManagerV1::XML_VERSION {
2435                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2436                    }
2437                    Ok(ZwpVirtualKeyboardManagerV1::new(state, version))
2438                }
2439                #[cfg(feature = "protocol-virtual_keyboard_unstable_v1")]
2440                Self::ZwpVirtualKeyboardV1 => {
2441                    if version > ZwpVirtualKeyboardV1::XML_VERSION {
2442                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2443                    }
2444                    Ok(ZwpVirtualKeyboardV1::new(state, version))
2445                }
2446                Self::WlBuffer => {
2447                    if version > WlBuffer::XML_VERSION {
2448                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2449                    }
2450                    Ok(WlBuffer::new(state, version))
2451                }
2452                Self::WlCallback => {
2453                    if version > WlCallback::XML_VERSION {
2454                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2455                    }
2456                    Ok(WlCallback::new(state, version))
2457                }
2458                Self::WlCompositor => {
2459                    if version > WlCompositor::XML_VERSION {
2460                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2461                    }
2462                    Ok(WlCompositor::new(state, version))
2463                }
2464                Self::WlDataDevice => {
2465                    if version > WlDataDevice::XML_VERSION {
2466                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2467                    }
2468                    Ok(WlDataDevice::new(state, version))
2469                }
2470                Self::WlDataDeviceManager => {
2471                    if version > WlDataDeviceManager::XML_VERSION {
2472                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2473                    }
2474                    Ok(WlDataDeviceManager::new(state, version))
2475                }
2476                Self::WlDataOffer => {
2477                    if version > WlDataOffer::XML_VERSION {
2478                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2479                    }
2480                    Ok(WlDataOffer::new(state, version))
2481                }
2482                Self::WlDataSource => {
2483                    if version > WlDataSource::XML_VERSION {
2484                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2485                    }
2486                    Ok(WlDataSource::new(state, version))
2487                }
2488                Self::WlDisplay => {
2489                    if version > WlDisplay::XML_VERSION {
2490                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2491                    }
2492                    Ok(WlDisplay::new(state, version))
2493                }
2494                Self::WlFixes => {
2495                    if version > WlFixes::XML_VERSION {
2496                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2497                    }
2498                    Ok(WlFixes::new(state, version))
2499                }
2500                Self::WlKeyboard => {
2501                    if version > WlKeyboard::XML_VERSION {
2502                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2503                    }
2504                    Ok(WlKeyboard::new(state, version))
2505                }
2506                Self::WlOutput => {
2507                    if version > WlOutput::XML_VERSION {
2508                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2509                    }
2510                    Ok(WlOutput::new(state, version))
2511                }
2512                Self::WlPointer => {
2513                    if version > WlPointer::XML_VERSION {
2514                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2515                    }
2516                    Ok(WlPointer::new(state, version))
2517                }
2518                Self::WlRegion => {
2519                    if version > WlRegion::XML_VERSION {
2520                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2521                    }
2522                    Ok(WlRegion::new(state, version))
2523                }
2524                Self::WlRegistry => {
2525                    if version > WlRegistry::XML_VERSION {
2526                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2527                    }
2528                    Ok(WlRegistry::new(state, version))
2529                }
2530                Self::WlSeat => {
2531                    if version > WlSeat::XML_VERSION {
2532                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2533                    }
2534                    Ok(WlSeat::new(state, version))
2535                }
2536                Self::WlShell => {
2537                    if version > WlShell::XML_VERSION {
2538                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2539                    }
2540                    Ok(WlShell::new(state, version))
2541                }
2542                Self::WlShellSurface => {
2543                    if version > WlShellSurface::XML_VERSION {
2544                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2545                    }
2546                    Ok(WlShellSurface::new(state, version))
2547                }
2548                Self::WlShm => {
2549                    if version > WlShm::XML_VERSION {
2550                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2551                    }
2552                    Ok(WlShm::new(state, version))
2553                }
2554                Self::WlShmPool => {
2555                    if version > WlShmPool::XML_VERSION {
2556                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2557                    }
2558                    Ok(WlShmPool::new(state, version))
2559                }
2560                Self::WlSubcompositor => {
2561                    if version > WlSubcompositor::XML_VERSION {
2562                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2563                    }
2564                    Ok(WlSubcompositor::new(state, version))
2565                }
2566                Self::WlSubsurface => {
2567                    if version > WlSubsurface::XML_VERSION {
2568                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2569                    }
2570                    Ok(WlSubsurface::new(state, version))
2571                }
2572                Self::WlSurface => {
2573                    if version > WlSurface::XML_VERSION {
2574                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2575                    }
2576                    Ok(WlSurface::new(state, version))
2577                }
2578                Self::WlTouch => {
2579                    if version > WlTouch::XML_VERSION {
2580                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2581                    }
2582                    Ok(WlTouch::new(state, version))
2583                }
2584                #[cfg(feature = "protocol-alpha_modifier_v1")]
2585                Self::WpAlphaModifierSurfaceV1 => {
2586                    if version > WpAlphaModifierSurfaceV1::XML_VERSION {
2587                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2588                    }
2589                    Ok(WpAlphaModifierSurfaceV1::new(state, version))
2590                }
2591                #[cfg(feature = "protocol-alpha_modifier_v1")]
2592                Self::WpAlphaModifierV1 => {
2593                    if version > WpAlphaModifierV1::XML_VERSION {
2594                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2595                    }
2596                    Ok(WpAlphaModifierV1::new(state, version))
2597                }
2598                #[cfg(feature = "protocol-color_management_v1")]
2599                Self::WpColorManagementOutputV1 => {
2600                    if version > WpColorManagementOutputV1::XML_VERSION {
2601                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2602                    }
2603                    Ok(WpColorManagementOutputV1::new(state, version))
2604                }
2605                #[cfg(feature = "protocol-color_management_v1")]
2606                Self::WpColorManagementSurfaceFeedbackV1 => {
2607                    if version > WpColorManagementSurfaceFeedbackV1::XML_VERSION {
2608                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2609                    }
2610                    Ok(WpColorManagementSurfaceFeedbackV1::new(state, version))
2611                }
2612                #[cfg(feature = "protocol-color_management_v1")]
2613                Self::WpColorManagementSurfaceV1 => {
2614                    if version > WpColorManagementSurfaceV1::XML_VERSION {
2615                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2616                    }
2617                    Ok(WpColorManagementSurfaceV1::new(state, version))
2618                }
2619                #[cfg(feature = "protocol-color_management_v1")]
2620                Self::WpColorManagerV1 => {
2621                    if version > WpColorManagerV1::XML_VERSION {
2622                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2623                    }
2624                    Ok(WpColorManagerV1::new(state, version))
2625                }
2626                #[cfg(feature = "protocol-color_management_v1")]
2627                Self::WpImageDescriptionCreatorIccV1 => {
2628                    if version > WpImageDescriptionCreatorIccV1::XML_VERSION {
2629                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2630                    }
2631                    Ok(WpImageDescriptionCreatorIccV1::new(state, version))
2632                }
2633                #[cfg(feature = "protocol-color_management_v1")]
2634                Self::WpImageDescriptionCreatorParamsV1 => {
2635                    if version > WpImageDescriptionCreatorParamsV1::XML_VERSION {
2636                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2637                    }
2638                    Ok(WpImageDescriptionCreatorParamsV1::new(state, version))
2639                }
2640                #[cfg(feature = "protocol-color_management_v1")]
2641                Self::WpImageDescriptionInfoV1 => {
2642                    if version > WpImageDescriptionInfoV1::XML_VERSION {
2643                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2644                    }
2645                    Ok(WpImageDescriptionInfoV1::new(state, version))
2646                }
2647                #[cfg(feature = "protocol-color_management_v1")]
2648                Self::WpImageDescriptionReferenceV1 => {
2649                    if version > WpImageDescriptionReferenceV1::XML_VERSION {
2650                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2651                    }
2652                    Ok(WpImageDescriptionReferenceV1::new(state, version))
2653                }
2654                #[cfg(feature = "protocol-color_management_v1")]
2655                Self::WpImageDescriptionV1 => {
2656                    if version > WpImageDescriptionV1::XML_VERSION {
2657                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2658                    }
2659                    Ok(WpImageDescriptionV1::new(state, version))
2660                }
2661                #[cfg(feature = "protocol-color_representation_v1")]
2662                Self::WpColorRepresentationManagerV1 => {
2663                    if version > WpColorRepresentationManagerV1::XML_VERSION {
2664                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2665                    }
2666                    Ok(WpColorRepresentationManagerV1::new(state, version))
2667                }
2668                #[cfg(feature = "protocol-color_representation_v1")]
2669                Self::WpColorRepresentationSurfaceV1 => {
2670                    if version > WpColorRepresentationSurfaceV1::XML_VERSION {
2671                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2672                    }
2673                    Ok(WpColorRepresentationSurfaceV1::new(state, version))
2674                }
2675                #[cfg(feature = "protocol-commit_timing_v1")]
2676                Self::WpCommitTimerV1 => {
2677                    if version > WpCommitTimerV1::XML_VERSION {
2678                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2679                    }
2680                    Ok(WpCommitTimerV1::new(state, version))
2681                }
2682                #[cfg(feature = "protocol-commit_timing_v1")]
2683                Self::WpCommitTimingManagerV1 => {
2684                    if version > WpCommitTimingManagerV1::XML_VERSION {
2685                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2686                    }
2687                    Ok(WpCommitTimingManagerV1::new(state, version))
2688                }
2689                #[cfg(feature = "protocol-content_type_v1")]
2690                Self::WpContentTypeManagerV1 => {
2691                    if version > WpContentTypeManagerV1::XML_VERSION {
2692                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2693                    }
2694                    Ok(WpContentTypeManagerV1::new(state, version))
2695                }
2696                #[cfg(feature = "protocol-content_type_v1")]
2697                Self::WpContentTypeV1 => {
2698                    if version > WpContentTypeV1::XML_VERSION {
2699                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2700                    }
2701                    Ok(WpContentTypeV1::new(state, version))
2702                }
2703                #[cfg(feature = "protocol-cursor_shape_v1")]
2704                Self::WpCursorShapeDeviceV1 => {
2705                    if version > WpCursorShapeDeviceV1::XML_VERSION {
2706                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2707                    }
2708                    Ok(WpCursorShapeDeviceV1::new(state, version))
2709                }
2710                #[cfg(feature = "protocol-cursor_shape_v1")]
2711                Self::WpCursorShapeManagerV1 => {
2712                    if version > WpCursorShapeManagerV1::XML_VERSION {
2713                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2714                    }
2715                    Ok(WpCursorShapeManagerV1::new(state, version))
2716                }
2717                #[cfg(feature = "protocol-drm_lease_v1")]
2718                Self::WpDrmLeaseConnectorV1 => {
2719                    if version > WpDrmLeaseConnectorV1::XML_VERSION {
2720                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2721                    }
2722                    Ok(WpDrmLeaseConnectorV1::new(state, version))
2723                }
2724                #[cfg(feature = "protocol-drm_lease_v1")]
2725                Self::WpDrmLeaseDeviceV1 => {
2726                    if version > WpDrmLeaseDeviceV1::XML_VERSION {
2727                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2728                    }
2729                    Ok(WpDrmLeaseDeviceV1::new(state, version))
2730                }
2731                #[cfg(feature = "protocol-drm_lease_v1")]
2732                Self::WpDrmLeaseRequestV1 => {
2733                    if version > WpDrmLeaseRequestV1::XML_VERSION {
2734                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2735                    }
2736                    Ok(WpDrmLeaseRequestV1::new(state, version))
2737                }
2738                #[cfg(feature = "protocol-drm_lease_v1")]
2739                Self::WpDrmLeaseV1 => {
2740                    if version > WpDrmLeaseV1::XML_VERSION {
2741                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2742                    }
2743                    Ok(WpDrmLeaseV1::new(state, version))
2744                }
2745                #[cfg(feature = "protocol-ext_background_effect_v1")]
2746                Self::ExtBackgroundEffectManagerV1 => {
2747                    if version > ExtBackgroundEffectManagerV1::XML_VERSION {
2748                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2749                    }
2750                    Ok(ExtBackgroundEffectManagerV1::new(state, version))
2751                }
2752                #[cfg(feature = "protocol-ext_background_effect_v1")]
2753                Self::ExtBackgroundEffectSurfaceV1 => {
2754                    if version > ExtBackgroundEffectSurfaceV1::XML_VERSION {
2755                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2756                    }
2757                    Ok(ExtBackgroundEffectSurfaceV1::new(state, version))
2758                }
2759                #[cfg(feature = "protocol-ext_data_control_v1")]
2760                Self::ExtDataControlDeviceV1 => {
2761                    if version > ExtDataControlDeviceV1::XML_VERSION {
2762                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2763                    }
2764                    Ok(ExtDataControlDeviceV1::new(state, version))
2765                }
2766                #[cfg(feature = "protocol-ext_data_control_v1")]
2767                Self::ExtDataControlManagerV1 => {
2768                    if version > ExtDataControlManagerV1::XML_VERSION {
2769                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2770                    }
2771                    Ok(ExtDataControlManagerV1::new(state, version))
2772                }
2773                #[cfg(feature = "protocol-ext_data_control_v1")]
2774                Self::ExtDataControlOfferV1 => {
2775                    if version > ExtDataControlOfferV1::XML_VERSION {
2776                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2777                    }
2778                    Ok(ExtDataControlOfferV1::new(state, version))
2779                }
2780                #[cfg(feature = "protocol-ext_data_control_v1")]
2781                Self::ExtDataControlSourceV1 => {
2782                    if version > ExtDataControlSourceV1::XML_VERSION {
2783                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2784                    }
2785                    Ok(ExtDataControlSourceV1::new(state, version))
2786                }
2787                #[cfg(feature = "protocol-ext_foreign_toplevel_list_v1")]
2788                Self::ExtForeignToplevelHandleV1 => {
2789                    if version > ExtForeignToplevelHandleV1::XML_VERSION {
2790                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2791                    }
2792                    Ok(ExtForeignToplevelHandleV1::new(state, version))
2793                }
2794                #[cfg(feature = "protocol-ext_foreign_toplevel_list_v1")]
2795                Self::ExtForeignToplevelListV1 => {
2796                    if version > ExtForeignToplevelListV1::XML_VERSION {
2797                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2798                    }
2799                    Ok(ExtForeignToplevelListV1::new(state, version))
2800                }
2801                #[cfg(feature = "protocol-ext_idle_notify_v1")]
2802                Self::ExtIdleNotificationV1 => {
2803                    if version > ExtIdleNotificationV1::XML_VERSION {
2804                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2805                    }
2806                    Ok(ExtIdleNotificationV1::new(state, version))
2807                }
2808                #[cfg(feature = "protocol-ext_idle_notify_v1")]
2809                Self::ExtIdleNotifierV1 => {
2810                    if version > ExtIdleNotifierV1::XML_VERSION {
2811                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2812                    }
2813                    Ok(ExtIdleNotifierV1::new(state, version))
2814                }
2815                #[cfg(feature = "protocol-ext_image_capture_source_v1")]
2816                Self::ExtForeignToplevelImageCaptureSourceManagerV1 => {
2817                    if version > ExtForeignToplevelImageCaptureSourceManagerV1::XML_VERSION {
2818                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2819                    }
2820                    Ok(ExtForeignToplevelImageCaptureSourceManagerV1::new(state, version))
2821                }
2822                #[cfg(feature = "protocol-ext_image_capture_source_v1")]
2823                Self::ExtImageCaptureSourceV1 => {
2824                    if version > ExtImageCaptureSourceV1::XML_VERSION {
2825                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2826                    }
2827                    Ok(ExtImageCaptureSourceV1::new(state, version))
2828                }
2829                #[cfg(feature = "protocol-ext_image_capture_source_v1")]
2830                Self::ExtOutputImageCaptureSourceManagerV1 => {
2831                    if version > ExtOutputImageCaptureSourceManagerV1::XML_VERSION {
2832                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2833                    }
2834                    Ok(ExtOutputImageCaptureSourceManagerV1::new(state, version))
2835                }
2836                #[cfg(feature = "protocol-ext_image_copy_capture_v1")]
2837                Self::ExtImageCopyCaptureCursorSessionV1 => {
2838                    if version > ExtImageCopyCaptureCursorSessionV1::XML_VERSION {
2839                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2840                    }
2841                    Ok(ExtImageCopyCaptureCursorSessionV1::new(state, version))
2842                }
2843                #[cfg(feature = "protocol-ext_image_copy_capture_v1")]
2844                Self::ExtImageCopyCaptureFrameV1 => {
2845                    if version > ExtImageCopyCaptureFrameV1::XML_VERSION {
2846                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2847                    }
2848                    Ok(ExtImageCopyCaptureFrameV1::new(state, version))
2849                }
2850                #[cfg(feature = "protocol-ext_image_copy_capture_v1")]
2851                Self::ExtImageCopyCaptureManagerV1 => {
2852                    if version > ExtImageCopyCaptureManagerV1::XML_VERSION {
2853                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2854                    }
2855                    Ok(ExtImageCopyCaptureManagerV1::new(state, version))
2856                }
2857                #[cfg(feature = "protocol-ext_image_copy_capture_v1")]
2858                Self::ExtImageCopyCaptureSessionV1 => {
2859                    if version > ExtImageCopyCaptureSessionV1::XML_VERSION {
2860                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2861                    }
2862                    Ok(ExtImageCopyCaptureSessionV1::new(state, version))
2863                }
2864                #[cfg(feature = "protocol-ext_session_lock_v1")]
2865                Self::ExtSessionLockManagerV1 => {
2866                    if version > ExtSessionLockManagerV1::XML_VERSION {
2867                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2868                    }
2869                    Ok(ExtSessionLockManagerV1::new(state, version))
2870                }
2871                #[cfg(feature = "protocol-ext_session_lock_v1")]
2872                Self::ExtSessionLockSurfaceV1 => {
2873                    if version > ExtSessionLockSurfaceV1::XML_VERSION {
2874                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2875                    }
2876                    Ok(ExtSessionLockSurfaceV1::new(state, version))
2877                }
2878                #[cfg(feature = "protocol-ext_session_lock_v1")]
2879                Self::ExtSessionLockV1 => {
2880                    if version > ExtSessionLockV1::XML_VERSION {
2881                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2882                    }
2883                    Ok(ExtSessionLockV1::new(state, version))
2884                }
2885                #[cfg(feature = "protocol-ext_transient_seat_v1")]
2886                Self::ExtTransientSeatManagerV1 => {
2887                    if version > ExtTransientSeatManagerV1::XML_VERSION {
2888                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2889                    }
2890                    Ok(ExtTransientSeatManagerV1::new(state, version))
2891                }
2892                #[cfg(feature = "protocol-ext_transient_seat_v1")]
2893                Self::ExtTransientSeatV1 => {
2894                    if version > ExtTransientSeatV1::XML_VERSION {
2895                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2896                    }
2897                    Ok(ExtTransientSeatV1::new(state, version))
2898                }
2899                #[cfg(feature = "protocol-ext_workspace_v1")]
2900                Self::ExtWorkspaceGroupHandleV1 => {
2901                    if version > ExtWorkspaceGroupHandleV1::XML_VERSION {
2902                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2903                    }
2904                    Ok(ExtWorkspaceGroupHandleV1::new(state, version))
2905                }
2906                #[cfg(feature = "protocol-ext_workspace_v1")]
2907                Self::ExtWorkspaceHandleV1 => {
2908                    if version > ExtWorkspaceHandleV1::XML_VERSION {
2909                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2910                    }
2911                    Ok(ExtWorkspaceHandleV1::new(state, version))
2912                }
2913                #[cfg(feature = "protocol-ext_workspace_v1")]
2914                Self::ExtWorkspaceManagerV1 => {
2915                    if version > ExtWorkspaceManagerV1::XML_VERSION {
2916                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2917                    }
2918                    Ok(ExtWorkspaceManagerV1::new(state, version))
2919                }
2920                #[cfg(feature = "protocol-fifo_v1")]
2921                Self::WpFifoManagerV1 => {
2922                    if version > WpFifoManagerV1::XML_VERSION {
2923                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2924                    }
2925                    Ok(WpFifoManagerV1::new(state, version))
2926                }
2927                #[cfg(feature = "protocol-fifo_v1")]
2928                Self::WpFifoV1 => {
2929                    if version > WpFifoV1::XML_VERSION {
2930                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2931                    }
2932                    Ok(WpFifoV1::new(state, version))
2933                }
2934                #[cfg(feature = "protocol-fractional_scale_v1")]
2935                Self::WpFractionalScaleManagerV1 => {
2936                    if version > WpFractionalScaleManagerV1::XML_VERSION {
2937                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2938                    }
2939                    Ok(WpFractionalScaleManagerV1::new(state, version))
2940                }
2941                #[cfg(feature = "protocol-fractional_scale_v1")]
2942                Self::WpFractionalScaleV1 => {
2943                    if version > WpFractionalScaleV1::XML_VERSION {
2944                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2945                    }
2946                    Ok(WpFractionalScaleV1::new(state, version))
2947                }
2948                #[cfg(feature = "protocol-fullscreen_shell_unstable_v1")]
2949                Self::ZwpFullscreenShellModeFeedbackV1 => {
2950                    if version > ZwpFullscreenShellModeFeedbackV1::XML_VERSION {
2951                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2952                    }
2953                    Ok(ZwpFullscreenShellModeFeedbackV1::new(state, version))
2954                }
2955                #[cfg(feature = "protocol-fullscreen_shell_unstable_v1")]
2956                Self::ZwpFullscreenShellV1 => {
2957                    if version > ZwpFullscreenShellV1::XML_VERSION {
2958                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2959                    }
2960                    Ok(ZwpFullscreenShellV1::new(state, version))
2961                }
2962                #[cfg(feature = "protocol-idle_inhibit_unstable_v1")]
2963                Self::ZwpIdleInhibitManagerV1 => {
2964                    if version > ZwpIdleInhibitManagerV1::XML_VERSION {
2965                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2966                    }
2967                    Ok(ZwpIdleInhibitManagerV1::new(state, version))
2968                }
2969                #[cfg(feature = "protocol-idle_inhibit_unstable_v1")]
2970                Self::ZwpIdleInhibitorV1 => {
2971                    if version > ZwpIdleInhibitorV1::XML_VERSION {
2972                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2973                    }
2974                    Ok(ZwpIdleInhibitorV1::new(state, version))
2975                }
2976                #[cfg(feature = "protocol-input_method_unstable_v1")]
2977                Self::ZwpInputMethodContextV1 => {
2978                    if version > ZwpInputMethodContextV1::XML_VERSION {
2979                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2980                    }
2981                    Ok(ZwpInputMethodContextV1::new(state, version))
2982                }
2983                #[cfg(feature = "protocol-input_method_unstable_v1")]
2984                Self::ZwpInputMethodV1 => {
2985                    if version > ZwpInputMethodV1::XML_VERSION {
2986                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2987                    }
2988                    Ok(ZwpInputMethodV1::new(state, version))
2989                }
2990                #[cfg(feature = "protocol-input_method_unstable_v1")]
2991                Self::ZwpInputPanelSurfaceV1 => {
2992                    if version > ZwpInputPanelSurfaceV1::XML_VERSION {
2993                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
2994                    }
2995                    Ok(ZwpInputPanelSurfaceV1::new(state, version))
2996                }
2997                #[cfg(feature = "protocol-input_method_unstable_v1")]
2998                Self::ZwpInputPanelV1 => {
2999                    if version > ZwpInputPanelV1::XML_VERSION {
3000                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3001                    }
3002                    Ok(ZwpInputPanelV1::new(state, version))
3003                }
3004                #[cfg(feature = "protocol-input_timestamps_unstable_v1")]
3005                Self::ZwpInputTimestampsManagerV1 => {
3006                    if version > ZwpInputTimestampsManagerV1::XML_VERSION {
3007                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3008                    }
3009                    Ok(ZwpInputTimestampsManagerV1::new(state, version))
3010                }
3011                #[cfg(feature = "protocol-input_timestamps_unstable_v1")]
3012                Self::ZwpInputTimestampsV1 => {
3013                    if version > ZwpInputTimestampsV1::XML_VERSION {
3014                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3015                    }
3016                    Ok(ZwpInputTimestampsV1::new(state, version))
3017                }
3018                #[cfg(feature = "protocol-keyboard_shortcuts_inhibit_unstable_v1")]
3019                Self::ZwpKeyboardShortcutsInhibitManagerV1 => {
3020                    if version > ZwpKeyboardShortcutsInhibitManagerV1::XML_VERSION {
3021                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3022                    }
3023                    Ok(ZwpKeyboardShortcutsInhibitManagerV1::new(state, version))
3024                }
3025                #[cfg(feature = "protocol-keyboard_shortcuts_inhibit_unstable_v1")]
3026                Self::ZwpKeyboardShortcutsInhibitorV1 => {
3027                    if version > ZwpKeyboardShortcutsInhibitorV1::XML_VERSION {
3028                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3029                    }
3030                    Ok(ZwpKeyboardShortcutsInhibitorV1::new(state, version))
3031                }
3032                #[cfg(feature = "protocol-linux_dmabuf_v1")]
3033                Self::ZwpLinuxBufferParamsV1 => {
3034                    if version > ZwpLinuxBufferParamsV1::XML_VERSION {
3035                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3036                    }
3037                    Ok(ZwpLinuxBufferParamsV1::new(state, version))
3038                }
3039                #[cfg(feature = "protocol-linux_dmabuf_v1")]
3040                Self::ZwpLinuxDmabufFeedbackV1 => {
3041                    if version > ZwpLinuxDmabufFeedbackV1::XML_VERSION {
3042                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3043                    }
3044                    Ok(ZwpLinuxDmabufFeedbackV1::new(state, version))
3045                }
3046                #[cfg(feature = "protocol-linux_dmabuf_v1")]
3047                Self::ZwpLinuxDmabufV1 => {
3048                    if version > ZwpLinuxDmabufV1::XML_VERSION {
3049                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3050                    }
3051                    Ok(ZwpLinuxDmabufV1::new(state, version))
3052                }
3053                #[cfg(feature = "protocol-linux_drm_syncobj_v1")]
3054                Self::WpLinuxDrmSyncobjManagerV1 => {
3055                    if version > WpLinuxDrmSyncobjManagerV1::XML_VERSION {
3056                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3057                    }
3058                    Ok(WpLinuxDrmSyncobjManagerV1::new(state, version))
3059                }
3060                #[cfg(feature = "protocol-linux_drm_syncobj_v1")]
3061                Self::WpLinuxDrmSyncobjSurfaceV1 => {
3062                    if version > WpLinuxDrmSyncobjSurfaceV1::XML_VERSION {
3063                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3064                    }
3065                    Ok(WpLinuxDrmSyncobjSurfaceV1::new(state, version))
3066                }
3067                #[cfg(feature = "protocol-linux_drm_syncobj_v1")]
3068                Self::WpLinuxDrmSyncobjTimelineV1 => {
3069                    if version > WpLinuxDrmSyncobjTimelineV1::XML_VERSION {
3070                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3071                    }
3072                    Ok(WpLinuxDrmSyncobjTimelineV1::new(state, version))
3073                }
3074                #[cfg(feature = "protocol-pointer_constraints_unstable_v1")]
3075                Self::ZwpConfinedPointerV1 => {
3076                    if version > ZwpConfinedPointerV1::XML_VERSION {
3077                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3078                    }
3079                    Ok(ZwpConfinedPointerV1::new(state, version))
3080                }
3081                #[cfg(feature = "protocol-pointer_constraints_unstable_v1")]
3082                Self::ZwpLockedPointerV1 => {
3083                    if version > ZwpLockedPointerV1::XML_VERSION {
3084                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3085                    }
3086                    Ok(ZwpLockedPointerV1::new(state, version))
3087                }
3088                #[cfg(feature = "protocol-pointer_constraints_unstable_v1")]
3089                Self::ZwpPointerConstraintsV1 => {
3090                    if version > ZwpPointerConstraintsV1::XML_VERSION {
3091                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3092                    }
3093                    Ok(ZwpPointerConstraintsV1::new(state, version))
3094                }
3095                #[cfg(feature = "protocol-pointer_gestures_unstable_v1")]
3096                Self::ZwpPointerGestureHoldV1 => {
3097                    if version > ZwpPointerGestureHoldV1::XML_VERSION {
3098                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3099                    }
3100                    Ok(ZwpPointerGestureHoldV1::new(state, version))
3101                }
3102                #[cfg(feature = "protocol-pointer_gestures_unstable_v1")]
3103                Self::ZwpPointerGesturePinchV1 => {
3104                    if version > ZwpPointerGesturePinchV1::XML_VERSION {
3105                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3106                    }
3107                    Ok(ZwpPointerGesturePinchV1::new(state, version))
3108                }
3109                #[cfg(feature = "protocol-pointer_gestures_unstable_v1")]
3110                Self::ZwpPointerGestureSwipeV1 => {
3111                    if version > ZwpPointerGestureSwipeV1::XML_VERSION {
3112                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3113                    }
3114                    Ok(ZwpPointerGestureSwipeV1::new(state, version))
3115                }
3116                #[cfg(feature = "protocol-pointer_gestures_unstable_v1")]
3117                Self::ZwpPointerGesturesV1 => {
3118                    if version > ZwpPointerGesturesV1::XML_VERSION {
3119                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3120                    }
3121                    Ok(ZwpPointerGesturesV1::new(state, version))
3122                }
3123                #[cfg(feature = "protocol-pointer_warp_v1")]
3124                Self::WpPointerWarpV1 => {
3125                    if version > WpPointerWarpV1::XML_VERSION {
3126                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3127                    }
3128                    Ok(WpPointerWarpV1::new(state, version))
3129                }
3130                #[cfg(feature = "protocol-presentation_time")]
3131                Self::WpPresentation => {
3132                    if version > WpPresentation::XML_VERSION {
3133                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3134                    }
3135                    Ok(WpPresentation::new(state, version))
3136                }
3137                #[cfg(feature = "protocol-presentation_time")]
3138                Self::WpPresentationFeedback => {
3139                    if version > WpPresentationFeedback::XML_VERSION {
3140                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3141                    }
3142                    Ok(WpPresentationFeedback::new(state, version))
3143                }
3144                #[cfg(feature = "protocol-relative_pointer_unstable_v1")]
3145                Self::ZwpRelativePointerManagerV1 => {
3146                    if version > ZwpRelativePointerManagerV1::XML_VERSION {
3147                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3148                    }
3149                    Ok(ZwpRelativePointerManagerV1::new(state, version))
3150                }
3151                #[cfg(feature = "protocol-relative_pointer_unstable_v1")]
3152                Self::ZwpRelativePointerV1 => {
3153                    if version > ZwpRelativePointerV1::XML_VERSION {
3154                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3155                    }
3156                    Ok(ZwpRelativePointerV1::new(state, version))
3157                }
3158                #[cfg(feature = "protocol-security_context_v1")]
3159                Self::WpSecurityContextManagerV1 => {
3160                    if version > WpSecurityContextManagerV1::XML_VERSION {
3161                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3162                    }
3163                    Ok(WpSecurityContextManagerV1::new(state, version))
3164                }
3165                #[cfg(feature = "protocol-security_context_v1")]
3166                Self::WpSecurityContextV1 => {
3167                    if version > WpSecurityContextV1::XML_VERSION {
3168                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3169                    }
3170                    Ok(WpSecurityContextV1::new(state, version))
3171                }
3172                #[cfg(feature = "protocol-single_pixel_buffer_v1")]
3173                Self::WpSinglePixelBufferManagerV1 => {
3174                    if version > WpSinglePixelBufferManagerV1::XML_VERSION {
3175                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3176                    }
3177                    Ok(WpSinglePixelBufferManagerV1::new(state, version))
3178                }
3179                #[cfg(feature = "protocol-tablet_v2")]
3180                Self::ZwpTabletManagerV2 => {
3181                    if version > ZwpTabletManagerV2::XML_VERSION {
3182                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3183                    }
3184                    Ok(ZwpTabletManagerV2::new(state, version))
3185                }
3186                #[cfg(feature = "protocol-tablet_v2")]
3187                Self::ZwpTabletPadDialV2 => {
3188                    if version > ZwpTabletPadDialV2::XML_VERSION {
3189                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3190                    }
3191                    Ok(ZwpTabletPadDialV2::new(state, version))
3192                }
3193                #[cfg(feature = "protocol-tablet_v2")]
3194                Self::ZwpTabletPadGroupV2 => {
3195                    if version > ZwpTabletPadGroupV2::XML_VERSION {
3196                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3197                    }
3198                    Ok(ZwpTabletPadGroupV2::new(state, version))
3199                }
3200                #[cfg(feature = "protocol-tablet_v2")]
3201                Self::ZwpTabletPadRingV2 => {
3202                    if version > ZwpTabletPadRingV2::XML_VERSION {
3203                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3204                    }
3205                    Ok(ZwpTabletPadRingV2::new(state, version))
3206                }
3207                #[cfg(feature = "protocol-tablet_v2")]
3208                Self::ZwpTabletPadStripV2 => {
3209                    if version > ZwpTabletPadStripV2::XML_VERSION {
3210                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3211                    }
3212                    Ok(ZwpTabletPadStripV2::new(state, version))
3213                }
3214                #[cfg(feature = "protocol-tablet_v2")]
3215                Self::ZwpTabletPadV2 => {
3216                    if version > ZwpTabletPadV2::XML_VERSION {
3217                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3218                    }
3219                    Ok(ZwpTabletPadV2::new(state, version))
3220                }
3221                #[cfg(feature = "protocol-tablet_v2")]
3222                Self::ZwpTabletSeatV2 => {
3223                    if version > ZwpTabletSeatV2::XML_VERSION {
3224                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3225                    }
3226                    Ok(ZwpTabletSeatV2::new(state, version))
3227                }
3228                #[cfg(feature = "protocol-tablet_v2")]
3229                Self::ZwpTabletToolV2 => {
3230                    if version > ZwpTabletToolV2::XML_VERSION {
3231                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3232                    }
3233                    Ok(ZwpTabletToolV2::new(state, version))
3234                }
3235                #[cfg(feature = "protocol-tablet_v2")]
3236                Self::ZwpTabletV2 => {
3237                    if version > ZwpTabletV2::XML_VERSION {
3238                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3239                    }
3240                    Ok(ZwpTabletV2::new(state, version))
3241                }
3242                #[cfg(feature = "protocol-tearing_control_v1")]
3243                Self::WpTearingControlManagerV1 => {
3244                    if version > WpTearingControlManagerV1::XML_VERSION {
3245                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3246                    }
3247                    Ok(WpTearingControlManagerV1::new(state, version))
3248                }
3249                #[cfg(feature = "protocol-tearing_control_v1")]
3250                Self::WpTearingControlV1 => {
3251                    if version > WpTearingControlV1::XML_VERSION {
3252                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3253                    }
3254                    Ok(WpTearingControlV1::new(state, version))
3255                }
3256                #[cfg(feature = "protocol-text_input_unstable_v1")]
3257                Self::ZwpTextInputManagerV1 => {
3258                    if version > ZwpTextInputManagerV1::XML_VERSION {
3259                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3260                    }
3261                    Ok(ZwpTextInputManagerV1::new(state, version))
3262                }
3263                #[cfg(feature = "protocol-text_input_unstable_v1")]
3264                Self::ZwpTextInputV1 => {
3265                    if version > ZwpTextInputV1::XML_VERSION {
3266                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3267                    }
3268                    Ok(ZwpTextInputV1::new(state, version))
3269                }
3270                #[cfg(feature = "protocol-text_input_unstable_v3")]
3271                Self::ZwpTextInputManagerV3 => {
3272                    if version > ZwpTextInputManagerV3::XML_VERSION {
3273                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3274                    }
3275                    Ok(ZwpTextInputManagerV3::new(state, version))
3276                }
3277                #[cfg(feature = "protocol-text_input_unstable_v3")]
3278                Self::ZwpTextInputV3 => {
3279                    if version > ZwpTextInputV3::XML_VERSION {
3280                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3281                    }
3282                    Ok(ZwpTextInputV3::new(state, version))
3283                }
3284                #[cfg(feature = "protocol-viewporter")]
3285                Self::WpViewport => {
3286                    if version > WpViewport::XML_VERSION {
3287                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3288                    }
3289                    Ok(WpViewport::new(state, version))
3290                }
3291                #[cfg(feature = "protocol-viewporter")]
3292                Self::WpViewporter => {
3293                    if version > WpViewporter::XML_VERSION {
3294                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3295                    }
3296                    Ok(WpViewporter::new(state, version))
3297                }
3298                #[cfg(feature = "protocol-wp_primary_selection_unstable_v1")]
3299                Self::ZwpPrimarySelectionDeviceManagerV1 => {
3300                    if version > ZwpPrimarySelectionDeviceManagerV1::XML_VERSION {
3301                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3302                    }
3303                    Ok(ZwpPrimarySelectionDeviceManagerV1::new(state, version))
3304                }
3305                #[cfg(feature = "protocol-wp_primary_selection_unstable_v1")]
3306                Self::ZwpPrimarySelectionDeviceV1 => {
3307                    if version > ZwpPrimarySelectionDeviceV1::XML_VERSION {
3308                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3309                    }
3310                    Ok(ZwpPrimarySelectionDeviceV1::new(state, version))
3311                }
3312                #[cfg(feature = "protocol-wp_primary_selection_unstable_v1")]
3313                Self::ZwpPrimarySelectionOfferV1 => {
3314                    if version > ZwpPrimarySelectionOfferV1::XML_VERSION {
3315                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3316                    }
3317                    Ok(ZwpPrimarySelectionOfferV1::new(state, version))
3318                }
3319                #[cfg(feature = "protocol-wp_primary_selection_unstable_v1")]
3320                Self::ZwpPrimarySelectionSourceV1 => {
3321                    if version > ZwpPrimarySelectionSourceV1::XML_VERSION {
3322                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3323                    }
3324                    Ok(ZwpPrimarySelectionSourceV1::new(state, version))
3325                }
3326                #[cfg(feature = "protocol-xdg_activation_v1")]
3327                Self::XdgActivationTokenV1 => {
3328                    if version > XdgActivationTokenV1::XML_VERSION {
3329                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3330                    }
3331                    Ok(XdgActivationTokenV1::new(state, version))
3332                }
3333                #[cfg(feature = "protocol-xdg_activation_v1")]
3334                Self::XdgActivationV1 => {
3335                    if version > XdgActivationV1::XML_VERSION {
3336                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3337                    }
3338                    Ok(XdgActivationV1::new(state, version))
3339                }
3340                #[cfg(feature = "protocol-xdg_decoration_unstable_v1")]
3341                Self::ZxdgDecorationManagerV1 => {
3342                    if version > ZxdgDecorationManagerV1::XML_VERSION {
3343                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3344                    }
3345                    Ok(ZxdgDecorationManagerV1::new(state, version))
3346                }
3347                #[cfg(feature = "protocol-xdg_decoration_unstable_v1")]
3348                Self::ZxdgToplevelDecorationV1 => {
3349                    if version > ZxdgToplevelDecorationV1::XML_VERSION {
3350                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3351                    }
3352                    Ok(ZxdgToplevelDecorationV1::new(state, version))
3353                }
3354                #[cfg(feature = "protocol-xdg_dialog_v1")]
3355                Self::XdgDialogV1 => {
3356                    if version > XdgDialogV1::XML_VERSION {
3357                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3358                    }
3359                    Ok(XdgDialogV1::new(state, version))
3360                }
3361                #[cfg(feature = "protocol-xdg_dialog_v1")]
3362                Self::XdgWmDialogV1 => {
3363                    if version > XdgWmDialogV1::XML_VERSION {
3364                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3365                    }
3366                    Ok(XdgWmDialogV1::new(state, version))
3367                }
3368                #[cfg(feature = "protocol-xdg_foreign_unstable_v2")]
3369                Self::ZxdgExportedV2 => {
3370                    if version > ZxdgExportedV2::XML_VERSION {
3371                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3372                    }
3373                    Ok(ZxdgExportedV2::new(state, version))
3374                }
3375                #[cfg(feature = "protocol-xdg_foreign_unstable_v2")]
3376                Self::ZxdgExporterV2 => {
3377                    if version > ZxdgExporterV2::XML_VERSION {
3378                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3379                    }
3380                    Ok(ZxdgExporterV2::new(state, version))
3381                }
3382                #[cfg(feature = "protocol-xdg_foreign_unstable_v2")]
3383                Self::ZxdgImportedV2 => {
3384                    if version > ZxdgImportedV2::XML_VERSION {
3385                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3386                    }
3387                    Ok(ZxdgImportedV2::new(state, version))
3388                }
3389                #[cfg(feature = "protocol-xdg_foreign_unstable_v2")]
3390                Self::ZxdgImporterV2 => {
3391                    if version > ZxdgImporterV2::XML_VERSION {
3392                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3393                    }
3394                    Ok(ZxdgImporterV2::new(state, version))
3395                }
3396                #[cfg(feature = "protocol-xdg_output_unstable_v1")]
3397                Self::ZxdgOutputManagerV1 => {
3398                    if version > ZxdgOutputManagerV1::XML_VERSION {
3399                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3400                    }
3401                    Ok(ZxdgOutputManagerV1::new(state, version))
3402                }
3403                #[cfg(feature = "protocol-xdg_output_unstable_v1")]
3404                Self::ZxdgOutputV1 => {
3405                    if version > ZxdgOutputV1::XML_VERSION {
3406                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3407                    }
3408                    Ok(ZxdgOutputV1::new(state, version))
3409                }
3410                #[cfg(feature = "protocol-xdg_session_management_v1")]
3411                Self::XdgSessionManagerV1 => {
3412                    if version > XdgSessionManagerV1::XML_VERSION {
3413                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3414                    }
3415                    Ok(XdgSessionManagerV1::new(state, version))
3416                }
3417                #[cfg(feature = "protocol-xdg_session_management_v1")]
3418                Self::XdgSessionV1 => {
3419                    if version > XdgSessionV1::XML_VERSION {
3420                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3421                    }
3422                    Ok(XdgSessionV1::new(state, version))
3423                }
3424                #[cfg(feature = "protocol-xdg_session_management_v1")]
3425                Self::XdgToplevelSessionV1 => {
3426                    if version > XdgToplevelSessionV1::XML_VERSION {
3427                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3428                    }
3429                    Ok(XdgToplevelSessionV1::new(state, version))
3430                }
3431                #[cfg(feature = "protocol-xdg_shell")]
3432                Self::XdgPopup => {
3433                    if version > XdgPopup::XML_VERSION {
3434                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3435                    }
3436                    Ok(XdgPopup::new(state, version))
3437                }
3438                #[cfg(feature = "protocol-xdg_shell")]
3439                Self::XdgPositioner => {
3440                    if version > XdgPositioner::XML_VERSION {
3441                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3442                    }
3443                    Ok(XdgPositioner::new(state, version))
3444                }
3445                #[cfg(feature = "protocol-xdg_shell")]
3446                Self::XdgSurface => {
3447                    if version > XdgSurface::XML_VERSION {
3448                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3449                    }
3450                    Ok(XdgSurface::new(state, version))
3451                }
3452                #[cfg(feature = "protocol-xdg_shell")]
3453                Self::XdgToplevel => {
3454                    if version > XdgToplevel::XML_VERSION {
3455                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3456                    }
3457                    Ok(XdgToplevel::new(state, version))
3458                }
3459                #[cfg(feature = "protocol-xdg_shell")]
3460                Self::XdgWmBase => {
3461                    if version > XdgWmBase::XML_VERSION {
3462                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3463                    }
3464                    Ok(XdgWmBase::new(state, version))
3465                }
3466                #[cfg(feature = "protocol-xdg_system_bell_v1")]
3467                Self::XdgSystemBellV1 => {
3468                    if version > XdgSystemBellV1::XML_VERSION {
3469                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3470                    }
3471                    Ok(XdgSystemBellV1::new(state, version))
3472                }
3473                #[cfg(feature = "protocol-xdg_toplevel_drag_v1")]
3474                Self::XdgToplevelDragManagerV1 => {
3475                    if version > XdgToplevelDragManagerV1::XML_VERSION {
3476                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3477                    }
3478                    Ok(XdgToplevelDragManagerV1::new(state, version))
3479                }
3480                #[cfg(feature = "protocol-xdg_toplevel_drag_v1")]
3481                Self::XdgToplevelDragV1 => {
3482                    if version > XdgToplevelDragV1::XML_VERSION {
3483                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3484                    }
3485                    Ok(XdgToplevelDragV1::new(state, version))
3486                }
3487                #[cfg(feature = "protocol-xdg_toplevel_icon_v1")]
3488                Self::XdgToplevelIconManagerV1 => {
3489                    if version > XdgToplevelIconManagerV1::XML_VERSION {
3490                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3491                    }
3492                    Ok(XdgToplevelIconManagerV1::new(state, version))
3493                }
3494                #[cfg(feature = "protocol-xdg_toplevel_icon_v1")]
3495                Self::XdgToplevelIconV1 => {
3496                    if version > XdgToplevelIconV1::XML_VERSION {
3497                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3498                    }
3499                    Ok(XdgToplevelIconV1::new(state, version))
3500                }
3501                #[cfg(feature = "protocol-xdg_toplevel_tag_v1")]
3502                Self::XdgToplevelTagManagerV1 => {
3503                    if version > XdgToplevelTagManagerV1::XML_VERSION {
3504                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3505                    }
3506                    Ok(XdgToplevelTagManagerV1::new(state, version))
3507                }
3508                #[cfg(feature = "protocol-xwayland_keyboard_grab_unstable_v1")]
3509                Self::ZwpXwaylandKeyboardGrabManagerV1 => {
3510                    if version > ZwpXwaylandKeyboardGrabManagerV1::XML_VERSION {
3511                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3512                    }
3513                    Ok(ZwpXwaylandKeyboardGrabManagerV1::new(state, version))
3514                }
3515                #[cfg(feature = "protocol-xwayland_keyboard_grab_unstable_v1")]
3516                Self::ZwpXwaylandKeyboardGrabV1 => {
3517                    if version > ZwpXwaylandKeyboardGrabV1::XML_VERSION {
3518                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3519                    }
3520                    Ok(ZwpXwaylandKeyboardGrabV1::new(state, version))
3521                }
3522                #[cfg(feature = "protocol-xwayland_shell_v1")]
3523                Self::XwaylandShellV1 => {
3524                    if version > XwaylandShellV1::XML_VERSION {
3525                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3526                    }
3527                    Ok(XwaylandShellV1::new(state, version))
3528                }
3529                #[cfg(feature = "protocol-xwayland_shell_v1")]
3530                Self::XwaylandSurfaceV1 => {
3531                    if version > XwaylandSurfaceV1::XML_VERSION {
3532                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3533                    }
3534                    Ok(XwaylandSurfaceV1::new(state, version))
3535                }
3536                #[cfg(feature = "protocol-zwp_linux_explicit_synchronization_unstable_v1")]
3537                Self::ZwpLinuxBufferReleaseV1 => {
3538                    if version > ZwpLinuxBufferReleaseV1::XML_VERSION {
3539                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3540                    }
3541                    Ok(ZwpLinuxBufferReleaseV1::new(state, version))
3542                }
3543                #[cfg(feature = "protocol-zwp_linux_explicit_synchronization_unstable_v1")]
3544                Self::ZwpLinuxExplicitSynchronizationV1 => {
3545                    if version > ZwpLinuxExplicitSynchronizationV1::XML_VERSION {
3546                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3547                    }
3548                    Ok(ZwpLinuxExplicitSynchronizationV1::new(state, version))
3549                }
3550                #[cfg(feature = "protocol-zwp_linux_explicit_synchronization_unstable_v1")]
3551                Self::ZwpLinuxSurfaceSynchronizationV1 => {
3552                    if version > ZwpLinuxSurfaceSynchronizationV1::XML_VERSION {
3553                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3554                    }
3555                    Ok(ZwpLinuxSurfaceSynchronizationV1::new(state, version))
3556                }
3557                #[cfg(feature = "protocol-wlr_data_control_unstable_v1")]
3558                Self::ZwlrDataControlDeviceV1 => {
3559                    if version > ZwlrDataControlDeviceV1::XML_VERSION {
3560                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3561                    }
3562                    Ok(ZwlrDataControlDeviceV1::new(state, version))
3563                }
3564                #[cfg(feature = "protocol-wlr_data_control_unstable_v1")]
3565                Self::ZwlrDataControlManagerV1 => {
3566                    if version > ZwlrDataControlManagerV1::XML_VERSION {
3567                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3568                    }
3569                    Ok(ZwlrDataControlManagerV1::new(state, version))
3570                }
3571                #[cfg(feature = "protocol-wlr_data_control_unstable_v1")]
3572                Self::ZwlrDataControlOfferV1 => {
3573                    if version > ZwlrDataControlOfferV1::XML_VERSION {
3574                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3575                    }
3576                    Ok(ZwlrDataControlOfferV1::new(state, version))
3577                }
3578                #[cfg(feature = "protocol-wlr_data_control_unstable_v1")]
3579                Self::ZwlrDataControlSourceV1 => {
3580                    if version > ZwlrDataControlSourceV1::XML_VERSION {
3581                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3582                    }
3583                    Ok(ZwlrDataControlSourceV1::new(state, version))
3584                }
3585                #[cfg(feature = "protocol-wlr_export_dmabuf_unstable_v1")]
3586                Self::ZwlrExportDmabufFrameV1 => {
3587                    if version > ZwlrExportDmabufFrameV1::XML_VERSION {
3588                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3589                    }
3590                    Ok(ZwlrExportDmabufFrameV1::new(state, version))
3591                }
3592                #[cfg(feature = "protocol-wlr_export_dmabuf_unstable_v1")]
3593                Self::ZwlrExportDmabufManagerV1 => {
3594                    if version > ZwlrExportDmabufManagerV1::XML_VERSION {
3595                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3596                    }
3597                    Ok(ZwlrExportDmabufManagerV1::new(state, version))
3598                }
3599                #[cfg(feature = "protocol-wlr_foreign_toplevel_management_unstable_v1")]
3600                Self::ZwlrForeignToplevelHandleV1 => {
3601                    if version > ZwlrForeignToplevelHandleV1::XML_VERSION {
3602                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3603                    }
3604                    Ok(ZwlrForeignToplevelHandleV1::new(state, version))
3605                }
3606                #[cfg(feature = "protocol-wlr_foreign_toplevel_management_unstable_v1")]
3607                Self::ZwlrForeignToplevelManagerV1 => {
3608                    if version > ZwlrForeignToplevelManagerV1::XML_VERSION {
3609                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3610                    }
3611                    Ok(ZwlrForeignToplevelManagerV1::new(state, version))
3612                }
3613                #[cfg(feature = "protocol-wlr_gamma_control_unstable_v1")]
3614                Self::ZwlrGammaControlManagerV1 => {
3615                    if version > ZwlrGammaControlManagerV1::XML_VERSION {
3616                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3617                    }
3618                    Ok(ZwlrGammaControlManagerV1::new(state, version))
3619                }
3620                #[cfg(feature = "protocol-wlr_gamma_control_unstable_v1")]
3621                Self::ZwlrGammaControlV1 => {
3622                    if version > ZwlrGammaControlV1::XML_VERSION {
3623                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3624                    }
3625                    Ok(ZwlrGammaControlV1::new(state, version))
3626                }
3627                #[cfg(feature = "protocol-wlr_input_inhibit_unstable_v1")]
3628                Self::ZwlrInputInhibitManagerV1 => {
3629                    if version > ZwlrInputInhibitManagerV1::XML_VERSION {
3630                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3631                    }
3632                    Ok(ZwlrInputInhibitManagerV1::new(state, version))
3633                }
3634                #[cfg(feature = "protocol-wlr_input_inhibit_unstable_v1")]
3635                Self::ZwlrInputInhibitorV1 => {
3636                    if version > ZwlrInputInhibitorV1::XML_VERSION {
3637                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3638                    }
3639                    Ok(ZwlrInputInhibitorV1::new(state, version))
3640                }
3641                #[cfg(feature = "protocol-wlr_layer_shell_unstable_v1")]
3642                Self::ZwlrLayerShellV1 => {
3643                    if version > ZwlrLayerShellV1::XML_VERSION {
3644                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3645                    }
3646                    Ok(ZwlrLayerShellV1::new(state, version))
3647                }
3648                #[cfg(feature = "protocol-wlr_layer_shell_unstable_v1")]
3649                Self::ZwlrLayerSurfaceV1 => {
3650                    if version > ZwlrLayerSurfaceV1::XML_VERSION {
3651                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3652                    }
3653                    Ok(ZwlrLayerSurfaceV1::new(state, version))
3654                }
3655                #[cfg(feature = "protocol-wlr_output_management_unstable_v1")]
3656                Self::ZwlrOutputConfigurationHeadV1 => {
3657                    if version > ZwlrOutputConfigurationHeadV1::XML_VERSION {
3658                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3659                    }
3660                    Ok(ZwlrOutputConfigurationHeadV1::new(state, version))
3661                }
3662                #[cfg(feature = "protocol-wlr_output_management_unstable_v1")]
3663                Self::ZwlrOutputConfigurationV1 => {
3664                    if version > ZwlrOutputConfigurationV1::XML_VERSION {
3665                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3666                    }
3667                    Ok(ZwlrOutputConfigurationV1::new(state, version))
3668                }
3669                #[cfg(feature = "protocol-wlr_output_management_unstable_v1")]
3670                Self::ZwlrOutputHeadV1 => {
3671                    if version > ZwlrOutputHeadV1::XML_VERSION {
3672                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3673                    }
3674                    Ok(ZwlrOutputHeadV1::new(state, version))
3675                }
3676                #[cfg(feature = "protocol-wlr_output_management_unstable_v1")]
3677                Self::ZwlrOutputManagerV1 => {
3678                    if version > ZwlrOutputManagerV1::XML_VERSION {
3679                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3680                    }
3681                    Ok(ZwlrOutputManagerV1::new(state, version))
3682                }
3683                #[cfg(feature = "protocol-wlr_output_management_unstable_v1")]
3684                Self::ZwlrOutputModeV1 => {
3685                    if version > ZwlrOutputModeV1::XML_VERSION {
3686                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3687                    }
3688                    Ok(ZwlrOutputModeV1::new(state, version))
3689                }
3690                #[cfg(feature = "protocol-wlr_output_power_management_unstable_v1")]
3691                Self::ZwlrOutputPowerManagerV1 => {
3692                    if version > ZwlrOutputPowerManagerV1::XML_VERSION {
3693                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3694                    }
3695                    Ok(ZwlrOutputPowerManagerV1::new(state, version))
3696                }
3697                #[cfg(feature = "protocol-wlr_output_power_management_unstable_v1")]
3698                Self::ZwlrOutputPowerV1 => {
3699                    if version > ZwlrOutputPowerV1::XML_VERSION {
3700                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3701                    }
3702                    Ok(ZwlrOutputPowerV1::new(state, version))
3703                }
3704                #[cfg(feature = "protocol-wlr_screencopy_unstable_v1")]
3705                Self::ZwlrScreencopyFrameV1 => {
3706                    if version > ZwlrScreencopyFrameV1::XML_VERSION {
3707                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3708                    }
3709                    Ok(ZwlrScreencopyFrameV1::new(state, version))
3710                }
3711                #[cfg(feature = "protocol-wlr_screencopy_unstable_v1")]
3712                Self::ZwlrScreencopyManagerV1 => {
3713                    if version > ZwlrScreencopyManagerV1::XML_VERSION {
3714                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3715                    }
3716                    Ok(ZwlrScreencopyManagerV1::new(state, version))
3717                }
3718                #[cfg(feature = "protocol-wlr_virtual_pointer_unstable_v1")]
3719                Self::ZwlrVirtualPointerManagerV1 => {
3720                    if version > ZwlrVirtualPointerManagerV1::XML_VERSION {
3721                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3722                    }
3723                    Ok(ZwlrVirtualPointerManagerV1::new(state, version))
3724                }
3725                #[cfg(feature = "protocol-wlr_virtual_pointer_unstable_v1")]
3726                Self::ZwlrVirtualPointerV1 => {
3727                    if version > ZwlrVirtualPointerV1::XML_VERSION {
3728                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3729                    }
3730                    Ok(ZwlrVirtualPointerV1::new(state, version))
3731                }
3732                #[cfg(feature = "protocol-wlproxy_sync_v1")]
3733                Self::WlproxySyncV1 => {
3734                    if version > WlproxySyncV1::XML_VERSION {
3735                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3736                    }
3737                    Ok(WlproxySyncV1::new(state, version))
3738                }
3739                #[cfg(test)]
3740                Self::WlproxyTest => {
3741                    if version > WlproxyTest::XML_VERSION {
3742                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3743                    }
3744                    Ok(WlproxyTest::new(state, version))
3745                }
3746                #[cfg(test)]
3747                Self::WlproxyTestArrayEcho => {
3748                    if version > WlproxyTestArrayEcho::XML_VERSION {
3749                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3750                    }
3751                    Ok(WlproxyTestArrayEcho::new(state, version))
3752                }
3753                #[cfg(test)]
3754                Self::WlproxyTestDummy => {
3755                    if version > WlproxyTestDummy::XML_VERSION {
3756                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3757                    }
3758                    Ok(WlproxyTestDummy::new(state, version))
3759                }
3760                #[cfg(test)]
3761                Self::WlproxyTestFdEcho => {
3762                    if version > WlproxyTestFdEcho::XML_VERSION {
3763                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3764                    }
3765                    Ok(WlproxyTestFdEcho::new(state, version))
3766                }
3767                #[cfg(test)]
3768                Self::WlproxyTestHops => {
3769                    if version > WlproxyTestHops::XML_VERSION {
3770                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3771                    }
3772                    Ok(WlproxyTestHops::new(state, version))
3773                }
3774                #[cfg(test)]
3775                Self::WlproxyTestNonForward => {
3776                    if version > WlproxyTestNonForward::XML_VERSION {
3777                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3778                    }
3779                    Ok(WlproxyTestNonForward::new(state, version))
3780                }
3781                #[cfg(test)]
3782                Self::WlproxyTestObjectEcho => {
3783                    if version > WlproxyTestObjectEcho::XML_VERSION {
3784                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3785                    }
3786                    Ok(WlproxyTestObjectEcho::new(state, version))
3787                }
3788                #[cfg(test)]
3789                Self::WlproxyTestServerSent => {
3790                    if version > WlproxyTestServerSent::XML_VERSION {
3791                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3792                    }
3793                    Ok(WlproxyTestServerSent::new(state, version))
3794                }
3795                #[cfg(feature = "protocol-river_input_management_v1")]
3796                Self::RiverInputDeviceV1 => {
3797                    if version > RiverInputDeviceV1::XML_VERSION {
3798                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3799                    }
3800                    Ok(RiverInputDeviceV1::new(state, version))
3801                }
3802                #[cfg(feature = "protocol-river_input_management_v1")]
3803                Self::RiverInputManagerV1 => {
3804                    if version > RiverInputManagerV1::XML_VERSION {
3805                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3806                    }
3807                    Ok(RiverInputManagerV1::new(state, version))
3808                }
3809                #[cfg(feature = "protocol-river_layer_shell_v1")]
3810                Self::RiverLayerShellOutputV1 => {
3811                    if version > RiverLayerShellOutputV1::XML_VERSION {
3812                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3813                    }
3814                    Ok(RiverLayerShellOutputV1::new(state, version))
3815                }
3816                #[cfg(feature = "protocol-river_layer_shell_v1")]
3817                Self::RiverLayerShellSeatV1 => {
3818                    if version > RiverLayerShellSeatV1::XML_VERSION {
3819                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3820                    }
3821                    Ok(RiverLayerShellSeatV1::new(state, version))
3822                }
3823                #[cfg(feature = "protocol-river_layer_shell_v1")]
3824                Self::RiverLayerShellV1 => {
3825                    if version > RiverLayerShellV1::XML_VERSION {
3826                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3827                    }
3828                    Ok(RiverLayerShellV1::new(state, version))
3829                }
3830                #[cfg(feature = "protocol-river_libinput_config_v1")]
3831                Self::RiverLibinputAccelConfigV1 => {
3832                    if version > RiverLibinputAccelConfigV1::XML_VERSION {
3833                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3834                    }
3835                    Ok(RiverLibinputAccelConfigV1::new(state, version))
3836                }
3837                #[cfg(feature = "protocol-river_libinput_config_v1")]
3838                Self::RiverLibinputConfigV1 => {
3839                    if version > RiverLibinputConfigV1::XML_VERSION {
3840                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3841                    }
3842                    Ok(RiverLibinputConfigV1::new(state, version))
3843                }
3844                #[cfg(feature = "protocol-river_libinput_config_v1")]
3845                Self::RiverLibinputDeviceV1 => {
3846                    if version > RiverLibinputDeviceV1::XML_VERSION {
3847                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3848                    }
3849                    Ok(RiverLibinputDeviceV1::new(state, version))
3850                }
3851                #[cfg(feature = "protocol-river_libinput_config_v1")]
3852                Self::RiverLibinputResultV1 => {
3853                    if version > RiverLibinputResultV1::XML_VERSION {
3854                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3855                    }
3856                    Ok(RiverLibinputResultV1::new(state, version))
3857                }
3858                #[cfg(feature = "protocol-river_window_management_v1")]
3859                Self::RiverDecorationV1 => {
3860                    if version > RiverDecorationV1::XML_VERSION {
3861                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3862                    }
3863                    Ok(RiverDecorationV1::new(state, version))
3864                }
3865                #[cfg(feature = "protocol-river_window_management_v1")]
3866                Self::RiverNodeV1 => {
3867                    if version > RiverNodeV1::XML_VERSION {
3868                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3869                    }
3870                    Ok(RiverNodeV1::new(state, version))
3871                }
3872                #[cfg(feature = "protocol-river_window_management_v1")]
3873                Self::RiverOutputV1 => {
3874                    if version > RiverOutputV1::XML_VERSION {
3875                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3876                    }
3877                    Ok(RiverOutputV1::new(state, version))
3878                }
3879                #[cfg(feature = "protocol-river_window_management_v1")]
3880                Self::RiverPointerBindingV1 => {
3881                    if version > RiverPointerBindingV1::XML_VERSION {
3882                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3883                    }
3884                    Ok(RiverPointerBindingV1::new(state, version))
3885                }
3886                #[cfg(feature = "protocol-river_window_management_v1")]
3887                Self::RiverSeatV1 => {
3888                    if version > RiverSeatV1::XML_VERSION {
3889                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3890                    }
3891                    Ok(RiverSeatV1::new(state, version))
3892                }
3893                #[cfg(feature = "protocol-river_window_management_v1")]
3894                Self::RiverShellSurfaceV1 => {
3895                    if version > RiverShellSurfaceV1::XML_VERSION {
3896                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3897                    }
3898                    Ok(RiverShellSurfaceV1::new(state, version))
3899                }
3900                #[cfg(feature = "protocol-river_window_management_v1")]
3901                Self::RiverWindowManagerV1 => {
3902                    if version > RiverWindowManagerV1::XML_VERSION {
3903                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3904                    }
3905                    Ok(RiverWindowManagerV1::new(state, version))
3906                }
3907                #[cfg(feature = "protocol-river_window_management_v1")]
3908                Self::RiverWindowV1 => {
3909                    if version > RiverWindowV1::XML_VERSION {
3910                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3911                    }
3912                    Ok(RiverWindowV1::new(state, version))
3913                }
3914                #[cfg(feature = "protocol-river_xkb_bindings_v1")]
3915                Self::RiverXkbBindingV1 => {
3916                    if version > RiverXkbBindingV1::XML_VERSION {
3917                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3918                    }
3919                    Ok(RiverXkbBindingV1::new(state, version))
3920                }
3921                #[cfg(feature = "protocol-river_xkb_bindings_v1")]
3922                Self::RiverXkbBindingsSeatV1 => {
3923                    if version > RiverXkbBindingsSeatV1::XML_VERSION {
3924                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3925                    }
3926                    Ok(RiverXkbBindingsSeatV1::new(state, version))
3927                }
3928                #[cfg(feature = "protocol-river_xkb_bindings_v1")]
3929                Self::RiverXkbBindingsV1 => {
3930                    if version > RiverXkbBindingsV1::XML_VERSION {
3931                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3932                    }
3933                    Ok(RiverXkbBindingsV1::new(state, version))
3934                }
3935                #[cfg(feature = "protocol-river_xkb_config_v1")]
3936                Self::RiverXkbConfigV1 => {
3937                    if version > RiverXkbConfigV1::XML_VERSION {
3938                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3939                    }
3940                    Ok(RiverXkbConfigV1::new(state, version))
3941                }
3942                #[cfg(feature = "protocol-river_xkb_config_v1")]
3943                Self::RiverXkbKeyboardV1 => {
3944                    if version > RiverXkbKeyboardV1::XML_VERSION {
3945                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3946                    }
3947                    Ok(RiverXkbKeyboardV1::new(state, version))
3948                }
3949                #[cfg(feature = "protocol-river_xkb_config_v1")]
3950                Self::RiverXkbKeymapV1 => {
3951                    if version > RiverXkbKeymapV1::XML_VERSION {
3952                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3953                    }
3954                    Ok(RiverXkbKeymapV1::new(state, version))
3955                }
3956                #[cfg(feature = "protocol-ivi_application")]
3957                Self::IviApplication => {
3958                    if version > IviApplication::XML_VERSION {
3959                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3960                    }
3961                    Ok(IviApplication::new(state, version))
3962                }
3963                #[cfg(feature = "protocol-ivi_application")]
3964                Self::IviSurface => {
3965                    if version > IviSurface::XML_VERSION {
3966                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3967                    }
3968                    Ok(IviSurface::new(state, version))
3969                }
3970                #[cfg(feature = "protocol-ivi_hmi_controller")]
3971                Self::IviHmiController => {
3972                    if version > IviHmiController::XML_VERSION {
3973                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3974                    }
3975                    Ok(IviHmiController::new(state, version))
3976                }
3977                #[cfg(feature = "protocol-weston_content_protection")]
3978                Self::WestonContentProtection => {
3979                    if version > WestonContentProtection::XML_VERSION {
3980                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3981                    }
3982                    Ok(WestonContentProtection::new(state, version))
3983                }
3984                #[cfg(feature = "protocol-weston_content_protection")]
3985                Self::WestonProtectedSurface => {
3986                    if version > WestonProtectedSurface::XML_VERSION {
3987                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3988                    }
3989                    Ok(WestonProtectedSurface::new(state, version))
3990                }
3991                #[cfg(feature = "protocol-weston_debug")]
3992                Self::WestonDebugStreamV1 => {
3993                    if version > WestonDebugStreamV1::XML_VERSION {
3994                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
3995                    }
3996                    Ok(WestonDebugStreamV1::new(state, version))
3997                }
3998                #[cfg(feature = "protocol-weston_debug")]
3999                Self::WestonDebugV1 => {
4000                    if version > WestonDebugV1::XML_VERSION {
4001                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
4002                    }
4003                    Ok(WestonDebugV1::new(state, version))
4004                }
4005                #[cfg(feature = "protocol-weston_desktop")]
4006                Self::WestonDesktopShell => {
4007                    if version > WestonDesktopShell::XML_VERSION {
4008                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
4009                    }
4010                    Ok(WestonDesktopShell::new(state, version))
4011                }
4012                #[cfg(feature = "protocol-weston_desktop")]
4013                Self::WestonScreensaver => {
4014                    if version > WestonScreensaver::XML_VERSION {
4015                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
4016                    }
4017                    Ok(WestonScreensaver::new(state, version))
4018                }
4019                #[cfg(feature = "protocol-weston_direct_display")]
4020                Self::WestonDirectDisplayV1 => {
4021                    if version > WestonDirectDisplayV1::XML_VERSION {
4022                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
4023                    }
4024                    Ok(WestonDirectDisplayV1::new(state, version))
4025                }
4026                #[cfg(feature = "protocol-weston_output_capture")]
4027                Self::WestonCaptureSourceV1 => {
4028                    if version > WestonCaptureSourceV1::XML_VERSION {
4029                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
4030                    }
4031                    Ok(WestonCaptureSourceV1::new(state, version))
4032                }
4033                #[cfg(feature = "protocol-weston_output_capture")]
4034                Self::WestonCaptureV1 => {
4035                    if version > WestonCaptureV1::XML_VERSION {
4036                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
4037                    }
4038                    Ok(WestonCaptureV1::new(state, version))
4039                }
4040                #[cfg(feature = "protocol-weston_test")]
4041                Self::WestonTest => {
4042                    if version > WestonTest::XML_VERSION {
4043                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
4044                    }
4045                    Ok(WestonTest::new(state, version))
4046                }
4047                #[cfg(feature = "protocol-weston_test")]
4048                Self::WestonTestRunner => {
4049                    if version > WestonTestRunner::XML_VERSION {
4050                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
4051                    }
4052                    Ok(WestonTestRunner::new(state, version))
4053                }
4054                #[cfg(feature = "protocol-weston_touch_calibration")]
4055                Self::WestonTouchCalibration => {
4056                    if version > WestonTouchCalibration::XML_VERSION {
4057                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
4058                    }
4059                    Ok(WestonTouchCalibration::new(state, version))
4060                }
4061                #[cfg(feature = "protocol-weston_touch_calibration")]
4062                Self::WestonTouchCalibrator => {
4063                    if version > WestonTouchCalibrator::XML_VERSION {
4064                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
4065                    }
4066                    Ok(WestonTouchCalibrator::new(state, version))
4067                }
4068                #[cfg(feature = "protocol-weston_touch_calibration")]
4069                Self::WestonTouchCoordinate => {
4070                    if version > WestonTouchCoordinate::XML_VERSION {
4071                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
4072                    }
4073                    Ok(WestonTouchCoordinate::new(state, version))
4074                }
4075                #[cfg(feature = "protocol-cosmic_a11y_v1")]
4076                Self::CosmicA11yManagerV1 => {
4077                    if version > CosmicA11yManagerV1::XML_VERSION {
4078                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
4079                    }
4080                    Ok(CosmicA11yManagerV1::new(state, version))
4081                }
4082                #[cfg(feature = "protocol-cosmic_corner_radius_v1")]
4083                Self::CosmicCornerRadiusManagerV1 => {
4084                    if version > CosmicCornerRadiusManagerV1::XML_VERSION {
4085                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
4086                    }
4087                    Ok(CosmicCornerRadiusManagerV1::new(state, version))
4088                }
4089                #[cfg(feature = "protocol-cosmic_corner_radius_v1")]
4090                Self::CosmicCornerRadiusToplevelV1 => {
4091                    if version > CosmicCornerRadiusToplevelV1::XML_VERSION {
4092                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
4093                    }
4094                    Ok(CosmicCornerRadiusToplevelV1::new(state, version))
4095                }
4096                #[cfg(feature = "protocol-cosmic_image_source_unstable_v1")]
4097                Self::ZcosmicWorkspaceImageCaptureSourceManagerV1 => {
4098                    if version > ZcosmicWorkspaceImageCaptureSourceManagerV1::XML_VERSION {
4099                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
4100                    }
4101                    Ok(ZcosmicWorkspaceImageCaptureSourceManagerV1::new(state, version))
4102                }
4103                #[cfg(feature = "protocol-cosmic_output_management_unstable_v1")]
4104                Self::ZcosmicOutputConfigurationHeadV1 => {
4105                    if version > ZcosmicOutputConfigurationHeadV1::XML_VERSION {
4106                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
4107                    }
4108                    Ok(ZcosmicOutputConfigurationHeadV1::new(state, version))
4109                }
4110                #[cfg(feature = "protocol-cosmic_output_management_unstable_v1")]
4111                Self::ZcosmicOutputConfigurationV1 => {
4112                    if version > ZcosmicOutputConfigurationV1::XML_VERSION {
4113                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
4114                    }
4115                    Ok(ZcosmicOutputConfigurationV1::new(state, version))
4116                }
4117                #[cfg(feature = "protocol-cosmic_output_management_unstable_v1")]
4118                Self::ZcosmicOutputHeadV1 => {
4119                    if version > ZcosmicOutputHeadV1::XML_VERSION {
4120                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
4121                    }
4122                    Ok(ZcosmicOutputHeadV1::new(state, version))
4123                }
4124                #[cfg(feature = "protocol-cosmic_output_management_unstable_v1")]
4125                Self::ZcosmicOutputManagerV1 => {
4126                    if version > ZcosmicOutputManagerV1::XML_VERSION {
4127                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
4128                    }
4129                    Ok(ZcosmicOutputManagerV1::new(state, version))
4130                }
4131                #[cfg(feature = "protocol-cosmic_overlap_notify_unstable_v1")]
4132                Self::ZcosmicOverlapNotificationV1 => {
4133                    if version > ZcosmicOverlapNotificationV1::XML_VERSION {
4134                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
4135                    }
4136                    Ok(ZcosmicOverlapNotificationV1::new(state, version))
4137                }
4138                #[cfg(feature = "protocol-cosmic_overlap_notify_unstable_v1")]
4139                Self::ZcosmicOverlapNotifyV1 => {
4140                    if version > ZcosmicOverlapNotifyV1::XML_VERSION {
4141                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
4142                    }
4143                    Ok(ZcosmicOverlapNotifyV1::new(state, version))
4144                }
4145                #[cfg(feature = "protocol-cosmic_workspace_unstable_v2")]
4146                Self::ZcosmicWorkspaceHandleV2 => {
4147                    if version > ZcosmicWorkspaceHandleV2::XML_VERSION {
4148                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
4149                    }
4150                    Ok(ZcosmicWorkspaceHandleV2::new(state, version))
4151                }
4152                #[cfg(feature = "protocol-cosmic_workspace_unstable_v2")]
4153                Self::ZcosmicWorkspaceManagerV2 => {
4154                    if version > ZcosmicWorkspaceManagerV2::XML_VERSION {
4155                        return Err(ObjectError(ObjectErrorKind::MaxVersion(self, version)));
4156                    }
4157                    Ok(ZcosmicWorkspaceManagerV2::new(state, version))
4158                }
4159            }
4160        }
4161    }
4162}
4163
4164#[derive(Copy, Clone, Debug, Eq, PartialEq, linearize::Linearize)]
4165#[linearize(const)]
4166pub enum ObjectInterface {
4167    /// hyprland_ctm_control_manager_v1
4168    #[cfg(feature = "protocol-hyprland_ctm_control_v1")]
4169    HyprlandCtmControlManagerV1,
4170    /// hyprland_focus_grab_manager_v1
4171    #[cfg(feature = "protocol-hyprland_focus_grab_v1")]
4172    HyprlandFocusGrabManagerV1,
4173    /// hyprland_focus_grab_v1
4174    #[cfg(feature = "protocol-hyprland_focus_grab_v1")]
4175    HyprlandFocusGrabV1,
4176    /// hyprland_global_shortcut_v1
4177    #[cfg(feature = "protocol-hyprland_global_shortcuts_v1")]
4178    HyprlandGlobalShortcutV1,
4179    /// hyprland_global_shortcuts_manager_v1
4180    #[cfg(feature = "protocol-hyprland_global_shortcuts_v1")]
4181    HyprlandGlobalShortcutsManagerV1,
4182    /// hyprland_input_capture_manager_v1
4183    #[cfg(feature = "protocol-hyprland_input_capture_v1")]
4184    HyprlandInputCaptureManagerV1,
4185    /// hyprland_input_capture_v1
4186    #[cfg(feature = "protocol-hyprland_input_capture_v1")]
4187    HyprlandInputCaptureV1,
4188    /// hyprland_lock_notification_v1
4189    #[cfg(feature = "protocol-hyprland_lock_notify_v1")]
4190    HyprlandLockNotificationV1,
4191    /// hyprland_lock_notifier_v1
4192    #[cfg(feature = "protocol-hyprland_lock_notify_v1")]
4193    HyprlandLockNotifierV1,
4194    /// hyprland_surface_manager_v1
4195    #[cfg(feature = "protocol-hyprland_surface_v1")]
4196    HyprlandSurfaceManagerV1,
4197    /// hyprland_surface_v1
4198    #[cfg(feature = "protocol-hyprland_surface_v1")]
4199    HyprlandSurfaceV1,
4200    /// hyprland_toplevel_export_frame_v1
4201    #[cfg(feature = "protocol-hyprland_toplevel_export_v1")]
4202    HyprlandToplevelExportFrameV1,
4203    /// hyprland_toplevel_export_manager_v1
4204    #[cfg(feature = "protocol-hyprland_toplevel_export_v1")]
4205    HyprlandToplevelExportManagerV1,
4206    /// hyprland_toplevel_mapping_manager_v1
4207    #[cfg(feature = "protocol-hyprland_toplevel_mapping_v1")]
4208    HyprlandToplevelMappingManagerV1,
4209    /// hyprland_toplevel_window_mapping_handle_v1
4210    #[cfg(feature = "protocol-hyprland_toplevel_mapping_v1")]
4211    HyprlandToplevelWindowMappingHandleV1,
4212    /// jay_popup_ext_manager_v1
4213    #[cfg(feature = "protocol-jay_popup_ext_v1")]
4214    JayPopupExtManagerV1,
4215    /// jay_popup_ext_v1
4216    #[cfg(feature = "protocol-jay_popup_ext_v1")]
4217    JayPopupExtV1,
4218    /// jay_tray_item_v1
4219    #[cfg(feature = "protocol-jay_tray_v1")]
4220    JayTrayItemV1,
4221    /// jay_tray_v1
4222    #[cfg(feature = "protocol-jay_tray_v1")]
4223    JayTrayV1,
4224    /// wl_drm
4225    #[cfg(feature = "protocol-drm")]
4226    WlDrm,
4227    /// zwp_input_method_keyboard_grab_v2
4228    #[cfg(feature = "protocol-input_method_unstable_v2")]
4229    ZwpInputMethodKeyboardGrabV2,
4230    /// zwp_input_method_manager_v2
4231    #[cfg(feature = "protocol-input_method_unstable_v2")]
4232    ZwpInputMethodManagerV2,
4233    /// zwp_input_method_v2
4234    #[cfg(feature = "protocol-input_method_unstable_v2")]
4235    ZwpInputMethodV2,
4236    /// zwp_input_popup_surface_v2
4237    #[cfg(feature = "protocol-input_method_unstable_v2")]
4238    ZwpInputPopupSurfaceV2,
4239    /// org_kde_kwin_server_decoration
4240    #[cfg(feature = "protocol-org_kde_kwin_server_decoration_v1")]
4241    OrgKdeKwinServerDecoration,
4242    /// org_kde_kwin_server_decoration_manager
4243    #[cfg(feature = "protocol-org_kde_kwin_server_decoration_v1")]
4244    OrgKdeKwinServerDecorationManager,
4245    /// zwp_virtual_keyboard_manager_v1
4246    #[cfg(feature = "protocol-virtual_keyboard_unstable_v1")]
4247    ZwpVirtualKeyboardManagerV1,
4248    /// zwp_virtual_keyboard_v1
4249    #[cfg(feature = "protocol-virtual_keyboard_unstable_v1")]
4250    ZwpVirtualKeyboardV1,
4251    /// wl_buffer
4252    WlBuffer,
4253    /// wl_callback
4254    WlCallback,
4255    /// wl_compositor
4256    WlCompositor,
4257    /// wl_data_device
4258    WlDataDevice,
4259    /// wl_data_device_manager
4260    WlDataDeviceManager,
4261    /// wl_data_offer
4262    WlDataOffer,
4263    /// wl_data_source
4264    WlDataSource,
4265    /// wl_display
4266    WlDisplay,
4267    /// wl_fixes
4268    WlFixes,
4269    /// wl_keyboard
4270    WlKeyboard,
4271    /// wl_output
4272    WlOutput,
4273    /// wl_pointer
4274    WlPointer,
4275    /// wl_region
4276    WlRegion,
4277    /// wl_registry
4278    WlRegistry,
4279    /// wl_seat
4280    WlSeat,
4281    /// wl_shell
4282    WlShell,
4283    /// wl_shell_surface
4284    WlShellSurface,
4285    /// wl_shm
4286    WlShm,
4287    /// wl_shm_pool
4288    WlShmPool,
4289    /// wl_subcompositor
4290    WlSubcompositor,
4291    /// wl_subsurface
4292    WlSubsurface,
4293    /// wl_surface
4294    WlSurface,
4295    /// wl_touch
4296    WlTouch,
4297    /// wp_alpha_modifier_surface_v1
4298    #[cfg(feature = "protocol-alpha_modifier_v1")]
4299    WpAlphaModifierSurfaceV1,
4300    /// wp_alpha_modifier_v1
4301    #[cfg(feature = "protocol-alpha_modifier_v1")]
4302    WpAlphaModifierV1,
4303    /// wp_color_management_output_v1
4304    #[cfg(feature = "protocol-color_management_v1")]
4305    WpColorManagementOutputV1,
4306    /// wp_color_management_surface_feedback_v1
4307    #[cfg(feature = "protocol-color_management_v1")]
4308    WpColorManagementSurfaceFeedbackV1,
4309    /// wp_color_management_surface_v1
4310    #[cfg(feature = "protocol-color_management_v1")]
4311    WpColorManagementSurfaceV1,
4312    /// wp_color_manager_v1
4313    #[cfg(feature = "protocol-color_management_v1")]
4314    WpColorManagerV1,
4315    /// wp_image_description_creator_icc_v1
4316    #[cfg(feature = "protocol-color_management_v1")]
4317    WpImageDescriptionCreatorIccV1,
4318    /// wp_image_description_creator_params_v1
4319    #[cfg(feature = "protocol-color_management_v1")]
4320    WpImageDescriptionCreatorParamsV1,
4321    /// wp_image_description_info_v1
4322    #[cfg(feature = "protocol-color_management_v1")]
4323    WpImageDescriptionInfoV1,
4324    /// wp_image_description_reference_v1
4325    #[cfg(feature = "protocol-color_management_v1")]
4326    WpImageDescriptionReferenceV1,
4327    /// wp_image_description_v1
4328    #[cfg(feature = "protocol-color_management_v1")]
4329    WpImageDescriptionV1,
4330    /// wp_color_representation_manager_v1
4331    #[cfg(feature = "protocol-color_representation_v1")]
4332    WpColorRepresentationManagerV1,
4333    /// wp_color_representation_surface_v1
4334    #[cfg(feature = "protocol-color_representation_v1")]
4335    WpColorRepresentationSurfaceV1,
4336    /// wp_commit_timer_v1
4337    #[cfg(feature = "protocol-commit_timing_v1")]
4338    WpCommitTimerV1,
4339    /// wp_commit_timing_manager_v1
4340    #[cfg(feature = "protocol-commit_timing_v1")]
4341    WpCommitTimingManagerV1,
4342    /// wp_content_type_manager_v1
4343    #[cfg(feature = "protocol-content_type_v1")]
4344    WpContentTypeManagerV1,
4345    /// wp_content_type_v1
4346    #[cfg(feature = "protocol-content_type_v1")]
4347    WpContentTypeV1,
4348    /// wp_cursor_shape_device_v1
4349    #[cfg(feature = "protocol-cursor_shape_v1")]
4350    WpCursorShapeDeviceV1,
4351    /// wp_cursor_shape_manager_v1
4352    #[cfg(feature = "protocol-cursor_shape_v1")]
4353    WpCursorShapeManagerV1,
4354    /// wp_drm_lease_connector_v1
4355    #[cfg(feature = "protocol-drm_lease_v1")]
4356    WpDrmLeaseConnectorV1,
4357    /// wp_drm_lease_device_v1
4358    #[cfg(feature = "protocol-drm_lease_v1")]
4359    WpDrmLeaseDeviceV1,
4360    /// wp_drm_lease_request_v1
4361    #[cfg(feature = "protocol-drm_lease_v1")]
4362    WpDrmLeaseRequestV1,
4363    /// wp_drm_lease_v1
4364    #[cfg(feature = "protocol-drm_lease_v1")]
4365    WpDrmLeaseV1,
4366    /// ext_background_effect_manager_v1
4367    #[cfg(feature = "protocol-ext_background_effect_v1")]
4368    ExtBackgroundEffectManagerV1,
4369    /// ext_background_effect_surface_v1
4370    #[cfg(feature = "protocol-ext_background_effect_v1")]
4371    ExtBackgroundEffectSurfaceV1,
4372    /// ext_data_control_device_v1
4373    #[cfg(feature = "protocol-ext_data_control_v1")]
4374    ExtDataControlDeviceV1,
4375    /// ext_data_control_manager_v1
4376    #[cfg(feature = "protocol-ext_data_control_v1")]
4377    ExtDataControlManagerV1,
4378    /// ext_data_control_offer_v1
4379    #[cfg(feature = "protocol-ext_data_control_v1")]
4380    ExtDataControlOfferV1,
4381    /// ext_data_control_source_v1
4382    #[cfg(feature = "protocol-ext_data_control_v1")]
4383    ExtDataControlSourceV1,
4384    /// ext_foreign_toplevel_handle_v1
4385    #[cfg(feature = "protocol-ext_foreign_toplevel_list_v1")]
4386    ExtForeignToplevelHandleV1,
4387    /// ext_foreign_toplevel_list_v1
4388    #[cfg(feature = "protocol-ext_foreign_toplevel_list_v1")]
4389    ExtForeignToplevelListV1,
4390    /// ext_idle_notification_v1
4391    #[cfg(feature = "protocol-ext_idle_notify_v1")]
4392    ExtIdleNotificationV1,
4393    /// ext_idle_notifier_v1
4394    #[cfg(feature = "protocol-ext_idle_notify_v1")]
4395    ExtIdleNotifierV1,
4396    /// ext_foreign_toplevel_image_capture_source_manager_v1
4397    #[cfg(feature = "protocol-ext_image_capture_source_v1")]
4398    ExtForeignToplevelImageCaptureSourceManagerV1,
4399    /// ext_image_capture_source_v1
4400    #[cfg(feature = "protocol-ext_image_capture_source_v1")]
4401    ExtImageCaptureSourceV1,
4402    /// ext_output_image_capture_source_manager_v1
4403    #[cfg(feature = "protocol-ext_image_capture_source_v1")]
4404    ExtOutputImageCaptureSourceManagerV1,
4405    /// ext_image_copy_capture_cursor_session_v1
4406    #[cfg(feature = "protocol-ext_image_copy_capture_v1")]
4407    ExtImageCopyCaptureCursorSessionV1,
4408    /// ext_image_copy_capture_frame_v1
4409    #[cfg(feature = "protocol-ext_image_copy_capture_v1")]
4410    ExtImageCopyCaptureFrameV1,
4411    /// ext_image_copy_capture_manager_v1
4412    #[cfg(feature = "protocol-ext_image_copy_capture_v1")]
4413    ExtImageCopyCaptureManagerV1,
4414    /// ext_image_copy_capture_session_v1
4415    #[cfg(feature = "protocol-ext_image_copy_capture_v1")]
4416    ExtImageCopyCaptureSessionV1,
4417    /// ext_session_lock_manager_v1
4418    #[cfg(feature = "protocol-ext_session_lock_v1")]
4419    ExtSessionLockManagerV1,
4420    /// ext_session_lock_surface_v1
4421    #[cfg(feature = "protocol-ext_session_lock_v1")]
4422    ExtSessionLockSurfaceV1,
4423    /// ext_session_lock_v1
4424    #[cfg(feature = "protocol-ext_session_lock_v1")]
4425    ExtSessionLockV1,
4426    /// ext_transient_seat_manager_v1
4427    #[cfg(feature = "protocol-ext_transient_seat_v1")]
4428    ExtTransientSeatManagerV1,
4429    /// ext_transient_seat_v1
4430    #[cfg(feature = "protocol-ext_transient_seat_v1")]
4431    ExtTransientSeatV1,
4432    /// ext_workspace_group_handle_v1
4433    #[cfg(feature = "protocol-ext_workspace_v1")]
4434    ExtWorkspaceGroupHandleV1,
4435    /// ext_workspace_handle_v1
4436    #[cfg(feature = "protocol-ext_workspace_v1")]
4437    ExtWorkspaceHandleV1,
4438    /// ext_workspace_manager_v1
4439    #[cfg(feature = "protocol-ext_workspace_v1")]
4440    ExtWorkspaceManagerV1,
4441    /// wp_fifo_manager_v1
4442    #[cfg(feature = "protocol-fifo_v1")]
4443    WpFifoManagerV1,
4444    /// wp_fifo_v1
4445    #[cfg(feature = "protocol-fifo_v1")]
4446    WpFifoV1,
4447    /// wp_fractional_scale_manager_v1
4448    #[cfg(feature = "protocol-fractional_scale_v1")]
4449    WpFractionalScaleManagerV1,
4450    /// wp_fractional_scale_v1
4451    #[cfg(feature = "protocol-fractional_scale_v1")]
4452    WpFractionalScaleV1,
4453    /// zwp_fullscreen_shell_mode_feedback_v1
4454    #[cfg(feature = "protocol-fullscreen_shell_unstable_v1")]
4455    ZwpFullscreenShellModeFeedbackV1,
4456    /// zwp_fullscreen_shell_v1
4457    #[cfg(feature = "protocol-fullscreen_shell_unstable_v1")]
4458    ZwpFullscreenShellV1,
4459    /// zwp_idle_inhibit_manager_v1
4460    #[cfg(feature = "protocol-idle_inhibit_unstable_v1")]
4461    ZwpIdleInhibitManagerV1,
4462    /// zwp_idle_inhibitor_v1
4463    #[cfg(feature = "protocol-idle_inhibit_unstable_v1")]
4464    ZwpIdleInhibitorV1,
4465    /// zwp_input_method_context_v1
4466    #[cfg(feature = "protocol-input_method_unstable_v1")]
4467    ZwpInputMethodContextV1,
4468    /// zwp_input_method_v1
4469    #[cfg(feature = "protocol-input_method_unstable_v1")]
4470    ZwpInputMethodV1,
4471    /// zwp_input_panel_surface_v1
4472    #[cfg(feature = "protocol-input_method_unstable_v1")]
4473    ZwpInputPanelSurfaceV1,
4474    /// zwp_input_panel_v1
4475    #[cfg(feature = "protocol-input_method_unstable_v1")]
4476    ZwpInputPanelV1,
4477    /// zwp_input_timestamps_manager_v1
4478    #[cfg(feature = "protocol-input_timestamps_unstable_v1")]
4479    ZwpInputTimestampsManagerV1,
4480    /// zwp_input_timestamps_v1
4481    #[cfg(feature = "protocol-input_timestamps_unstable_v1")]
4482    ZwpInputTimestampsV1,
4483    /// zwp_keyboard_shortcuts_inhibit_manager_v1
4484    #[cfg(feature = "protocol-keyboard_shortcuts_inhibit_unstable_v1")]
4485    ZwpKeyboardShortcutsInhibitManagerV1,
4486    /// zwp_keyboard_shortcuts_inhibitor_v1
4487    #[cfg(feature = "protocol-keyboard_shortcuts_inhibit_unstable_v1")]
4488    ZwpKeyboardShortcutsInhibitorV1,
4489    /// zwp_linux_buffer_params_v1
4490    #[cfg(feature = "protocol-linux_dmabuf_v1")]
4491    ZwpLinuxBufferParamsV1,
4492    /// zwp_linux_dmabuf_feedback_v1
4493    #[cfg(feature = "protocol-linux_dmabuf_v1")]
4494    ZwpLinuxDmabufFeedbackV1,
4495    /// zwp_linux_dmabuf_v1
4496    #[cfg(feature = "protocol-linux_dmabuf_v1")]
4497    ZwpLinuxDmabufV1,
4498    /// wp_linux_drm_syncobj_manager_v1
4499    #[cfg(feature = "protocol-linux_drm_syncobj_v1")]
4500    WpLinuxDrmSyncobjManagerV1,
4501    /// wp_linux_drm_syncobj_surface_v1
4502    #[cfg(feature = "protocol-linux_drm_syncobj_v1")]
4503    WpLinuxDrmSyncobjSurfaceV1,
4504    /// wp_linux_drm_syncobj_timeline_v1
4505    #[cfg(feature = "protocol-linux_drm_syncobj_v1")]
4506    WpLinuxDrmSyncobjTimelineV1,
4507    /// zwp_confined_pointer_v1
4508    #[cfg(feature = "protocol-pointer_constraints_unstable_v1")]
4509    ZwpConfinedPointerV1,
4510    /// zwp_locked_pointer_v1
4511    #[cfg(feature = "protocol-pointer_constraints_unstable_v1")]
4512    ZwpLockedPointerV1,
4513    /// zwp_pointer_constraints_v1
4514    #[cfg(feature = "protocol-pointer_constraints_unstable_v1")]
4515    ZwpPointerConstraintsV1,
4516    /// zwp_pointer_gesture_hold_v1
4517    #[cfg(feature = "protocol-pointer_gestures_unstable_v1")]
4518    ZwpPointerGestureHoldV1,
4519    /// zwp_pointer_gesture_pinch_v1
4520    #[cfg(feature = "protocol-pointer_gestures_unstable_v1")]
4521    ZwpPointerGesturePinchV1,
4522    /// zwp_pointer_gesture_swipe_v1
4523    #[cfg(feature = "protocol-pointer_gestures_unstable_v1")]
4524    ZwpPointerGestureSwipeV1,
4525    /// zwp_pointer_gestures_v1
4526    #[cfg(feature = "protocol-pointer_gestures_unstable_v1")]
4527    ZwpPointerGesturesV1,
4528    /// wp_pointer_warp_v1
4529    #[cfg(feature = "protocol-pointer_warp_v1")]
4530    WpPointerWarpV1,
4531    /// wp_presentation
4532    #[cfg(feature = "protocol-presentation_time")]
4533    WpPresentation,
4534    /// wp_presentation_feedback
4535    #[cfg(feature = "protocol-presentation_time")]
4536    WpPresentationFeedback,
4537    /// zwp_relative_pointer_manager_v1
4538    #[cfg(feature = "protocol-relative_pointer_unstable_v1")]
4539    ZwpRelativePointerManagerV1,
4540    /// zwp_relative_pointer_v1
4541    #[cfg(feature = "protocol-relative_pointer_unstable_v1")]
4542    ZwpRelativePointerV1,
4543    /// wp_security_context_manager_v1
4544    #[cfg(feature = "protocol-security_context_v1")]
4545    WpSecurityContextManagerV1,
4546    /// wp_security_context_v1
4547    #[cfg(feature = "protocol-security_context_v1")]
4548    WpSecurityContextV1,
4549    /// wp_single_pixel_buffer_manager_v1
4550    #[cfg(feature = "protocol-single_pixel_buffer_v1")]
4551    WpSinglePixelBufferManagerV1,
4552    /// zwp_tablet_manager_v2
4553    #[cfg(feature = "protocol-tablet_v2")]
4554    ZwpTabletManagerV2,
4555    /// zwp_tablet_pad_dial_v2
4556    #[cfg(feature = "protocol-tablet_v2")]
4557    ZwpTabletPadDialV2,
4558    /// zwp_tablet_pad_group_v2
4559    #[cfg(feature = "protocol-tablet_v2")]
4560    ZwpTabletPadGroupV2,
4561    /// zwp_tablet_pad_ring_v2
4562    #[cfg(feature = "protocol-tablet_v2")]
4563    ZwpTabletPadRingV2,
4564    /// zwp_tablet_pad_strip_v2
4565    #[cfg(feature = "protocol-tablet_v2")]
4566    ZwpTabletPadStripV2,
4567    /// zwp_tablet_pad_v2
4568    #[cfg(feature = "protocol-tablet_v2")]
4569    ZwpTabletPadV2,
4570    /// zwp_tablet_seat_v2
4571    #[cfg(feature = "protocol-tablet_v2")]
4572    ZwpTabletSeatV2,
4573    /// zwp_tablet_tool_v2
4574    #[cfg(feature = "protocol-tablet_v2")]
4575    ZwpTabletToolV2,
4576    /// zwp_tablet_v2
4577    #[cfg(feature = "protocol-tablet_v2")]
4578    ZwpTabletV2,
4579    /// wp_tearing_control_manager_v1
4580    #[cfg(feature = "protocol-tearing_control_v1")]
4581    WpTearingControlManagerV1,
4582    /// wp_tearing_control_v1
4583    #[cfg(feature = "protocol-tearing_control_v1")]
4584    WpTearingControlV1,
4585    /// zwp_text_input_manager_v1
4586    #[cfg(feature = "protocol-text_input_unstable_v1")]
4587    ZwpTextInputManagerV1,
4588    /// zwp_text_input_v1
4589    #[cfg(feature = "protocol-text_input_unstable_v1")]
4590    ZwpTextInputV1,
4591    /// zwp_text_input_manager_v3
4592    #[cfg(feature = "protocol-text_input_unstable_v3")]
4593    ZwpTextInputManagerV3,
4594    /// zwp_text_input_v3
4595    #[cfg(feature = "protocol-text_input_unstable_v3")]
4596    ZwpTextInputV3,
4597    /// wp_viewport
4598    #[cfg(feature = "protocol-viewporter")]
4599    WpViewport,
4600    /// wp_viewporter
4601    #[cfg(feature = "protocol-viewporter")]
4602    WpViewporter,
4603    /// zwp_primary_selection_device_manager_v1
4604    #[cfg(feature = "protocol-wp_primary_selection_unstable_v1")]
4605    ZwpPrimarySelectionDeviceManagerV1,
4606    /// zwp_primary_selection_device_v1
4607    #[cfg(feature = "protocol-wp_primary_selection_unstable_v1")]
4608    ZwpPrimarySelectionDeviceV1,
4609    /// zwp_primary_selection_offer_v1
4610    #[cfg(feature = "protocol-wp_primary_selection_unstable_v1")]
4611    ZwpPrimarySelectionOfferV1,
4612    /// zwp_primary_selection_source_v1
4613    #[cfg(feature = "protocol-wp_primary_selection_unstable_v1")]
4614    ZwpPrimarySelectionSourceV1,
4615    /// xdg_activation_token_v1
4616    #[cfg(feature = "protocol-xdg_activation_v1")]
4617    XdgActivationTokenV1,
4618    /// xdg_activation_v1
4619    #[cfg(feature = "protocol-xdg_activation_v1")]
4620    XdgActivationV1,
4621    /// zxdg_decoration_manager_v1
4622    #[cfg(feature = "protocol-xdg_decoration_unstable_v1")]
4623    ZxdgDecorationManagerV1,
4624    /// zxdg_toplevel_decoration_v1
4625    #[cfg(feature = "protocol-xdg_decoration_unstable_v1")]
4626    ZxdgToplevelDecorationV1,
4627    /// xdg_dialog_v1
4628    #[cfg(feature = "protocol-xdg_dialog_v1")]
4629    XdgDialogV1,
4630    /// xdg_wm_dialog_v1
4631    #[cfg(feature = "protocol-xdg_dialog_v1")]
4632    XdgWmDialogV1,
4633    /// zxdg_exported_v2
4634    #[cfg(feature = "protocol-xdg_foreign_unstable_v2")]
4635    ZxdgExportedV2,
4636    /// zxdg_exporter_v2
4637    #[cfg(feature = "protocol-xdg_foreign_unstable_v2")]
4638    ZxdgExporterV2,
4639    /// zxdg_imported_v2
4640    #[cfg(feature = "protocol-xdg_foreign_unstable_v2")]
4641    ZxdgImportedV2,
4642    /// zxdg_importer_v2
4643    #[cfg(feature = "protocol-xdg_foreign_unstable_v2")]
4644    ZxdgImporterV2,
4645    /// zxdg_output_manager_v1
4646    #[cfg(feature = "protocol-xdg_output_unstable_v1")]
4647    ZxdgOutputManagerV1,
4648    /// zxdg_output_v1
4649    #[cfg(feature = "protocol-xdg_output_unstable_v1")]
4650    ZxdgOutputV1,
4651    /// xdg_session_manager_v1
4652    #[cfg(feature = "protocol-xdg_session_management_v1")]
4653    XdgSessionManagerV1,
4654    /// xdg_session_v1
4655    #[cfg(feature = "protocol-xdg_session_management_v1")]
4656    XdgSessionV1,
4657    /// xdg_toplevel_session_v1
4658    #[cfg(feature = "protocol-xdg_session_management_v1")]
4659    XdgToplevelSessionV1,
4660    /// xdg_popup
4661    #[cfg(feature = "protocol-xdg_shell")]
4662    XdgPopup,
4663    /// xdg_positioner
4664    #[cfg(feature = "protocol-xdg_shell")]
4665    XdgPositioner,
4666    /// xdg_surface
4667    #[cfg(feature = "protocol-xdg_shell")]
4668    XdgSurface,
4669    /// xdg_toplevel
4670    #[cfg(feature = "protocol-xdg_shell")]
4671    XdgToplevel,
4672    /// xdg_wm_base
4673    #[cfg(feature = "protocol-xdg_shell")]
4674    XdgWmBase,
4675    /// xdg_system_bell_v1
4676    #[cfg(feature = "protocol-xdg_system_bell_v1")]
4677    XdgSystemBellV1,
4678    /// xdg_toplevel_drag_manager_v1
4679    #[cfg(feature = "protocol-xdg_toplevel_drag_v1")]
4680    XdgToplevelDragManagerV1,
4681    /// xdg_toplevel_drag_v1
4682    #[cfg(feature = "protocol-xdg_toplevel_drag_v1")]
4683    XdgToplevelDragV1,
4684    /// xdg_toplevel_icon_manager_v1
4685    #[cfg(feature = "protocol-xdg_toplevel_icon_v1")]
4686    XdgToplevelIconManagerV1,
4687    /// xdg_toplevel_icon_v1
4688    #[cfg(feature = "protocol-xdg_toplevel_icon_v1")]
4689    XdgToplevelIconV1,
4690    /// xdg_toplevel_tag_manager_v1
4691    #[cfg(feature = "protocol-xdg_toplevel_tag_v1")]
4692    XdgToplevelTagManagerV1,
4693    /// zwp_xwayland_keyboard_grab_manager_v1
4694    #[cfg(feature = "protocol-xwayland_keyboard_grab_unstable_v1")]
4695    ZwpXwaylandKeyboardGrabManagerV1,
4696    /// zwp_xwayland_keyboard_grab_v1
4697    #[cfg(feature = "protocol-xwayland_keyboard_grab_unstable_v1")]
4698    ZwpXwaylandKeyboardGrabV1,
4699    /// xwayland_shell_v1
4700    #[cfg(feature = "protocol-xwayland_shell_v1")]
4701    XwaylandShellV1,
4702    /// xwayland_surface_v1
4703    #[cfg(feature = "protocol-xwayland_shell_v1")]
4704    XwaylandSurfaceV1,
4705    /// zwp_linux_buffer_release_v1
4706    #[cfg(feature = "protocol-zwp_linux_explicit_synchronization_unstable_v1")]
4707    ZwpLinuxBufferReleaseV1,
4708    /// zwp_linux_explicit_synchronization_v1
4709    #[cfg(feature = "protocol-zwp_linux_explicit_synchronization_unstable_v1")]
4710    ZwpLinuxExplicitSynchronizationV1,
4711    /// zwp_linux_surface_synchronization_v1
4712    #[cfg(feature = "protocol-zwp_linux_explicit_synchronization_unstable_v1")]
4713    ZwpLinuxSurfaceSynchronizationV1,
4714    /// zwlr_data_control_device_v1
4715    #[cfg(feature = "protocol-wlr_data_control_unstable_v1")]
4716    ZwlrDataControlDeviceV1,
4717    /// zwlr_data_control_manager_v1
4718    #[cfg(feature = "protocol-wlr_data_control_unstable_v1")]
4719    ZwlrDataControlManagerV1,
4720    /// zwlr_data_control_offer_v1
4721    #[cfg(feature = "protocol-wlr_data_control_unstable_v1")]
4722    ZwlrDataControlOfferV1,
4723    /// zwlr_data_control_source_v1
4724    #[cfg(feature = "protocol-wlr_data_control_unstable_v1")]
4725    ZwlrDataControlSourceV1,
4726    /// zwlr_export_dmabuf_frame_v1
4727    #[cfg(feature = "protocol-wlr_export_dmabuf_unstable_v1")]
4728    ZwlrExportDmabufFrameV1,
4729    /// zwlr_export_dmabuf_manager_v1
4730    #[cfg(feature = "protocol-wlr_export_dmabuf_unstable_v1")]
4731    ZwlrExportDmabufManagerV1,
4732    /// zwlr_foreign_toplevel_handle_v1
4733    #[cfg(feature = "protocol-wlr_foreign_toplevel_management_unstable_v1")]
4734    ZwlrForeignToplevelHandleV1,
4735    /// zwlr_foreign_toplevel_manager_v1
4736    #[cfg(feature = "protocol-wlr_foreign_toplevel_management_unstable_v1")]
4737    ZwlrForeignToplevelManagerV1,
4738    /// zwlr_gamma_control_manager_v1
4739    #[cfg(feature = "protocol-wlr_gamma_control_unstable_v1")]
4740    ZwlrGammaControlManagerV1,
4741    /// zwlr_gamma_control_v1
4742    #[cfg(feature = "protocol-wlr_gamma_control_unstable_v1")]
4743    ZwlrGammaControlV1,
4744    /// zwlr_input_inhibit_manager_v1
4745    #[cfg(feature = "protocol-wlr_input_inhibit_unstable_v1")]
4746    ZwlrInputInhibitManagerV1,
4747    /// zwlr_input_inhibitor_v1
4748    #[cfg(feature = "protocol-wlr_input_inhibit_unstable_v1")]
4749    ZwlrInputInhibitorV1,
4750    /// zwlr_layer_shell_v1
4751    #[cfg(feature = "protocol-wlr_layer_shell_unstable_v1")]
4752    ZwlrLayerShellV1,
4753    /// zwlr_layer_surface_v1
4754    #[cfg(feature = "protocol-wlr_layer_shell_unstable_v1")]
4755    ZwlrLayerSurfaceV1,
4756    /// zwlr_output_configuration_head_v1
4757    #[cfg(feature = "protocol-wlr_output_management_unstable_v1")]
4758    ZwlrOutputConfigurationHeadV1,
4759    /// zwlr_output_configuration_v1
4760    #[cfg(feature = "protocol-wlr_output_management_unstable_v1")]
4761    ZwlrOutputConfigurationV1,
4762    /// zwlr_output_head_v1
4763    #[cfg(feature = "protocol-wlr_output_management_unstable_v1")]
4764    ZwlrOutputHeadV1,
4765    /// zwlr_output_manager_v1
4766    #[cfg(feature = "protocol-wlr_output_management_unstable_v1")]
4767    ZwlrOutputManagerV1,
4768    /// zwlr_output_mode_v1
4769    #[cfg(feature = "protocol-wlr_output_management_unstable_v1")]
4770    ZwlrOutputModeV1,
4771    /// zwlr_output_power_manager_v1
4772    #[cfg(feature = "protocol-wlr_output_power_management_unstable_v1")]
4773    ZwlrOutputPowerManagerV1,
4774    /// zwlr_output_power_v1
4775    #[cfg(feature = "protocol-wlr_output_power_management_unstable_v1")]
4776    ZwlrOutputPowerV1,
4777    /// zwlr_screencopy_frame_v1
4778    #[cfg(feature = "protocol-wlr_screencopy_unstable_v1")]
4779    ZwlrScreencopyFrameV1,
4780    /// zwlr_screencopy_manager_v1
4781    #[cfg(feature = "protocol-wlr_screencopy_unstable_v1")]
4782    ZwlrScreencopyManagerV1,
4783    /// zwlr_virtual_pointer_manager_v1
4784    #[cfg(feature = "protocol-wlr_virtual_pointer_unstable_v1")]
4785    ZwlrVirtualPointerManagerV1,
4786    /// zwlr_virtual_pointer_v1
4787    #[cfg(feature = "protocol-wlr_virtual_pointer_unstable_v1")]
4788    ZwlrVirtualPointerV1,
4789    /// wlproxy_sync_v1
4790    #[cfg(feature = "protocol-wlproxy_sync_v1")]
4791    WlproxySyncV1,
4792    /// wlproxy_test
4793    #[cfg(test)]
4794    WlproxyTest,
4795    /// wlproxy_test_array_echo
4796    #[cfg(test)]
4797    WlproxyTestArrayEcho,
4798    /// wlproxy_test_dummy
4799    #[cfg(test)]
4800    WlproxyTestDummy,
4801    /// wlproxy_test_fd_echo
4802    #[cfg(test)]
4803    WlproxyTestFdEcho,
4804    /// wlproxy_test_hops
4805    #[cfg(test)]
4806    WlproxyTestHops,
4807    /// wlproxy_test_non_forward
4808    #[cfg(test)]
4809    WlproxyTestNonForward,
4810    /// wlproxy_test_object_echo
4811    #[cfg(test)]
4812    WlproxyTestObjectEcho,
4813    /// wlproxy_test_server_sent
4814    #[cfg(test)]
4815    WlproxyTestServerSent,
4816    /// river_input_device_v1
4817    #[cfg(feature = "protocol-river_input_management_v1")]
4818    RiverInputDeviceV1,
4819    /// river_input_manager_v1
4820    #[cfg(feature = "protocol-river_input_management_v1")]
4821    RiverInputManagerV1,
4822    /// river_layer_shell_output_v1
4823    #[cfg(feature = "protocol-river_layer_shell_v1")]
4824    RiverLayerShellOutputV1,
4825    /// river_layer_shell_seat_v1
4826    #[cfg(feature = "protocol-river_layer_shell_v1")]
4827    RiverLayerShellSeatV1,
4828    /// river_layer_shell_v1
4829    #[cfg(feature = "protocol-river_layer_shell_v1")]
4830    RiverLayerShellV1,
4831    /// river_libinput_accel_config_v1
4832    #[cfg(feature = "protocol-river_libinput_config_v1")]
4833    RiverLibinputAccelConfigV1,
4834    /// river_libinput_config_v1
4835    #[cfg(feature = "protocol-river_libinput_config_v1")]
4836    RiverLibinputConfigV1,
4837    /// river_libinput_device_v1
4838    #[cfg(feature = "protocol-river_libinput_config_v1")]
4839    RiverLibinputDeviceV1,
4840    /// river_libinput_result_v1
4841    #[cfg(feature = "protocol-river_libinput_config_v1")]
4842    RiverLibinputResultV1,
4843    /// river_decoration_v1
4844    #[cfg(feature = "protocol-river_window_management_v1")]
4845    RiverDecorationV1,
4846    /// river_node_v1
4847    #[cfg(feature = "protocol-river_window_management_v1")]
4848    RiverNodeV1,
4849    /// river_output_v1
4850    #[cfg(feature = "protocol-river_window_management_v1")]
4851    RiverOutputV1,
4852    /// river_pointer_binding_v1
4853    #[cfg(feature = "protocol-river_window_management_v1")]
4854    RiverPointerBindingV1,
4855    /// river_seat_v1
4856    #[cfg(feature = "protocol-river_window_management_v1")]
4857    RiverSeatV1,
4858    /// river_shell_surface_v1
4859    #[cfg(feature = "protocol-river_window_management_v1")]
4860    RiverShellSurfaceV1,
4861    /// river_window_manager_v1
4862    #[cfg(feature = "protocol-river_window_management_v1")]
4863    RiverWindowManagerV1,
4864    /// river_window_v1
4865    #[cfg(feature = "protocol-river_window_management_v1")]
4866    RiverWindowV1,
4867    /// river_xkb_binding_v1
4868    #[cfg(feature = "protocol-river_xkb_bindings_v1")]
4869    RiverXkbBindingV1,
4870    /// river_xkb_bindings_seat_v1
4871    #[cfg(feature = "protocol-river_xkb_bindings_v1")]
4872    RiverXkbBindingsSeatV1,
4873    /// river_xkb_bindings_v1
4874    #[cfg(feature = "protocol-river_xkb_bindings_v1")]
4875    RiverXkbBindingsV1,
4876    /// river_xkb_config_v1
4877    #[cfg(feature = "protocol-river_xkb_config_v1")]
4878    RiverXkbConfigV1,
4879    /// river_xkb_keyboard_v1
4880    #[cfg(feature = "protocol-river_xkb_config_v1")]
4881    RiverXkbKeyboardV1,
4882    /// river_xkb_keymap_v1
4883    #[cfg(feature = "protocol-river_xkb_config_v1")]
4884    RiverXkbKeymapV1,
4885    /// ivi_application
4886    #[cfg(feature = "protocol-ivi_application")]
4887    IviApplication,
4888    /// ivi_surface
4889    #[cfg(feature = "protocol-ivi_application")]
4890    IviSurface,
4891    /// ivi_hmi_controller
4892    #[cfg(feature = "protocol-ivi_hmi_controller")]
4893    IviHmiController,
4894    /// weston_content_protection
4895    #[cfg(feature = "protocol-weston_content_protection")]
4896    WestonContentProtection,
4897    /// weston_protected_surface
4898    #[cfg(feature = "protocol-weston_content_protection")]
4899    WestonProtectedSurface,
4900    /// weston_debug_stream_v1
4901    #[cfg(feature = "protocol-weston_debug")]
4902    WestonDebugStreamV1,
4903    /// weston_debug_v1
4904    #[cfg(feature = "protocol-weston_debug")]
4905    WestonDebugV1,
4906    /// weston_desktop_shell
4907    #[cfg(feature = "protocol-weston_desktop")]
4908    WestonDesktopShell,
4909    /// weston_screensaver
4910    #[cfg(feature = "protocol-weston_desktop")]
4911    WestonScreensaver,
4912    /// weston_direct_display_v1
4913    #[cfg(feature = "protocol-weston_direct_display")]
4914    WestonDirectDisplayV1,
4915    /// weston_capture_source_v1
4916    #[cfg(feature = "protocol-weston_output_capture")]
4917    WestonCaptureSourceV1,
4918    /// weston_capture_v1
4919    #[cfg(feature = "protocol-weston_output_capture")]
4920    WestonCaptureV1,
4921    /// weston_test
4922    #[cfg(feature = "protocol-weston_test")]
4923    WestonTest,
4924    /// weston_test_runner
4925    #[cfg(feature = "protocol-weston_test")]
4926    WestonTestRunner,
4927    /// weston_touch_calibration
4928    #[cfg(feature = "protocol-weston_touch_calibration")]
4929    WestonTouchCalibration,
4930    /// weston_touch_calibrator
4931    #[cfg(feature = "protocol-weston_touch_calibration")]
4932    WestonTouchCalibrator,
4933    /// weston_touch_coordinate
4934    #[cfg(feature = "protocol-weston_touch_calibration")]
4935    WestonTouchCoordinate,
4936    /// cosmic_a11y_manager_v1
4937    #[cfg(feature = "protocol-cosmic_a11y_v1")]
4938    CosmicA11yManagerV1,
4939    /// cosmic_corner_radius_manager_v1
4940    #[cfg(feature = "protocol-cosmic_corner_radius_v1")]
4941    CosmicCornerRadiusManagerV1,
4942    /// cosmic_corner_radius_toplevel_v1
4943    #[cfg(feature = "protocol-cosmic_corner_radius_v1")]
4944    CosmicCornerRadiusToplevelV1,
4945    /// zcosmic_workspace_image_capture_source_manager_v1
4946    #[cfg(feature = "protocol-cosmic_image_source_unstable_v1")]
4947    ZcosmicWorkspaceImageCaptureSourceManagerV1,
4948    /// zcosmic_output_configuration_head_v1
4949    #[cfg(feature = "protocol-cosmic_output_management_unstable_v1")]
4950    ZcosmicOutputConfigurationHeadV1,
4951    /// zcosmic_output_configuration_v1
4952    #[cfg(feature = "protocol-cosmic_output_management_unstable_v1")]
4953    ZcosmicOutputConfigurationV1,
4954    /// zcosmic_output_head_v1
4955    #[cfg(feature = "protocol-cosmic_output_management_unstable_v1")]
4956    ZcosmicOutputHeadV1,
4957    /// zcosmic_output_manager_v1
4958    #[cfg(feature = "protocol-cosmic_output_management_unstable_v1")]
4959    ZcosmicOutputManagerV1,
4960    /// zcosmic_overlap_notification_v1
4961    #[cfg(feature = "protocol-cosmic_overlap_notify_unstable_v1")]
4962    ZcosmicOverlapNotificationV1,
4963    /// zcosmic_overlap_notify_v1
4964    #[cfg(feature = "protocol-cosmic_overlap_notify_unstable_v1")]
4965    ZcosmicOverlapNotifyV1,
4966    /// zcosmic_workspace_handle_v2
4967    #[cfg(feature = "protocol-cosmic_workspace_unstable_v2")]
4968    ZcosmicWorkspaceHandleV2,
4969    /// zcosmic_workspace_manager_v2
4970    #[cfg(feature = "protocol-cosmic_workspace_unstable_v2")]
4971    ZcosmicWorkspaceManagerV2,
4972}
4973
4974impl ObjectInterface {
4975    pub const fn name(self) -> &'static str {
4976        match self {
4977            #[cfg(feature = "protocol-hyprland_ctm_control_v1")]
4978            Self::HyprlandCtmControlManagerV1 => "hyprland_ctm_control_manager_v1",
4979            #[cfg(feature = "protocol-hyprland_focus_grab_v1")]
4980            Self::HyprlandFocusGrabManagerV1 => "hyprland_focus_grab_manager_v1",
4981            #[cfg(feature = "protocol-hyprland_focus_grab_v1")]
4982            Self::HyprlandFocusGrabV1 => "hyprland_focus_grab_v1",
4983            #[cfg(feature = "protocol-hyprland_global_shortcuts_v1")]
4984            Self::HyprlandGlobalShortcutV1 => "hyprland_global_shortcut_v1",
4985            #[cfg(feature = "protocol-hyprland_global_shortcuts_v1")]
4986            Self::HyprlandGlobalShortcutsManagerV1 => "hyprland_global_shortcuts_manager_v1",
4987            #[cfg(feature = "protocol-hyprland_input_capture_v1")]
4988            Self::HyprlandInputCaptureManagerV1 => "hyprland_input_capture_manager_v1",
4989            #[cfg(feature = "protocol-hyprland_input_capture_v1")]
4990            Self::HyprlandInputCaptureV1 => "hyprland_input_capture_v1",
4991            #[cfg(feature = "protocol-hyprland_lock_notify_v1")]
4992            Self::HyprlandLockNotificationV1 => "hyprland_lock_notification_v1",
4993            #[cfg(feature = "protocol-hyprland_lock_notify_v1")]
4994            Self::HyprlandLockNotifierV1 => "hyprland_lock_notifier_v1",
4995            #[cfg(feature = "protocol-hyprland_surface_v1")]
4996            Self::HyprlandSurfaceManagerV1 => "hyprland_surface_manager_v1",
4997            #[cfg(feature = "protocol-hyprland_surface_v1")]
4998            Self::HyprlandSurfaceV1 => "hyprland_surface_v1",
4999            #[cfg(feature = "protocol-hyprland_toplevel_export_v1")]
5000            Self::HyprlandToplevelExportFrameV1 => "hyprland_toplevel_export_frame_v1",
5001            #[cfg(feature = "protocol-hyprland_toplevel_export_v1")]
5002            Self::HyprlandToplevelExportManagerV1 => "hyprland_toplevel_export_manager_v1",
5003            #[cfg(feature = "protocol-hyprland_toplevel_mapping_v1")]
5004            Self::HyprlandToplevelMappingManagerV1 => "hyprland_toplevel_mapping_manager_v1",
5005            #[cfg(feature = "protocol-hyprland_toplevel_mapping_v1")]
5006            Self::HyprlandToplevelWindowMappingHandleV1 => "hyprland_toplevel_window_mapping_handle_v1",
5007            #[cfg(feature = "protocol-jay_popup_ext_v1")]
5008            Self::JayPopupExtManagerV1 => "jay_popup_ext_manager_v1",
5009            #[cfg(feature = "protocol-jay_popup_ext_v1")]
5010            Self::JayPopupExtV1 => "jay_popup_ext_v1",
5011            #[cfg(feature = "protocol-jay_tray_v1")]
5012            Self::JayTrayItemV1 => "jay_tray_item_v1",
5013            #[cfg(feature = "protocol-jay_tray_v1")]
5014            Self::JayTrayV1 => "jay_tray_v1",
5015            #[cfg(feature = "protocol-drm")]
5016            Self::WlDrm => "wl_drm",
5017            #[cfg(feature = "protocol-input_method_unstable_v2")]
5018            Self::ZwpInputMethodKeyboardGrabV2 => "zwp_input_method_keyboard_grab_v2",
5019            #[cfg(feature = "protocol-input_method_unstable_v2")]
5020            Self::ZwpInputMethodManagerV2 => "zwp_input_method_manager_v2",
5021            #[cfg(feature = "protocol-input_method_unstable_v2")]
5022            Self::ZwpInputMethodV2 => "zwp_input_method_v2",
5023            #[cfg(feature = "protocol-input_method_unstable_v2")]
5024            Self::ZwpInputPopupSurfaceV2 => "zwp_input_popup_surface_v2",
5025            #[cfg(feature = "protocol-org_kde_kwin_server_decoration_v1")]
5026            Self::OrgKdeKwinServerDecoration => "org_kde_kwin_server_decoration",
5027            #[cfg(feature = "protocol-org_kde_kwin_server_decoration_v1")]
5028            Self::OrgKdeKwinServerDecorationManager => "org_kde_kwin_server_decoration_manager",
5029            #[cfg(feature = "protocol-virtual_keyboard_unstable_v1")]
5030            Self::ZwpVirtualKeyboardManagerV1 => "zwp_virtual_keyboard_manager_v1",
5031            #[cfg(feature = "protocol-virtual_keyboard_unstable_v1")]
5032            Self::ZwpVirtualKeyboardV1 => "zwp_virtual_keyboard_v1",
5033            Self::WlBuffer => "wl_buffer",
5034            Self::WlCallback => "wl_callback",
5035            Self::WlCompositor => "wl_compositor",
5036            Self::WlDataDevice => "wl_data_device",
5037            Self::WlDataDeviceManager => "wl_data_device_manager",
5038            Self::WlDataOffer => "wl_data_offer",
5039            Self::WlDataSource => "wl_data_source",
5040            Self::WlDisplay => "wl_display",
5041            Self::WlFixes => "wl_fixes",
5042            Self::WlKeyboard => "wl_keyboard",
5043            Self::WlOutput => "wl_output",
5044            Self::WlPointer => "wl_pointer",
5045            Self::WlRegion => "wl_region",
5046            Self::WlRegistry => "wl_registry",
5047            Self::WlSeat => "wl_seat",
5048            Self::WlShell => "wl_shell",
5049            Self::WlShellSurface => "wl_shell_surface",
5050            Self::WlShm => "wl_shm",
5051            Self::WlShmPool => "wl_shm_pool",
5052            Self::WlSubcompositor => "wl_subcompositor",
5053            Self::WlSubsurface => "wl_subsurface",
5054            Self::WlSurface => "wl_surface",
5055            Self::WlTouch => "wl_touch",
5056            #[cfg(feature = "protocol-alpha_modifier_v1")]
5057            Self::WpAlphaModifierSurfaceV1 => "wp_alpha_modifier_surface_v1",
5058            #[cfg(feature = "protocol-alpha_modifier_v1")]
5059            Self::WpAlphaModifierV1 => "wp_alpha_modifier_v1",
5060            #[cfg(feature = "protocol-color_management_v1")]
5061            Self::WpColorManagementOutputV1 => "wp_color_management_output_v1",
5062            #[cfg(feature = "protocol-color_management_v1")]
5063            Self::WpColorManagementSurfaceFeedbackV1 => "wp_color_management_surface_feedback_v1",
5064            #[cfg(feature = "protocol-color_management_v1")]
5065            Self::WpColorManagementSurfaceV1 => "wp_color_management_surface_v1",
5066            #[cfg(feature = "protocol-color_management_v1")]
5067            Self::WpColorManagerV1 => "wp_color_manager_v1",
5068            #[cfg(feature = "protocol-color_management_v1")]
5069            Self::WpImageDescriptionCreatorIccV1 => "wp_image_description_creator_icc_v1",
5070            #[cfg(feature = "protocol-color_management_v1")]
5071            Self::WpImageDescriptionCreatorParamsV1 => "wp_image_description_creator_params_v1",
5072            #[cfg(feature = "protocol-color_management_v1")]
5073            Self::WpImageDescriptionInfoV1 => "wp_image_description_info_v1",
5074            #[cfg(feature = "protocol-color_management_v1")]
5075            Self::WpImageDescriptionReferenceV1 => "wp_image_description_reference_v1",
5076            #[cfg(feature = "protocol-color_management_v1")]
5077            Self::WpImageDescriptionV1 => "wp_image_description_v1",
5078            #[cfg(feature = "protocol-color_representation_v1")]
5079            Self::WpColorRepresentationManagerV1 => "wp_color_representation_manager_v1",
5080            #[cfg(feature = "protocol-color_representation_v1")]
5081            Self::WpColorRepresentationSurfaceV1 => "wp_color_representation_surface_v1",
5082            #[cfg(feature = "protocol-commit_timing_v1")]
5083            Self::WpCommitTimerV1 => "wp_commit_timer_v1",
5084            #[cfg(feature = "protocol-commit_timing_v1")]
5085            Self::WpCommitTimingManagerV1 => "wp_commit_timing_manager_v1",
5086            #[cfg(feature = "protocol-content_type_v1")]
5087            Self::WpContentTypeManagerV1 => "wp_content_type_manager_v1",
5088            #[cfg(feature = "protocol-content_type_v1")]
5089            Self::WpContentTypeV1 => "wp_content_type_v1",
5090            #[cfg(feature = "protocol-cursor_shape_v1")]
5091            Self::WpCursorShapeDeviceV1 => "wp_cursor_shape_device_v1",
5092            #[cfg(feature = "protocol-cursor_shape_v1")]
5093            Self::WpCursorShapeManagerV1 => "wp_cursor_shape_manager_v1",
5094            #[cfg(feature = "protocol-drm_lease_v1")]
5095            Self::WpDrmLeaseConnectorV1 => "wp_drm_lease_connector_v1",
5096            #[cfg(feature = "protocol-drm_lease_v1")]
5097            Self::WpDrmLeaseDeviceV1 => "wp_drm_lease_device_v1",
5098            #[cfg(feature = "protocol-drm_lease_v1")]
5099            Self::WpDrmLeaseRequestV1 => "wp_drm_lease_request_v1",
5100            #[cfg(feature = "protocol-drm_lease_v1")]
5101            Self::WpDrmLeaseV1 => "wp_drm_lease_v1",
5102            #[cfg(feature = "protocol-ext_background_effect_v1")]
5103            Self::ExtBackgroundEffectManagerV1 => "ext_background_effect_manager_v1",
5104            #[cfg(feature = "protocol-ext_background_effect_v1")]
5105            Self::ExtBackgroundEffectSurfaceV1 => "ext_background_effect_surface_v1",
5106            #[cfg(feature = "protocol-ext_data_control_v1")]
5107            Self::ExtDataControlDeviceV1 => "ext_data_control_device_v1",
5108            #[cfg(feature = "protocol-ext_data_control_v1")]
5109            Self::ExtDataControlManagerV1 => "ext_data_control_manager_v1",
5110            #[cfg(feature = "protocol-ext_data_control_v1")]
5111            Self::ExtDataControlOfferV1 => "ext_data_control_offer_v1",
5112            #[cfg(feature = "protocol-ext_data_control_v1")]
5113            Self::ExtDataControlSourceV1 => "ext_data_control_source_v1",
5114            #[cfg(feature = "protocol-ext_foreign_toplevel_list_v1")]
5115            Self::ExtForeignToplevelHandleV1 => "ext_foreign_toplevel_handle_v1",
5116            #[cfg(feature = "protocol-ext_foreign_toplevel_list_v1")]
5117            Self::ExtForeignToplevelListV1 => "ext_foreign_toplevel_list_v1",
5118            #[cfg(feature = "protocol-ext_idle_notify_v1")]
5119            Self::ExtIdleNotificationV1 => "ext_idle_notification_v1",
5120            #[cfg(feature = "protocol-ext_idle_notify_v1")]
5121            Self::ExtIdleNotifierV1 => "ext_idle_notifier_v1",
5122            #[cfg(feature = "protocol-ext_image_capture_source_v1")]
5123            Self::ExtForeignToplevelImageCaptureSourceManagerV1 => "ext_foreign_toplevel_image_capture_source_manager_v1",
5124            #[cfg(feature = "protocol-ext_image_capture_source_v1")]
5125            Self::ExtImageCaptureSourceV1 => "ext_image_capture_source_v1",
5126            #[cfg(feature = "protocol-ext_image_capture_source_v1")]
5127            Self::ExtOutputImageCaptureSourceManagerV1 => "ext_output_image_capture_source_manager_v1",
5128            #[cfg(feature = "protocol-ext_image_copy_capture_v1")]
5129            Self::ExtImageCopyCaptureCursorSessionV1 => "ext_image_copy_capture_cursor_session_v1",
5130            #[cfg(feature = "protocol-ext_image_copy_capture_v1")]
5131            Self::ExtImageCopyCaptureFrameV1 => "ext_image_copy_capture_frame_v1",
5132            #[cfg(feature = "protocol-ext_image_copy_capture_v1")]
5133            Self::ExtImageCopyCaptureManagerV1 => "ext_image_copy_capture_manager_v1",
5134            #[cfg(feature = "protocol-ext_image_copy_capture_v1")]
5135            Self::ExtImageCopyCaptureSessionV1 => "ext_image_copy_capture_session_v1",
5136            #[cfg(feature = "protocol-ext_session_lock_v1")]
5137            Self::ExtSessionLockManagerV1 => "ext_session_lock_manager_v1",
5138            #[cfg(feature = "protocol-ext_session_lock_v1")]
5139            Self::ExtSessionLockSurfaceV1 => "ext_session_lock_surface_v1",
5140            #[cfg(feature = "protocol-ext_session_lock_v1")]
5141            Self::ExtSessionLockV1 => "ext_session_lock_v1",
5142            #[cfg(feature = "protocol-ext_transient_seat_v1")]
5143            Self::ExtTransientSeatManagerV1 => "ext_transient_seat_manager_v1",
5144            #[cfg(feature = "protocol-ext_transient_seat_v1")]
5145            Self::ExtTransientSeatV1 => "ext_transient_seat_v1",
5146            #[cfg(feature = "protocol-ext_workspace_v1")]
5147            Self::ExtWorkspaceGroupHandleV1 => "ext_workspace_group_handle_v1",
5148            #[cfg(feature = "protocol-ext_workspace_v1")]
5149            Self::ExtWorkspaceHandleV1 => "ext_workspace_handle_v1",
5150            #[cfg(feature = "protocol-ext_workspace_v1")]
5151            Self::ExtWorkspaceManagerV1 => "ext_workspace_manager_v1",
5152            #[cfg(feature = "protocol-fifo_v1")]
5153            Self::WpFifoManagerV1 => "wp_fifo_manager_v1",
5154            #[cfg(feature = "protocol-fifo_v1")]
5155            Self::WpFifoV1 => "wp_fifo_v1",
5156            #[cfg(feature = "protocol-fractional_scale_v1")]
5157            Self::WpFractionalScaleManagerV1 => "wp_fractional_scale_manager_v1",
5158            #[cfg(feature = "protocol-fractional_scale_v1")]
5159            Self::WpFractionalScaleV1 => "wp_fractional_scale_v1",
5160            #[cfg(feature = "protocol-fullscreen_shell_unstable_v1")]
5161            Self::ZwpFullscreenShellModeFeedbackV1 => "zwp_fullscreen_shell_mode_feedback_v1",
5162            #[cfg(feature = "protocol-fullscreen_shell_unstable_v1")]
5163            Self::ZwpFullscreenShellV1 => "zwp_fullscreen_shell_v1",
5164            #[cfg(feature = "protocol-idle_inhibit_unstable_v1")]
5165            Self::ZwpIdleInhibitManagerV1 => "zwp_idle_inhibit_manager_v1",
5166            #[cfg(feature = "protocol-idle_inhibit_unstable_v1")]
5167            Self::ZwpIdleInhibitorV1 => "zwp_idle_inhibitor_v1",
5168            #[cfg(feature = "protocol-input_method_unstable_v1")]
5169            Self::ZwpInputMethodContextV1 => "zwp_input_method_context_v1",
5170            #[cfg(feature = "protocol-input_method_unstable_v1")]
5171            Self::ZwpInputMethodV1 => "zwp_input_method_v1",
5172            #[cfg(feature = "protocol-input_method_unstable_v1")]
5173            Self::ZwpInputPanelSurfaceV1 => "zwp_input_panel_surface_v1",
5174            #[cfg(feature = "protocol-input_method_unstable_v1")]
5175            Self::ZwpInputPanelV1 => "zwp_input_panel_v1",
5176            #[cfg(feature = "protocol-input_timestamps_unstable_v1")]
5177            Self::ZwpInputTimestampsManagerV1 => "zwp_input_timestamps_manager_v1",
5178            #[cfg(feature = "protocol-input_timestamps_unstable_v1")]
5179            Self::ZwpInputTimestampsV1 => "zwp_input_timestamps_v1",
5180            #[cfg(feature = "protocol-keyboard_shortcuts_inhibit_unstable_v1")]
5181            Self::ZwpKeyboardShortcutsInhibitManagerV1 => "zwp_keyboard_shortcuts_inhibit_manager_v1",
5182            #[cfg(feature = "protocol-keyboard_shortcuts_inhibit_unstable_v1")]
5183            Self::ZwpKeyboardShortcutsInhibitorV1 => "zwp_keyboard_shortcuts_inhibitor_v1",
5184            #[cfg(feature = "protocol-linux_dmabuf_v1")]
5185            Self::ZwpLinuxBufferParamsV1 => "zwp_linux_buffer_params_v1",
5186            #[cfg(feature = "protocol-linux_dmabuf_v1")]
5187            Self::ZwpLinuxDmabufFeedbackV1 => "zwp_linux_dmabuf_feedback_v1",
5188            #[cfg(feature = "protocol-linux_dmabuf_v1")]
5189            Self::ZwpLinuxDmabufV1 => "zwp_linux_dmabuf_v1",
5190            #[cfg(feature = "protocol-linux_drm_syncobj_v1")]
5191            Self::WpLinuxDrmSyncobjManagerV1 => "wp_linux_drm_syncobj_manager_v1",
5192            #[cfg(feature = "protocol-linux_drm_syncobj_v1")]
5193            Self::WpLinuxDrmSyncobjSurfaceV1 => "wp_linux_drm_syncobj_surface_v1",
5194            #[cfg(feature = "protocol-linux_drm_syncobj_v1")]
5195            Self::WpLinuxDrmSyncobjTimelineV1 => "wp_linux_drm_syncobj_timeline_v1",
5196            #[cfg(feature = "protocol-pointer_constraints_unstable_v1")]
5197            Self::ZwpConfinedPointerV1 => "zwp_confined_pointer_v1",
5198            #[cfg(feature = "protocol-pointer_constraints_unstable_v1")]
5199            Self::ZwpLockedPointerV1 => "zwp_locked_pointer_v1",
5200            #[cfg(feature = "protocol-pointer_constraints_unstable_v1")]
5201            Self::ZwpPointerConstraintsV1 => "zwp_pointer_constraints_v1",
5202            #[cfg(feature = "protocol-pointer_gestures_unstable_v1")]
5203            Self::ZwpPointerGestureHoldV1 => "zwp_pointer_gesture_hold_v1",
5204            #[cfg(feature = "protocol-pointer_gestures_unstable_v1")]
5205            Self::ZwpPointerGesturePinchV1 => "zwp_pointer_gesture_pinch_v1",
5206            #[cfg(feature = "protocol-pointer_gestures_unstable_v1")]
5207            Self::ZwpPointerGestureSwipeV1 => "zwp_pointer_gesture_swipe_v1",
5208            #[cfg(feature = "protocol-pointer_gestures_unstable_v1")]
5209            Self::ZwpPointerGesturesV1 => "zwp_pointer_gestures_v1",
5210            #[cfg(feature = "protocol-pointer_warp_v1")]
5211            Self::WpPointerWarpV1 => "wp_pointer_warp_v1",
5212            #[cfg(feature = "protocol-presentation_time")]
5213            Self::WpPresentation => "wp_presentation",
5214            #[cfg(feature = "protocol-presentation_time")]
5215            Self::WpPresentationFeedback => "wp_presentation_feedback",
5216            #[cfg(feature = "protocol-relative_pointer_unstable_v1")]
5217            Self::ZwpRelativePointerManagerV1 => "zwp_relative_pointer_manager_v1",
5218            #[cfg(feature = "protocol-relative_pointer_unstable_v1")]
5219            Self::ZwpRelativePointerV1 => "zwp_relative_pointer_v1",
5220            #[cfg(feature = "protocol-security_context_v1")]
5221            Self::WpSecurityContextManagerV1 => "wp_security_context_manager_v1",
5222            #[cfg(feature = "protocol-security_context_v1")]
5223            Self::WpSecurityContextV1 => "wp_security_context_v1",
5224            #[cfg(feature = "protocol-single_pixel_buffer_v1")]
5225            Self::WpSinglePixelBufferManagerV1 => "wp_single_pixel_buffer_manager_v1",
5226            #[cfg(feature = "protocol-tablet_v2")]
5227            Self::ZwpTabletManagerV2 => "zwp_tablet_manager_v2",
5228            #[cfg(feature = "protocol-tablet_v2")]
5229            Self::ZwpTabletPadDialV2 => "zwp_tablet_pad_dial_v2",
5230            #[cfg(feature = "protocol-tablet_v2")]
5231            Self::ZwpTabletPadGroupV2 => "zwp_tablet_pad_group_v2",
5232            #[cfg(feature = "protocol-tablet_v2")]
5233            Self::ZwpTabletPadRingV2 => "zwp_tablet_pad_ring_v2",
5234            #[cfg(feature = "protocol-tablet_v2")]
5235            Self::ZwpTabletPadStripV2 => "zwp_tablet_pad_strip_v2",
5236            #[cfg(feature = "protocol-tablet_v2")]
5237            Self::ZwpTabletPadV2 => "zwp_tablet_pad_v2",
5238            #[cfg(feature = "protocol-tablet_v2")]
5239            Self::ZwpTabletSeatV2 => "zwp_tablet_seat_v2",
5240            #[cfg(feature = "protocol-tablet_v2")]
5241            Self::ZwpTabletToolV2 => "zwp_tablet_tool_v2",
5242            #[cfg(feature = "protocol-tablet_v2")]
5243            Self::ZwpTabletV2 => "zwp_tablet_v2",
5244            #[cfg(feature = "protocol-tearing_control_v1")]
5245            Self::WpTearingControlManagerV1 => "wp_tearing_control_manager_v1",
5246            #[cfg(feature = "protocol-tearing_control_v1")]
5247            Self::WpTearingControlV1 => "wp_tearing_control_v1",
5248            #[cfg(feature = "protocol-text_input_unstable_v1")]
5249            Self::ZwpTextInputManagerV1 => "zwp_text_input_manager_v1",
5250            #[cfg(feature = "protocol-text_input_unstable_v1")]
5251            Self::ZwpTextInputV1 => "zwp_text_input_v1",
5252            #[cfg(feature = "protocol-text_input_unstable_v3")]
5253            Self::ZwpTextInputManagerV3 => "zwp_text_input_manager_v3",
5254            #[cfg(feature = "protocol-text_input_unstable_v3")]
5255            Self::ZwpTextInputV3 => "zwp_text_input_v3",
5256            #[cfg(feature = "protocol-viewporter")]
5257            Self::WpViewport => "wp_viewport",
5258            #[cfg(feature = "protocol-viewporter")]
5259            Self::WpViewporter => "wp_viewporter",
5260            #[cfg(feature = "protocol-wp_primary_selection_unstable_v1")]
5261            Self::ZwpPrimarySelectionDeviceManagerV1 => "zwp_primary_selection_device_manager_v1",
5262            #[cfg(feature = "protocol-wp_primary_selection_unstable_v1")]
5263            Self::ZwpPrimarySelectionDeviceV1 => "zwp_primary_selection_device_v1",
5264            #[cfg(feature = "protocol-wp_primary_selection_unstable_v1")]
5265            Self::ZwpPrimarySelectionOfferV1 => "zwp_primary_selection_offer_v1",
5266            #[cfg(feature = "protocol-wp_primary_selection_unstable_v1")]
5267            Self::ZwpPrimarySelectionSourceV1 => "zwp_primary_selection_source_v1",
5268            #[cfg(feature = "protocol-xdg_activation_v1")]
5269            Self::XdgActivationTokenV1 => "xdg_activation_token_v1",
5270            #[cfg(feature = "protocol-xdg_activation_v1")]
5271            Self::XdgActivationV1 => "xdg_activation_v1",
5272            #[cfg(feature = "protocol-xdg_decoration_unstable_v1")]
5273            Self::ZxdgDecorationManagerV1 => "zxdg_decoration_manager_v1",
5274            #[cfg(feature = "protocol-xdg_decoration_unstable_v1")]
5275            Self::ZxdgToplevelDecorationV1 => "zxdg_toplevel_decoration_v1",
5276            #[cfg(feature = "protocol-xdg_dialog_v1")]
5277            Self::XdgDialogV1 => "xdg_dialog_v1",
5278            #[cfg(feature = "protocol-xdg_dialog_v1")]
5279            Self::XdgWmDialogV1 => "xdg_wm_dialog_v1",
5280            #[cfg(feature = "protocol-xdg_foreign_unstable_v2")]
5281            Self::ZxdgExportedV2 => "zxdg_exported_v2",
5282            #[cfg(feature = "protocol-xdg_foreign_unstable_v2")]
5283            Self::ZxdgExporterV2 => "zxdg_exporter_v2",
5284            #[cfg(feature = "protocol-xdg_foreign_unstable_v2")]
5285            Self::ZxdgImportedV2 => "zxdg_imported_v2",
5286            #[cfg(feature = "protocol-xdg_foreign_unstable_v2")]
5287            Self::ZxdgImporterV2 => "zxdg_importer_v2",
5288            #[cfg(feature = "protocol-xdg_output_unstable_v1")]
5289            Self::ZxdgOutputManagerV1 => "zxdg_output_manager_v1",
5290            #[cfg(feature = "protocol-xdg_output_unstable_v1")]
5291            Self::ZxdgOutputV1 => "zxdg_output_v1",
5292            #[cfg(feature = "protocol-xdg_session_management_v1")]
5293            Self::XdgSessionManagerV1 => "xdg_session_manager_v1",
5294            #[cfg(feature = "protocol-xdg_session_management_v1")]
5295            Self::XdgSessionV1 => "xdg_session_v1",
5296            #[cfg(feature = "protocol-xdg_session_management_v1")]
5297            Self::XdgToplevelSessionV1 => "xdg_toplevel_session_v1",
5298            #[cfg(feature = "protocol-xdg_shell")]
5299            Self::XdgPopup => "xdg_popup",
5300            #[cfg(feature = "protocol-xdg_shell")]
5301            Self::XdgPositioner => "xdg_positioner",
5302            #[cfg(feature = "protocol-xdg_shell")]
5303            Self::XdgSurface => "xdg_surface",
5304            #[cfg(feature = "protocol-xdg_shell")]
5305            Self::XdgToplevel => "xdg_toplevel",
5306            #[cfg(feature = "protocol-xdg_shell")]
5307            Self::XdgWmBase => "xdg_wm_base",
5308            #[cfg(feature = "protocol-xdg_system_bell_v1")]
5309            Self::XdgSystemBellV1 => "xdg_system_bell_v1",
5310            #[cfg(feature = "protocol-xdg_toplevel_drag_v1")]
5311            Self::XdgToplevelDragManagerV1 => "xdg_toplevel_drag_manager_v1",
5312            #[cfg(feature = "protocol-xdg_toplevel_drag_v1")]
5313            Self::XdgToplevelDragV1 => "xdg_toplevel_drag_v1",
5314            #[cfg(feature = "protocol-xdg_toplevel_icon_v1")]
5315            Self::XdgToplevelIconManagerV1 => "xdg_toplevel_icon_manager_v1",
5316            #[cfg(feature = "protocol-xdg_toplevel_icon_v1")]
5317            Self::XdgToplevelIconV1 => "xdg_toplevel_icon_v1",
5318            #[cfg(feature = "protocol-xdg_toplevel_tag_v1")]
5319            Self::XdgToplevelTagManagerV1 => "xdg_toplevel_tag_manager_v1",
5320            #[cfg(feature = "protocol-xwayland_keyboard_grab_unstable_v1")]
5321            Self::ZwpXwaylandKeyboardGrabManagerV1 => "zwp_xwayland_keyboard_grab_manager_v1",
5322            #[cfg(feature = "protocol-xwayland_keyboard_grab_unstable_v1")]
5323            Self::ZwpXwaylandKeyboardGrabV1 => "zwp_xwayland_keyboard_grab_v1",
5324            #[cfg(feature = "protocol-xwayland_shell_v1")]
5325            Self::XwaylandShellV1 => "xwayland_shell_v1",
5326            #[cfg(feature = "protocol-xwayland_shell_v1")]
5327            Self::XwaylandSurfaceV1 => "xwayland_surface_v1",
5328            #[cfg(feature = "protocol-zwp_linux_explicit_synchronization_unstable_v1")]
5329            Self::ZwpLinuxBufferReleaseV1 => "zwp_linux_buffer_release_v1",
5330            #[cfg(feature = "protocol-zwp_linux_explicit_synchronization_unstable_v1")]
5331            Self::ZwpLinuxExplicitSynchronizationV1 => "zwp_linux_explicit_synchronization_v1",
5332            #[cfg(feature = "protocol-zwp_linux_explicit_synchronization_unstable_v1")]
5333            Self::ZwpLinuxSurfaceSynchronizationV1 => "zwp_linux_surface_synchronization_v1",
5334            #[cfg(feature = "protocol-wlr_data_control_unstable_v1")]
5335            Self::ZwlrDataControlDeviceV1 => "zwlr_data_control_device_v1",
5336            #[cfg(feature = "protocol-wlr_data_control_unstable_v1")]
5337            Self::ZwlrDataControlManagerV1 => "zwlr_data_control_manager_v1",
5338            #[cfg(feature = "protocol-wlr_data_control_unstable_v1")]
5339            Self::ZwlrDataControlOfferV1 => "zwlr_data_control_offer_v1",
5340            #[cfg(feature = "protocol-wlr_data_control_unstable_v1")]
5341            Self::ZwlrDataControlSourceV1 => "zwlr_data_control_source_v1",
5342            #[cfg(feature = "protocol-wlr_export_dmabuf_unstable_v1")]
5343            Self::ZwlrExportDmabufFrameV1 => "zwlr_export_dmabuf_frame_v1",
5344            #[cfg(feature = "protocol-wlr_export_dmabuf_unstable_v1")]
5345            Self::ZwlrExportDmabufManagerV1 => "zwlr_export_dmabuf_manager_v1",
5346            #[cfg(feature = "protocol-wlr_foreign_toplevel_management_unstable_v1")]
5347            Self::ZwlrForeignToplevelHandleV1 => "zwlr_foreign_toplevel_handle_v1",
5348            #[cfg(feature = "protocol-wlr_foreign_toplevel_management_unstable_v1")]
5349            Self::ZwlrForeignToplevelManagerV1 => "zwlr_foreign_toplevel_manager_v1",
5350            #[cfg(feature = "protocol-wlr_gamma_control_unstable_v1")]
5351            Self::ZwlrGammaControlManagerV1 => "zwlr_gamma_control_manager_v1",
5352            #[cfg(feature = "protocol-wlr_gamma_control_unstable_v1")]
5353            Self::ZwlrGammaControlV1 => "zwlr_gamma_control_v1",
5354            #[cfg(feature = "protocol-wlr_input_inhibit_unstable_v1")]
5355            Self::ZwlrInputInhibitManagerV1 => "zwlr_input_inhibit_manager_v1",
5356            #[cfg(feature = "protocol-wlr_input_inhibit_unstable_v1")]
5357            Self::ZwlrInputInhibitorV1 => "zwlr_input_inhibitor_v1",
5358            #[cfg(feature = "protocol-wlr_layer_shell_unstable_v1")]
5359            Self::ZwlrLayerShellV1 => "zwlr_layer_shell_v1",
5360            #[cfg(feature = "protocol-wlr_layer_shell_unstable_v1")]
5361            Self::ZwlrLayerSurfaceV1 => "zwlr_layer_surface_v1",
5362            #[cfg(feature = "protocol-wlr_output_management_unstable_v1")]
5363            Self::ZwlrOutputConfigurationHeadV1 => "zwlr_output_configuration_head_v1",
5364            #[cfg(feature = "protocol-wlr_output_management_unstable_v1")]
5365            Self::ZwlrOutputConfigurationV1 => "zwlr_output_configuration_v1",
5366            #[cfg(feature = "protocol-wlr_output_management_unstable_v1")]
5367            Self::ZwlrOutputHeadV1 => "zwlr_output_head_v1",
5368            #[cfg(feature = "protocol-wlr_output_management_unstable_v1")]
5369            Self::ZwlrOutputManagerV1 => "zwlr_output_manager_v1",
5370            #[cfg(feature = "protocol-wlr_output_management_unstable_v1")]
5371            Self::ZwlrOutputModeV1 => "zwlr_output_mode_v1",
5372            #[cfg(feature = "protocol-wlr_output_power_management_unstable_v1")]
5373            Self::ZwlrOutputPowerManagerV1 => "zwlr_output_power_manager_v1",
5374            #[cfg(feature = "protocol-wlr_output_power_management_unstable_v1")]
5375            Self::ZwlrOutputPowerV1 => "zwlr_output_power_v1",
5376            #[cfg(feature = "protocol-wlr_screencopy_unstable_v1")]
5377            Self::ZwlrScreencopyFrameV1 => "zwlr_screencopy_frame_v1",
5378            #[cfg(feature = "protocol-wlr_screencopy_unstable_v1")]
5379            Self::ZwlrScreencopyManagerV1 => "zwlr_screencopy_manager_v1",
5380            #[cfg(feature = "protocol-wlr_virtual_pointer_unstable_v1")]
5381            Self::ZwlrVirtualPointerManagerV1 => "zwlr_virtual_pointer_manager_v1",
5382            #[cfg(feature = "protocol-wlr_virtual_pointer_unstable_v1")]
5383            Self::ZwlrVirtualPointerV1 => "zwlr_virtual_pointer_v1",
5384            #[cfg(feature = "protocol-wlproxy_sync_v1")]
5385            Self::WlproxySyncV1 => "wlproxy_sync_v1",
5386            #[cfg(test)]
5387            Self::WlproxyTest => "wlproxy_test",
5388            #[cfg(test)]
5389            Self::WlproxyTestArrayEcho => "wlproxy_test_array_echo",
5390            #[cfg(test)]
5391            Self::WlproxyTestDummy => "wlproxy_test_dummy",
5392            #[cfg(test)]
5393            Self::WlproxyTestFdEcho => "wlproxy_test_fd_echo",
5394            #[cfg(test)]
5395            Self::WlproxyTestHops => "wlproxy_test_hops",
5396            #[cfg(test)]
5397            Self::WlproxyTestNonForward => "wlproxy_test_non_forward",
5398            #[cfg(test)]
5399            Self::WlproxyTestObjectEcho => "wlproxy_test_object_echo",
5400            #[cfg(test)]
5401            Self::WlproxyTestServerSent => "wlproxy_test_server_sent",
5402            #[cfg(feature = "protocol-river_input_management_v1")]
5403            Self::RiverInputDeviceV1 => "river_input_device_v1",
5404            #[cfg(feature = "protocol-river_input_management_v1")]
5405            Self::RiverInputManagerV1 => "river_input_manager_v1",
5406            #[cfg(feature = "protocol-river_layer_shell_v1")]
5407            Self::RiverLayerShellOutputV1 => "river_layer_shell_output_v1",
5408            #[cfg(feature = "protocol-river_layer_shell_v1")]
5409            Self::RiverLayerShellSeatV1 => "river_layer_shell_seat_v1",
5410            #[cfg(feature = "protocol-river_layer_shell_v1")]
5411            Self::RiverLayerShellV1 => "river_layer_shell_v1",
5412            #[cfg(feature = "protocol-river_libinput_config_v1")]
5413            Self::RiverLibinputAccelConfigV1 => "river_libinput_accel_config_v1",
5414            #[cfg(feature = "protocol-river_libinput_config_v1")]
5415            Self::RiverLibinputConfigV1 => "river_libinput_config_v1",
5416            #[cfg(feature = "protocol-river_libinput_config_v1")]
5417            Self::RiverLibinputDeviceV1 => "river_libinput_device_v1",
5418            #[cfg(feature = "protocol-river_libinput_config_v1")]
5419            Self::RiverLibinputResultV1 => "river_libinput_result_v1",
5420            #[cfg(feature = "protocol-river_window_management_v1")]
5421            Self::RiverDecorationV1 => "river_decoration_v1",
5422            #[cfg(feature = "protocol-river_window_management_v1")]
5423            Self::RiverNodeV1 => "river_node_v1",
5424            #[cfg(feature = "protocol-river_window_management_v1")]
5425            Self::RiverOutputV1 => "river_output_v1",
5426            #[cfg(feature = "protocol-river_window_management_v1")]
5427            Self::RiverPointerBindingV1 => "river_pointer_binding_v1",
5428            #[cfg(feature = "protocol-river_window_management_v1")]
5429            Self::RiverSeatV1 => "river_seat_v1",
5430            #[cfg(feature = "protocol-river_window_management_v1")]
5431            Self::RiverShellSurfaceV1 => "river_shell_surface_v1",
5432            #[cfg(feature = "protocol-river_window_management_v1")]
5433            Self::RiverWindowManagerV1 => "river_window_manager_v1",
5434            #[cfg(feature = "protocol-river_window_management_v1")]
5435            Self::RiverWindowV1 => "river_window_v1",
5436            #[cfg(feature = "protocol-river_xkb_bindings_v1")]
5437            Self::RiverXkbBindingV1 => "river_xkb_binding_v1",
5438            #[cfg(feature = "protocol-river_xkb_bindings_v1")]
5439            Self::RiverXkbBindingsSeatV1 => "river_xkb_bindings_seat_v1",
5440            #[cfg(feature = "protocol-river_xkb_bindings_v1")]
5441            Self::RiverXkbBindingsV1 => "river_xkb_bindings_v1",
5442            #[cfg(feature = "protocol-river_xkb_config_v1")]
5443            Self::RiverXkbConfigV1 => "river_xkb_config_v1",
5444            #[cfg(feature = "protocol-river_xkb_config_v1")]
5445            Self::RiverXkbKeyboardV1 => "river_xkb_keyboard_v1",
5446            #[cfg(feature = "protocol-river_xkb_config_v1")]
5447            Self::RiverXkbKeymapV1 => "river_xkb_keymap_v1",
5448            #[cfg(feature = "protocol-ivi_application")]
5449            Self::IviApplication => "ivi_application",
5450            #[cfg(feature = "protocol-ivi_application")]
5451            Self::IviSurface => "ivi_surface",
5452            #[cfg(feature = "protocol-ivi_hmi_controller")]
5453            Self::IviHmiController => "ivi_hmi_controller",
5454            #[cfg(feature = "protocol-weston_content_protection")]
5455            Self::WestonContentProtection => "weston_content_protection",
5456            #[cfg(feature = "protocol-weston_content_protection")]
5457            Self::WestonProtectedSurface => "weston_protected_surface",
5458            #[cfg(feature = "protocol-weston_debug")]
5459            Self::WestonDebugStreamV1 => "weston_debug_stream_v1",
5460            #[cfg(feature = "protocol-weston_debug")]
5461            Self::WestonDebugV1 => "weston_debug_v1",
5462            #[cfg(feature = "protocol-weston_desktop")]
5463            Self::WestonDesktopShell => "weston_desktop_shell",
5464            #[cfg(feature = "protocol-weston_desktop")]
5465            Self::WestonScreensaver => "weston_screensaver",
5466            #[cfg(feature = "protocol-weston_direct_display")]
5467            Self::WestonDirectDisplayV1 => "weston_direct_display_v1",
5468            #[cfg(feature = "protocol-weston_output_capture")]
5469            Self::WestonCaptureSourceV1 => "weston_capture_source_v1",
5470            #[cfg(feature = "protocol-weston_output_capture")]
5471            Self::WestonCaptureV1 => "weston_capture_v1",
5472            #[cfg(feature = "protocol-weston_test")]
5473            Self::WestonTest => "weston_test",
5474            #[cfg(feature = "protocol-weston_test")]
5475            Self::WestonTestRunner => "weston_test_runner",
5476            #[cfg(feature = "protocol-weston_touch_calibration")]
5477            Self::WestonTouchCalibration => "weston_touch_calibration",
5478            #[cfg(feature = "protocol-weston_touch_calibration")]
5479            Self::WestonTouchCalibrator => "weston_touch_calibrator",
5480            #[cfg(feature = "protocol-weston_touch_calibration")]
5481            Self::WestonTouchCoordinate => "weston_touch_coordinate",
5482            #[cfg(feature = "protocol-cosmic_a11y_v1")]
5483            Self::CosmicA11yManagerV1 => "cosmic_a11y_manager_v1",
5484            #[cfg(feature = "protocol-cosmic_corner_radius_v1")]
5485            Self::CosmicCornerRadiusManagerV1 => "cosmic_corner_radius_manager_v1",
5486            #[cfg(feature = "protocol-cosmic_corner_radius_v1")]
5487            Self::CosmicCornerRadiusToplevelV1 => "cosmic_corner_radius_toplevel_v1",
5488            #[cfg(feature = "protocol-cosmic_image_source_unstable_v1")]
5489            Self::ZcosmicWorkspaceImageCaptureSourceManagerV1 => "zcosmic_workspace_image_capture_source_manager_v1",
5490            #[cfg(feature = "protocol-cosmic_output_management_unstable_v1")]
5491            Self::ZcosmicOutputConfigurationHeadV1 => "zcosmic_output_configuration_head_v1",
5492            #[cfg(feature = "protocol-cosmic_output_management_unstable_v1")]
5493            Self::ZcosmicOutputConfigurationV1 => "zcosmic_output_configuration_v1",
5494            #[cfg(feature = "protocol-cosmic_output_management_unstable_v1")]
5495            Self::ZcosmicOutputHeadV1 => "zcosmic_output_head_v1",
5496            #[cfg(feature = "protocol-cosmic_output_management_unstable_v1")]
5497            Self::ZcosmicOutputManagerV1 => "zcosmic_output_manager_v1",
5498            #[cfg(feature = "protocol-cosmic_overlap_notify_unstable_v1")]
5499            Self::ZcosmicOverlapNotificationV1 => "zcosmic_overlap_notification_v1",
5500            #[cfg(feature = "protocol-cosmic_overlap_notify_unstable_v1")]
5501            Self::ZcosmicOverlapNotifyV1 => "zcosmic_overlap_notify_v1",
5502            #[cfg(feature = "protocol-cosmic_workspace_unstable_v2")]
5503            Self::ZcosmicWorkspaceHandleV2 => "zcosmic_workspace_handle_v2",
5504            #[cfg(feature = "protocol-cosmic_workspace_unstable_v2")]
5505            Self::ZcosmicWorkspaceManagerV2 => "zcosmic_workspace_manager_v2",
5506        }
5507    }
5508
5509    pub const fn xml_version(self) -> u32 {
5510        match self {
5511            #[cfg(feature = "protocol-hyprland_ctm_control_v1")]
5512            Self::HyprlandCtmControlManagerV1 => 2,
5513            #[cfg(feature = "protocol-hyprland_focus_grab_v1")]
5514            Self::HyprlandFocusGrabManagerV1 => 1,
5515            #[cfg(feature = "protocol-hyprland_focus_grab_v1")]
5516            Self::HyprlandFocusGrabV1 => 1,
5517            #[cfg(feature = "protocol-hyprland_global_shortcuts_v1")]
5518            Self::HyprlandGlobalShortcutV1 => 1,
5519            #[cfg(feature = "protocol-hyprland_global_shortcuts_v1")]
5520            Self::HyprlandGlobalShortcutsManagerV1 => 1,
5521            #[cfg(feature = "protocol-hyprland_input_capture_v1")]
5522            Self::HyprlandInputCaptureManagerV1 => 1,
5523            #[cfg(feature = "protocol-hyprland_input_capture_v1")]
5524            Self::HyprlandInputCaptureV1 => 1,
5525            #[cfg(feature = "protocol-hyprland_lock_notify_v1")]
5526            Self::HyprlandLockNotificationV1 => 1,
5527            #[cfg(feature = "protocol-hyprland_lock_notify_v1")]
5528            Self::HyprlandLockNotifierV1 => 1,
5529            #[cfg(feature = "protocol-hyprland_surface_v1")]
5530            Self::HyprlandSurfaceManagerV1 => 2,
5531            #[cfg(feature = "protocol-hyprland_surface_v1")]
5532            Self::HyprlandSurfaceV1 => 2,
5533            #[cfg(feature = "protocol-hyprland_toplevel_export_v1")]
5534            Self::HyprlandToplevelExportFrameV1 => 2,
5535            #[cfg(feature = "protocol-hyprland_toplevel_export_v1")]
5536            Self::HyprlandToplevelExportManagerV1 => 2,
5537            #[cfg(feature = "protocol-hyprland_toplevel_mapping_v1")]
5538            Self::HyprlandToplevelMappingManagerV1 => 1,
5539            #[cfg(feature = "protocol-hyprland_toplevel_mapping_v1")]
5540            Self::HyprlandToplevelWindowMappingHandleV1 => 1,
5541            #[cfg(feature = "protocol-jay_popup_ext_v1")]
5542            Self::JayPopupExtManagerV1 => 1,
5543            #[cfg(feature = "protocol-jay_popup_ext_v1")]
5544            Self::JayPopupExtV1 => 1,
5545            #[cfg(feature = "protocol-jay_tray_v1")]
5546            Self::JayTrayItemV1 => 1,
5547            #[cfg(feature = "protocol-jay_tray_v1")]
5548            Self::JayTrayV1 => 1,
5549            #[cfg(feature = "protocol-drm")]
5550            Self::WlDrm => 2,
5551            #[cfg(feature = "protocol-input_method_unstable_v2")]
5552            Self::ZwpInputMethodKeyboardGrabV2 => 1,
5553            #[cfg(feature = "protocol-input_method_unstable_v2")]
5554            Self::ZwpInputMethodManagerV2 => 1,
5555            #[cfg(feature = "protocol-input_method_unstable_v2")]
5556            Self::ZwpInputMethodV2 => 1,
5557            #[cfg(feature = "protocol-input_method_unstable_v2")]
5558            Self::ZwpInputPopupSurfaceV2 => 1,
5559            #[cfg(feature = "protocol-org_kde_kwin_server_decoration_v1")]
5560            Self::OrgKdeKwinServerDecoration => 1,
5561            #[cfg(feature = "protocol-org_kde_kwin_server_decoration_v1")]
5562            Self::OrgKdeKwinServerDecorationManager => 1,
5563            #[cfg(feature = "protocol-virtual_keyboard_unstable_v1")]
5564            Self::ZwpVirtualKeyboardManagerV1 => 1,
5565            #[cfg(feature = "protocol-virtual_keyboard_unstable_v1")]
5566            Self::ZwpVirtualKeyboardV1 => 1,
5567            Self::WlBuffer => 1,
5568            Self::WlCallback => 1,
5569            Self::WlCompositor => 7,
5570            Self::WlDataDevice => 4,
5571            Self::WlDataDeviceManager => 4,
5572            Self::WlDataOffer => 4,
5573            Self::WlDataSource => 4,
5574            Self::WlDisplay => 1,
5575            Self::WlFixes => 1,
5576            Self::WlKeyboard => 10,
5577            Self::WlOutput => 4,
5578            Self::WlPointer => 10,
5579            Self::WlRegion => 7,
5580            Self::WlRegistry => 1,
5581            Self::WlSeat => 10,
5582            Self::WlShell => 1,
5583            Self::WlShellSurface => 1,
5584            Self::WlShm => 2,
5585            Self::WlShmPool => 2,
5586            Self::WlSubcompositor => 1,
5587            Self::WlSubsurface => 1,
5588            Self::WlSurface => 7,
5589            Self::WlTouch => 10,
5590            #[cfg(feature = "protocol-alpha_modifier_v1")]
5591            Self::WpAlphaModifierSurfaceV1 => 1,
5592            #[cfg(feature = "protocol-alpha_modifier_v1")]
5593            Self::WpAlphaModifierV1 => 1,
5594            #[cfg(feature = "protocol-color_management_v1")]
5595            Self::WpColorManagementOutputV1 => 2,
5596            #[cfg(feature = "protocol-color_management_v1")]
5597            Self::WpColorManagementSurfaceFeedbackV1 => 2,
5598            #[cfg(feature = "protocol-color_management_v1")]
5599            Self::WpColorManagementSurfaceV1 => 2,
5600            #[cfg(feature = "protocol-color_management_v1")]
5601            Self::WpColorManagerV1 => 2,
5602            #[cfg(feature = "protocol-color_management_v1")]
5603            Self::WpImageDescriptionCreatorIccV1 => 2,
5604            #[cfg(feature = "protocol-color_management_v1")]
5605            Self::WpImageDescriptionCreatorParamsV1 => 2,
5606            #[cfg(feature = "protocol-color_management_v1")]
5607            Self::WpImageDescriptionInfoV1 => 2,
5608            #[cfg(feature = "protocol-color_management_v1")]
5609            Self::WpImageDescriptionReferenceV1 => 1,
5610            #[cfg(feature = "protocol-color_management_v1")]
5611            Self::WpImageDescriptionV1 => 2,
5612            #[cfg(feature = "protocol-color_representation_v1")]
5613            Self::WpColorRepresentationManagerV1 => 1,
5614            #[cfg(feature = "protocol-color_representation_v1")]
5615            Self::WpColorRepresentationSurfaceV1 => 1,
5616            #[cfg(feature = "protocol-commit_timing_v1")]
5617            Self::WpCommitTimerV1 => 1,
5618            #[cfg(feature = "protocol-commit_timing_v1")]
5619            Self::WpCommitTimingManagerV1 => 1,
5620            #[cfg(feature = "protocol-content_type_v1")]
5621            Self::WpContentTypeManagerV1 => 1,
5622            #[cfg(feature = "protocol-content_type_v1")]
5623            Self::WpContentTypeV1 => 1,
5624            #[cfg(feature = "protocol-cursor_shape_v1")]
5625            Self::WpCursorShapeDeviceV1 => 2,
5626            #[cfg(feature = "protocol-cursor_shape_v1")]
5627            Self::WpCursorShapeManagerV1 => 2,
5628            #[cfg(feature = "protocol-drm_lease_v1")]
5629            Self::WpDrmLeaseConnectorV1 => 1,
5630            #[cfg(feature = "protocol-drm_lease_v1")]
5631            Self::WpDrmLeaseDeviceV1 => 1,
5632            #[cfg(feature = "protocol-drm_lease_v1")]
5633            Self::WpDrmLeaseRequestV1 => 1,
5634            #[cfg(feature = "protocol-drm_lease_v1")]
5635            Self::WpDrmLeaseV1 => 1,
5636            #[cfg(feature = "protocol-ext_background_effect_v1")]
5637            Self::ExtBackgroundEffectManagerV1 => 1,
5638            #[cfg(feature = "protocol-ext_background_effect_v1")]
5639            Self::ExtBackgroundEffectSurfaceV1 => 1,
5640            #[cfg(feature = "protocol-ext_data_control_v1")]
5641            Self::ExtDataControlDeviceV1 => 1,
5642            #[cfg(feature = "protocol-ext_data_control_v1")]
5643            Self::ExtDataControlManagerV1 => 1,
5644            #[cfg(feature = "protocol-ext_data_control_v1")]
5645            Self::ExtDataControlOfferV1 => 1,
5646            #[cfg(feature = "protocol-ext_data_control_v1")]
5647            Self::ExtDataControlSourceV1 => 1,
5648            #[cfg(feature = "protocol-ext_foreign_toplevel_list_v1")]
5649            Self::ExtForeignToplevelHandleV1 => 1,
5650            #[cfg(feature = "protocol-ext_foreign_toplevel_list_v1")]
5651            Self::ExtForeignToplevelListV1 => 1,
5652            #[cfg(feature = "protocol-ext_idle_notify_v1")]
5653            Self::ExtIdleNotificationV1 => 2,
5654            #[cfg(feature = "protocol-ext_idle_notify_v1")]
5655            Self::ExtIdleNotifierV1 => 2,
5656            #[cfg(feature = "protocol-ext_image_capture_source_v1")]
5657            Self::ExtForeignToplevelImageCaptureSourceManagerV1 => 1,
5658            #[cfg(feature = "protocol-ext_image_capture_source_v1")]
5659            Self::ExtImageCaptureSourceV1 => 1,
5660            #[cfg(feature = "protocol-ext_image_capture_source_v1")]
5661            Self::ExtOutputImageCaptureSourceManagerV1 => 1,
5662            #[cfg(feature = "protocol-ext_image_copy_capture_v1")]
5663            Self::ExtImageCopyCaptureCursorSessionV1 => 1,
5664            #[cfg(feature = "protocol-ext_image_copy_capture_v1")]
5665            Self::ExtImageCopyCaptureFrameV1 => 1,
5666            #[cfg(feature = "protocol-ext_image_copy_capture_v1")]
5667            Self::ExtImageCopyCaptureManagerV1 => 1,
5668            #[cfg(feature = "protocol-ext_image_copy_capture_v1")]
5669            Self::ExtImageCopyCaptureSessionV1 => 1,
5670            #[cfg(feature = "protocol-ext_session_lock_v1")]
5671            Self::ExtSessionLockManagerV1 => 1,
5672            #[cfg(feature = "protocol-ext_session_lock_v1")]
5673            Self::ExtSessionLockSurfaceV1 => 1,
5674            #[cfg(feature = "protocol-ext_session_lock_v1")]
5675            Self::ExtSessionLockV1 => 1,
5676            #[cfg(feature = "protocol-ext_transient_seat_v1")]
5677            Self::ExtTransientSeatManagerV1 => 1,
5678            #[cfg(feature = "protocol-ext_transient_seat_v1")]
5679            Self::ExtTransientSeatV1 => 1,
5680            #[cfg(feature = "protocol-ext_workspace_v1")]
5681            Self::ExtWorkspaceGroupHandleV1 => 1,
5682            #[cfg(feature = "protocol-ext_workspace_v1")]
5683            Self::ExtWorkspaceHandleV1 => 1,
5684            #[cfg(feature = "protocol-ext_workspace_v1")]
5685            Self::ExtWorkspaceManagerV1 => 1,
5686            #[cfg(feature = "protocol-fifo_v1")]
5687            Self::WpFifoManagerV1 => 1,
5688            #[cfg(feature = "protocol-fifo_v1")]
5689            Self::WpFifoV1 => 1,
5690            #[cfg(feature = "protocol-fractional_scale_v1")]
5691            Self::WpFractionalScaleManagerV1 => 1,
5692            #[cfg(feature = "protocol-fractional_scale_v1")]
5693            Self::WpFractionalScaleV1 => 1,
5694            #[cfg(feature = "protocol-fullscreen_shell_unstable_v1")]
5695            Self::ZwpFullscreenShellModeFeedbackV1 => 1,
5696            #[cfg(feature = "protocol-fullscreen_shell_unstable_v1")]
5697            Self::ZwpFullscreenShellV1 => 1,
5698            #[cfg(feature = "protocol-idle_inhibit_unstable_v1")]
5699            Self::ZwpIdleInhibitManagerV1 => 1,
5700            #[cfg(feature = "protocol-idle_inhibit_unstable_v1")]
5701            Self::ZwpIdleInhibitorV1 => 1,
5702            #[cfg(feature = "protocol-input_method_unstable_v1")]
5703            Self::ZwpInputMethodContextV1 => 1,
5704            #[cfg(feature = "protocol-input_method_unstable_v1")]
5705            Self::ZwpInputMethodV1 => 1,
5706            #[cfg(feature = "protocol-input_method_unstable_v1")]
5707            Self::ZwpInputPanelSurfaceV1 => 1,
5708            #[cfg(feature = "protocol-input_method_unstable_v1")]
5709            Self::ZwpInputPanelV1 => 1,
5710            #[cfg(feature = "protocol-input_timestamps_unstable_v1")]
5711            Self::ZwpInputTimestampsManagerV1 => 1,
5712            #[cfg(feature = "protocol-input_timestamps_unstable_v1")]
5713            Self::ZwpInputTimestampsV1 => 1,
5714            #[cfg(feature = "protocol-keyboard_shortcuts_inhibit_unstable_v1")]
5715            Self::ZwpKeyboardShortcutsInhibitManagerV1 => 1,
5716            #[cfg(feature = "protocol-keyboard_shortcuts_inhibit_unstable_v1")]
5717            Self::ZwpKeyboardShortcutsInhibitorV1 => 1,
5718            #[cfg(feature = "protocol-linux_dmabuf_v1")]
5719            Self::ZwpLinuxBufferParamsV1 => 5,
5720            #[cfg(feature = "protocol-linux_dmabuf_v1")]
5721            Self::ZwpLinuxDmabufFeedbackV1 => 5,
5722            #[cfg(feature = "protocol-linux_dmabuf_v1")]
5723            Self::ZwpLinuxDmabufV1 => 5,
5724            #[cfg(feature = "protocol-linux_drm_syncobj_v1")]
5725            Self::WpLinuxDrmSyncobjManagerV1 => 1,
5726            #[cfg(feature = "protocol-linux_drm_syncobj_v1")]
5727            Self::WpLinuxDrmSyncobjSurfaceV1 => 1,
5728            #[cfg(feature = "protocol-linux_drm_syncobj_v1")]
5729            Self::WpLinuxDrmSyncobjTimelineV1 => 1,
5730            #[cfg(feature = "protocol-pointer_constraints_unstable_v1")]
5731            Self::ZwpConfinedPointerV1 => 1,
5732            #[cfg(feature = "protocol-pointer_constraints_unstable_v1")]
5733            Self::ZwpLockedPointerV1 => 1,
5734            #[cfg(feature = "protocol-pointer_constraints_unstable_v1")]
5735            Self::ZwpPointerConstraintsV1 => 1,
5736            #[cfg(feature = "protocol-pointer_gestures_unstable_v1")]
5737            Self::ZwpPointerGestureHoldV1 => 3,
5738            #[cfg(feature = "protocol-pointer_gestures_unstable_v1")]
5739            Self::ZwpPointerGesturePinchV1 => 3,
5740            #[cfg(feature = "protocol-pointer_gestures_unstable_v1")]
5741            Self::ZwpPointerGestureSwipeV1 => 3,
5742            #[cfg(feature = "protocol-pointer_gestures_unstable_v1")]
5743            Self::ZwpPointerGesturesV1 => 3,
5744            #[cfg(feature = "protocol-pointer_warp_v1")]
5745            Self::WpPointerWarpV1 => 1,
5746            #[cfg(feature = "protocol-presentation_time")]
5747            Self::WpPresentation => 2,
5748            #[cfg(feature = "protocol-presentation_time")]
5749            Self::WpPresentationFeedback => 2,
5750            #[cfg(feature = "protocol-relative_pointer_unstable_v1")]
5751            Self::ZwpRelativePointerManagerV1 => 1,
5752            #[cfg(feature = "protocol-relative_pointer_unstable_v1")]
5753            Self::ZwpRelativePointerV1 => 1,
5754            #[cfg(feature = "protocol-security_context_v1")]
5755            Self::WpSecurityContextManagerV1 => 1,
5756            #[cfg(feature = "protocol-security_context_v1")]
5757            Self::WpSecurityContextV1 => 1,
5758            #[cfg(feature = "protocol-single_pixel_buffer_v1")]
5759            Self::WpSinglePixelBufferManagerV1 => 1,
5760            #[cfg(feature = "protocol-tablet_v2")]
5761            Self::ZwpTabletManagerV2 => 2,
5762            #[cfg(feature = "protocol-tablet_v2")]
5763            Self::ZwpTabletPadDialV2 => 2,
5764            #[cfg(feature = "protocol-tablet_v2")]
5765            Self::ZwpTabletPadGroupV2 => 2,
5766            #[cfg(feature = "protocol-tablet_v2")]
5767            Self::ZwpTabletPadRingV2 => 2,
5768            #[cfg(feature = "protocol-tablet_v2")]
5769            Self::ZwpTabletPadStripV2 => 2,
5770            #[cfg(feature = "protocol-tablet_v2")]
5771            Self::ZwpTabletPadV2 => 2,
5772            #[cfg(feature = "protocol-tablet_v2")]
5773            Self::ZwpTabletSeatV2 => 2,
5774            #[cfg(feature = "protocol-tablet_v2")]
5775            Self::ZwpTabletToolV2 => 2,
5776            #[cfg(feature = "protocol-tablet_v2")]
5777            Self::ZwpTabletV2 => 2,
5778            #[cfg(feature = "protocol-tearing_control_v1")]
5779            Self::WpTearingControlManagerV1 => 1,
5780            #[cfg(feature = "protocol-tearing_control_v1")]
5781            Self::WpTearingControlV1 => 1,
5782            #[cfg(feature = "protocol-text_input_unstable_v1")]
5783            Self::ZwpTextInputManagerV1 => 1,
5784            #[cfg(feature = "protocol-text_input_unstable_v1")]
5785            Self::ZwpTextInputV1 => 1,
5786            #[cfg(feature = "protocol-text_input_unstable_v3")]
5787            Self::ZwpTextInputManagerV3 => 1,
5788            #[cfg(feature = "protocol-text_input_unstable_v3")]
5789            Self::ZwpTextInputV3 => 1,
5790            #[cfg(feature = "protocol-viewporter")]
5791            Self::WpViewport => 1,
5792            #[cfg(feature = "protocol-viewporter")]
5793            Self::WpViewporter => 1,
5794            #[cfg(feature = "protocol-wp_primary_selection_unstable_v1")]
5795            Self::ZwpPrimarySelectionDeviceManagerV1 => 1,
5796            #[cfg(feature = "protocol-wp_primary_selection_unstable_v1")]
5797            Self::ZwpPrimarySelectionDeviceV1 => 1,
5798            #[cfg(feature = "protocol-wp_primary_selection_unstable_v1")]
5799            Self::ZwpPrimarySelectionOfferV1 => 1,
5800            #[cfg(feature = "protocol-wp_primary_selection_unstable_v1")]
5801            Self::ZwpPrimarySelectionSourceV1 => 1,
5802            #[cfg(feature = "protocol-xdg_activation_v1")]
5803            Self::XdgActivationTokenV1 => 1,
5804            #[cfg(feature = "protocol-xdg_activation_v1")]
5805            Self::XdgActivationV1 => 1,
5806            #[cfg(feature = "protocol-xdg_decoration_unstable_v1")]
5807            Self::ZxdgDecorationManagerV1 => 2,
5808            #[cfg(feature = "protocol-xdg_decoration_unstable_v1")]
5809            Self::ZxdgToplevelDecorationV1 => 2,
5810            #[cfg(feature = "protocol-xdg_dialog_v1")]
5811            Self::XdgDialogV1 => 1,
5812            #[cfg(feature = "protocol-xdg_dialog_v1")]
5813            Self::XdgWmDialogV1 => 1,
5814            #[cfg(feature = "protocol-xdg_foreign_unstable_v2")]
5815            Self::ZxdgExportedV2 => 1,
5816            #[cfg(feature = "protocol-xdg_foreign_unstable_v2")]
5817            Self::ZxdgExporterV2 => 1,
5818            #[cfg(feature = "protocol-xdg_foreign_unstable_v2")]
5819            Self::ZxdgImportedV2 => 1,
5820            #[cfg(feature = "protocol-xdg_foreign_unstable_v2")]
5821            Self::ZxdgImporterV2 => 1,
5822            #[cfg(feature = "protocol-xdg_output_unstable_v1")]
5823            Self::ZxdgOutputManagerV1 => 3,
5824            #[cfg(feature = "protocol-xdg_output_unstable_v1")]
5825            Self::ZxdgOutputV1 => 3,
5826            #[cfg(feature = "protocol-xdg_session_management_v1")]
5827            Self::XdgSessionManagerV1 => 1,
5828            #[cfg(feature = "protocol-xdg_session_management_v1")]
5829            Self::XdgSessionV1 => 1,
5830            #[cfg(feature = "protocol-xdg_session_management_v1")]
5831            Self::XdgToplevelSessionV1 => 1,
5832            #[cfg(feature = "protocol-xdg_shell")]
5833            Self::XdgPopup => 7,
5834            #[cfg(feature = "protocol-xdg_shell")]
5835            Self::XdgPositioner => 7,
5836            #[cfg(feature = "protocol-xdg_shell")]
5837            Self::XdgSurface => 7,
5838            #[cfg(feature = "protocol-xdg_shell")]
5839            Self::XdgToplevel => 7,
5840            #[cfg(feature = "protocol-xdg_shell")]
5841            Self::XdgWmBase => 7,
5842            #[cfg(feature = "protocol-xdg_system_bell_v1")]
5843            Self::XdgSystemBellV1 => 1,
5844            #[cfg(feature = "protocol-xdg_toplevel_drag_v1")]
5845            Self::XdgToplevelDragManagerV1 => 1,
5846            #[cfg(feature = "protocol-xdg_toplevel_drag_v1")]
5847            Self::XdgToplevelDragV1 => 1,
5848            #[cfg(feature = "protocol-xdg_toplevel_icon_v1")]
5849            Self::XdgToplevelIconManagerV1 => 1,
5850            #[cfg(feature = "protocol-xdg_toplevel_icon_v1")]
5851            Self::XdgToplevelIconV1 => 1,
5852            #[cfg(feature = "protocol-xdg_toplevel_tag_v1")]
5853            Self::XdgToplevelTagManagerV1 => 1,
5854            #[cfg(feature = "protocol-xwayland_keyboard_grab_unstable_v1")]
5855            Self::ZwpXwaylandKeyboardGrabManagerV1 => 1,
5856            #[cfg(feature = "protocol-xwayland_keyboard_grab_unstable_v1")]
5857            Self::ZwpXwaylandKeyboardGrabV1 => 1,
5858            #[cfg(feature = "protocol-xwayland_shell_v1")]
5859            Self::XwaylandShellV1 => 1,
5860            #[cfg(feature = "protocol-xwayland_shell_v1")]
5861            Self::XwaylandSurfaceV1 => 1,
5862            #[cfg(feature = "protocol-zwp_linux_explicit_synchronization_unstable_v1")]
5863            Self::ZwpLinuxBufferReleaseV1 => 1,
5864            #[cfg(feature = "protocol-zwp_linux_explicit_synchronization_unstable_v1")]
5865            Self::ZwpLinuxExplicitSynchronizationV1 => 2,
5866            #[cfg(feature = "protocol-zwp_linux_explicit_synchronization_unstable_v1")]
5867            Self::ZwpLinuxSurfaceSynchronizationV1 => 2,
5868            #[cfg(feature = "protocol-wlr_data_control_unstable_v1")]
5869            Self::ZwlrDataControlDeviceV1 => 2,
5870            #[cfg(feature = "protocol-wlr_data_control_unstable_v1")]
5871            Self::ZwlrDataControlManagerV1 => 2,
5872            #[cfg(feature = "protocol-wlr_data_control_unstable_v1")]
5873            Self::ZwlrDataControlOfferV1 => 1,
5874            #[cfg(feature = "protocol-wlr_data_control_unstable_v1")]
5875            Self::ZwlrDataControlSourceV1 => 1,
5876            #[cfg(feature = "protocol-wlr_export_dmabuf_unstable_v1")]
5877            Self::ZwlrExportDmabufFrameV1 => 1,
5878            #[cfg(feature = "protocol-wlr_export_dmabuf_unstable_v1")]
5879            Self::ZwlrExportDmabufManagerV1 => 1,
5880            #[cfg(feature = "protocol-wlr_foreign_toplevel_management_unstable_v1")]
5881            Self::ZwlrForeignToplevelHandleV1 => 3,
5882            #[cfg(feature = "protocol-wlr_foreign_toplevel_management_unstable_v1")]
5883            Self::ZwlrForeignToplevelManagerV1 => 3,
5884            #[cfg(feature = "protocol-wlr_gamma_control_unstable_v1")]
5885            Self::ZwlrGammaControlManagerV1 => 1,
5886            #[cfg(feature = "protocol-wlr_gamma_control_unstable_v1")]
5887            Self::ZwlrGammaControlV1 => 1,
5888            #[cfg(feature = "protocol-wlr_input_inhibit_unstable_v1")]
5889            Self::ZwlrInputInhibitManagerV1 => 1,
5890            #[cfg(feature = "protocol-wlr_input_inhibit_unstable_v1")]
5891            Self::ZwlrInputInhibitorV1 => 1,
5892            #[cfg(feature = "protocol-wlr_layer_shell_unstable_v1")]
5893            Self::ZwlrLayerShellV1 => 5,
5894            #[cfg(feature = "protocol-wlr_layer_shell_unstable_v1")]
5895            Self::ZwlrLayerSurfaceV1 => 5,
5896            #[cfg(feature = "protocol-wlr_output_management_unstable_v1")]
5897            Self::ZwlrOutputConfigurationHeadV1 => 4,
5898            #[cfg(feature = "protocol-wlr_output_management_unstable_v1")]
5899            Self::ZwlrOutputConfigurationV1 => 4,
5900            #[cfg(feature = "protocol-wlr_output_management_unstable_v1")]
5901            Self::ZwlrOutputHeadV1 => 4,
5902            #[cfg(feature = "protocol-wlr_output_management_unstable_v1")]
5903            Self::ZwlrOutputManagerV1 => 4,
5904            #[cfg(feature = "protocol-wlr_output_management_unstable_v1")]
5905            Self::ZwlrOutputModeV1 => 3,
5906            #[cfg(feature = "protocol-wlr_output_power_management_unstable_v1")]
5907            Self::ZwlrOutputPowerManagerV1 => 1,
5908            #[cfg(feature = "protocol-wlr_output_power_management_unstable_v1")]
5909            Self::ZwlrOutputPowerV1 => 1,
5910            #[cfg(feature = "protocol-wlr_screencopy_unstable_v1")]
5911            Self::ZwlrScreencopyFrameV1 => 3,
5912            #[cfg(feature = "protocol-wlr_screencopy_unstable_v1")]
5913            Self::ZwlrScreencopyManagerV1 => 3,
5914            #[cfg(feature = "protocol-wlr_virtual_pointer_unstable_v1")]
5915            Self::ZwlrVirtualPointerManagerV1 => 2,
5916            #[cfg(feature = "protocol-wlr_virtual_pointer_unstable_v1")]
5917            Self::ZwlrVirtualPointerV1 => 2,
5918            #[cfg(feature = "protocol-wlproxy_sync_v1")]
5919            Self::WlproxySyncV1 => 1,
5920            #[cfg(test)]
5921            Self::WlproxyTest => 1,
5922            #[cfg(test)]
5923            Self::WlproxyTestArrayEcho => 1,
5924            #[cfg(test)]
5925            Self::WlproxyTestDummy => 1,
5926            #[cfg(test)]
5927            Self::WlproxyTestFdEcho => 1,
5928            #[cfg(test)]
5929            Self::WlproxyTestHops => 1,
5930            #[cfg(test)]
5931            Self::WlproxyTestNonForward => 1,
5932            #[cfg(test)]
5933            Self::WlproxyTestObjectEcho => 1,
5934            #[cfg(test)]
5935            Self::WlproxyTestServerSent => 1,
5936            #[cfg(feature = "protocol-river_input_management_v1")]
5937            Self::RiverInputDeviceV1 => 1,
5938            #[cfg(feature = "protocol-river_input_management_v1")]
5939            Self::RiverInputManagerV1 => 1,
5940            #[cfg(feature = "protocol-river_layer_shell_v1")]
5941            Self::RiverLayerShellOutputV1 => 1,
5942            #[cfg(feature = "protocol-river_layer_shell_v1")]
5943            Self::RiverLayerShellSeatV1 => 1,
5944            #[cfg(feature = "protocol-river_layer_shell_v1")]
5945            Self::RiverLayerShellV1 => 1,
5946            #[cfg(feature = "protocol-river_libinput_config_v1")]
5947            Self::RiverLibinputAccelConfigV1 => 1,
5948            #[cfg(feature = "protocol-river_libinput_config_v1")]
5949            Self::RiverLibinputConfigV1 => 1,
5950            #[cfg(feature = "protocol-river_libinput_config_v1")]
5951            Self::RiverLibinputDeviceV1 => 1,
5952            #[cfg(feature = "protocol-river_libinput_config_v1")]
5953            Self::RiverLibinputResultV1 => 1,
5954            #[cfg(feature = "protocol-river_window_management_v1")]
5955            Self::RiverDecorationV1 => 4,
5956            #[cfg(feature = "protocol-river_window_management_v1")]
5957            Self::RiverNodeV1 => 4,
5958            #[cfg(feature = "protocol-river_window_management_v1")]
5959            Self::RiverOutputV1 => 4,
5960            #[cfg(feature = "protocol-river_window_management_v1")]
5961            Self::RiverPointerBindingV1 => 4,
5962            #[cfg(feature = "protocol-river_window_management_v1")]
5963            Self::RiverSeatV1 => 4,
5964            #[cfg(feature = "protocol-river_window_management_v1")]
5965            Self::RiverShellSurfaceV1 => 4,
5966            #[cfg(feature = "protocol-river_window_management_v1")]
5967            Self::RiverWindowManagerV1 => 4,
5968            #[cfg(feature = "protocol-river_window_management_v1")]
5969            Self::RiverWindowV1 => 4,
5970            #[cfg(feature = "protocol-river_xkb_bindings_v1")]
5971            Self::RiverXkbBindingV1 => 2,
5972            #[cfg(feature = "protocol-river_xkb_bindings_v1")]
5973            Self::RiverXkbBindingsSeatV1 => 2,
5974            #[cfg(feature = "protocol-river_xkb_bindings_v1")]
5975            Self::RiverXkbBindingsV1 => 2,
5976            #[cfg(feature = "protocol-river_xkb_config_v1")]
5977            Self::RiverXkbConfigV1 => 1,
5978            #[cfg(feature = "protocol-river_xkb_config_v1")]
5979            Self::RiverXkbKeyboardV1 => 1,
5980            #[cfg(feature = "protocol-river_xkb_config_v1")]
5981            Self::RiverXkbKeymapV1 => 1,
5982            #[cfg(feature = "protocol-ivi_application")]
5983            Self::IviApplication => 1,
5984            #[cfg(feature = "protocol-ivi_application")]
5985            Self::IviSurface => 1,
5986            #[cfg(feature = "protocol-ivi_hmi_controller")]
5987            Self::IviHmiController => 1,
5988            #[cfg(feature = "protocol-weston_content_protection")]
5989            Self::WestonContentProtection => 1,
5990            #[cfg(feature = "protocol-weston_content_protection")]
5991            Self::WestonProtectedSurface => 1,
5992            #[cfg(feature = "protocol-weston_debug")]
5993            Self::WestonDebugStreamV1 => 1,
5994            #[cfg(feature = "protocol-weston_debug")]
5995            Self::WestonDebugV1 => 1,
5996            #[cfg(feature = "protocol-weston_desktop")]
5997            Self::WestonDesktopShell => 1,
5998            #[cfg(feature = "protocol-weston_desktop")]
5999            Self::WestonScreensaver => 1,
6000            #[cfg(feature = "protocol-weston_direct_display")]
6001            Self::WestonDirectDisplayV1 => 1,
6002            #[cfg(feature = "protocol-weston_output_capture")]
6003            Self::WestonCaptureSourceV1 => 2,
6004            #[cfg(feature = "protocol-weston_output_capture")]
6005            Self::WestonCaptureV1 => 2,
6006            #[cfg(feature = "protocol-weston_test")]
6007            Self::WestonTest => 1,
6008            #[cfg(feature = "protocol-weston_test")]
6009            Self::WestonTestRunner => 1,
6010            #[cfg(feature = "protocol-weston_touch_calibration")]
6011            Self::WestonTouchCalibration => 1,
6012            #[cfg(feature = "protocol-weston_touch_calibration")]
6013            Self::WestonTouchCalibrator => 1,
6014            #[cfg(feature = "protocol-weston_touch_calibration")]
6015            Self::WestonTouchCoordinate => 1,
6016            #[cfg(feature = "protocol-cosmic_a11y_v1")]
6017            Self::CosmicA11yManagerV1 => 3,
6018            #[cfg(feature = "protocol-cosmic_corner_radius_v1")]
6019            Self::CosmicCornerRadiusManagerV1 => 1,
6020            #[cfg(feature = "protocol-cosmic_corner_radius_v1")]
6021            Self::CosmicCornerRadiusToplevelV1 => 1,
6022            #[cfg(feature = "protocol-cosmic_image_source_unstable_v1")]
6023            Self::ZcosmicWorkspaceImageCaptureSourceManagerV1 => 1,
6024            #[cfg(feature = "protocol-cosmic_output_management_unstable_v1")]
6025            Self::ZcosmicOutputConfigurationHeadV1 => 2,
6026            #[cfg(feature = "protocol-cosmic_output_management_unstable_v1")]
6027            Self::ZcosmicOutputConfigurationV1 => 1,
6028            #[cfg(feature = "protocol-cosmic_output_management_unstable_v1")]
6029            Self::ZcosmicOutputHeadV1 => 3,
6030            #[cfg(feature = "protocol-cosmic_output_management_unstable_v1")]
6031            Self::ZcosmicOutputManagerV1 => 3,
6032            #[cfg(feature = "protocol-cosmic_overlap_notify_unstable_v1")]
6033            Self::ZcosmicOverlapNotificationV1 => 1,
6034            #[cfg(feature = "protocol-cosmic_overlap_notify_unstable_v1")]
6035            Self::ZcosmicOverlapNotifyV1 => 1,
6036            #[cfg(feature = "protocol-cosmic_workspace_unstable_v2")]
6037            Self::ZcosmicWorkspaceHandleV2 => 2,
6038            #[cfg(feature = "protocol-cosmic_workspace_unstable_v2")]
6039            Self::ZcosmicWorkspaceManagerV2 => 2,
6040        }
6041    }
6042}