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