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