1// This file contains generated code. Do not edit directly.
2// To regenerate this, run 'make'.
3
4//! Bindings to the X11 protocol.
5//!
6//! Each sub-module of this module corresponds to one X11 extension. It contains all the
7//! definitions from that extension. The core X11 protocol is in [`xproto`](xproto/index.html).
8
9// Clippy does not like some names from the XML.
10#![allow(clippy::upper_case_acronyms)]
11// This is not easy to fix, so ignore it.
12#![allow(clippy::needless_borrow, clippy::needless_lifetimes)]
13
14use alloc::borrow::Cow;
15use alloc::string::String;
16use alloc::vec::Vec;
17use core::convert::TryInto;
18use crate::errors::ParseError;
19use crate::RawFdContainer;
20use crate::x11_utils::{TryParse, TryParseFd, X11Error, ReplyRequest, ReplyFDsRequest};
21use crate::x11_utils::{ExtInfoProvider, ReplyParsingFunction, RequestHeader};
22
23fn parse_reply<'a, R: ReplyRequest>(bytes: &'a [u8], _: &mut Vec<RawFdContainer>) -> Result<(Reply, &'a [u8]), ParseError> {
24 let (reply: ::Reply, remaining: &[u8]) = R::Reply::try_parse(bytes)?;
25 Ok((reply.into(), remaining))
26}
27#[allow(dead_code)]
28fn parse_reply_fds<'a, R: ReplyFDsRequest>(bytes: &'a [u8], fds: &mut Vec<RawFdContainer>) -> Result<(Reply, &'a [u8]), ParseError> {
29 let (reply: ::Reply, remaining: &[u8]) = R::Reply::try_parse_fd(value:bytes, fds)?;
30 Ok((reply.into(), remaining))
31}
32
33pub mod xproto;
34pub mod bigreq;
35#[cfg(feature = "composite")]
36pub mod composite;
37#[cfg(feature = "damage")]
38pub mod damage;
39#[cfg(feature = "dbe")]
40pub mod dbe;
41#[cfg(feature = "dpms")]
42pub mod dpms;
43#[cfg(feature = "dri2")]
44pub mod dri2;
45#[cfg(feature = "dri3")]
46pub mod dri3;
47pub mod ge;
48#[cfg(feature = "glx")]
49pub mod glx;
50#[cfg(feature = "present")]
51pub mod present;
52#[cfg(feature = "randr")]
53pub mod randr;
54#[cfg(feature = "record")]
55pub mod record;
56#[cfg(feature = "render")]
57pub mod render;
58#[cfg(feature = "res")]
59pub mod res;
60#[cfg(feature = "screensaver")]
61pub mod screensaver;
62#[cfg(feature = "shape")]
63pub mod shape;
64#[cfg(feature = "shm")]
65pub mod shm;
66#[cfg(feature = "sync")]
67pub mod sync;
68pub mod xc_misc;
69#[cfg(feature = "xevie")]
70pub mod xevie;
71#[cfg(feature = "xf86dri")]
72pub mod xf86dri;
73#[cfg(feature = "xf86vidmode")]
74pub mod xf86vidmode;
75#[cfg(feature = "xfixes")]
76pub mod xfixes;
77#[cfg(feature = "xinerama")]
78pub mod xinerama;
79#[cfg(feature = "xinput")]
80pub mod xinput;
81#[cfg(feature = "xkb")]
82pub mod xkb;
83#[cfg(feature = "xprint")]
84pub mod xprint;
85#[cfg(feature = "xselinux")]
86pub mod xselinux;
87#[cfg(feature = "xtest")]
88pub mod xtest;
89#[cfg(feature = "xv")]
90pub mod xv;
91#[cfg(feature = "xvmc")]
92pub mod xvmc;
93
94/// Helper container for translating numeric request information to a string
95#[derive(Debug)]
96enum RequestInfo {
97 /// A core protocol request
98 Xproto(&'static str),
99 /// A known request from a known extension. String is of the form "ExtName::RequestName".
100 KnownExt(&'static str),
101 /// A request which could not be identified. The first entry is the extension name (or none for xproto). Second is opcode.
102 UnknownRequest(Option<&'static str>, u8),
103 /// A request from an extension that could not be identified
104 UnknownExtension(u8, u8),
105}
106
107/// Get information about a request based on its major and minor code.
108///
109/// The major and minor opcode are the first and second byte of a request.
110/// Core requests do not have a minor opcode. For these, the minor opcode is ignored by this function.
111///
112/// This function returns the name of the extension to which the request belongs, if available, and information about the specific request.
113fn get_request_name_internal(
114 ext_info_provider: &dyn ExtInfoProvider,
115 major_opcode: u8,
116 minor_opcode: u8,
117) -> (Option<&str>, RequestInfo) {
118 // From the X11 protocol reference manual:
119 // Major opcodes 128 through 255 are reserved for extensions.
120 if major_opcode < 128 {
121 match major_opcode {
122 xproto::CREATE_WINDOW_REQUEST => (None, RequestInfo::Xproto("CreateWindow")),
123 xproto::CHANGE_WINDOW_ATTRIBUTES_REQUEST => (None, RequestInfo::Xproto("ChangeWindowAttributes")),
124 xproto::GET_WINDOW_ATTRIBUTES_REQUEST => (None, RequestInfo::Xproto("GetWindowAttributes")),
125 xproto::DESTROY_WINDOW_REQUEST => (None, RequestInfo::Xproto("DestroyWindow")),
126 xproto::DESTROY_SUBWINDOWS_REQUEST => (None, RequestInfo::Xproto("DestroySubwindows")),
127 xproto::CHANGE_SAVE_SET_REQUEST => (None, RequestInfo::Xproto("ChangeSaveSet")),
128 xproto::REPARENT_WINDOW_REQUEST => (None, RequestInfo::Xproto("ReparentWindow")),
129 xproto::MAP_WINDOW_REQUEST => (None, RequestInfo::Xproto("MapWindow")),
130 xproto::MAP_SUBWINDOWS_REQUEST => (None, RequestInfo::Xproto("MapSubwindows")),
131 xproto::UNMAP_WINDOW_REQUEST => (None, RequestInfo::Xproto("UnmapWindow")),
132 xproto::UNMAP_SUBWINDOWS_REQUEST => (None, RequestInfo::Xproto("UnmapSubwindows")),
133 xproto::CONFIGURE_WINDOW_REQUEST => (None, RequestInfo::Xproto("ConfigureWindow")),
134 xproto::CIRCULATE_WINDOW_REQUEST => (None, RequestInfo::Xproto("CirculateWindow")),
135 xproto::GET_GEOMETRY_REQUEST => (None, RequestInfo::Xproto("GetGeometry")),
136 xproto::QUERY_TREE_REQUEST => (None, RequestInfo::Xproto("QueryTree")),
137 xproto::INTERN_ATOM_REQUEST => (None, RequestInfo::Xproto("InternAtom")),
138 xproto::GET_ATOM_NAME_REQUEST => (None, RequestInfo::Xproto("GetAtomName")),
139 xproto::CHANGE_PROPERTY_REQUEST => (None, RequestInfo::Xproto("ChangeProperty")),
140 xproto::DELETE_PROPERTY_REQUEST => (None, RequestInfo::Xproto("DeleteProperty")),
141 xproto::GET_PROPERTY_REQUEST => (None, RequestInfo::Xproto("GetProperty")),
142 xproto::LIST_PROPERTIES_REQUEST => (None, RequestInfo::Xproto("ListProperties")),
143 xproto::SET_SELECTION_OWNER_REQUEST => (None, RequestInfo::Xproto("SetSelectionOwner")),
144 xproto::GET_SELECTION_OWNER_REQUEST => (None, RequestInfo::Xproto("GetSelectionOwner")),
145 xproto::CONVERT_SELECTION_REQUEST => (None, RequestInfo::Xproto("ConvertSelection")),
146 xproto::SEND_EVENT_REQUEST => (None, RequestInfo::Xproto("SendEvent")),
147 xproto::GRAB_POINTER_REQUEST => (None, RequestInfo::Xproto("GrabPointer")),
148 xproto::UNGRAB_POINTER_REQUEST => (None, RequestInfo::Xproto("UngrabPointer")),
149 xproto::GRAB_BUTTON_REQUEST => (None, RequestInfo::Xproto("GrabButton")),
150 xproto::UNGRAB_BUTTON_REQUEST => (None, RequestInfo::Xproto("UngrabButton")),
151 xproto::CHANGE_ACTIVE_POINTER_GRAB_REQUEST => (None, RequestInfo::Xproto("ChangeActivePointerGrab")),
152 xproto::GRAB_KEYBOARD_REQUEST => (None, RequestInfo::Xproto("GrabKeyboard")),
153 xproto::UNGRAB_KEYBOARD_REQUEST => (None, RequestInfo::Xproto("UngrabKeyboard")),
154 xproto::GRAB_KEY_REQUEST => (None, RequestInfo::Xproto("GrabKey")),
155 xproto::UNGRAB_KEY_REQUEST => (None, RequestInfo::Xproto("UngrabKey")),
156 xproto::ALLOW_EVENTS_REQUEST => (None, RequestInfo::Xproto("AllowEvents")),
157 xproto::GRAB_SERVER_REQUEST => (None, RequestInfo::Xproto("GrabServer")),
158 xproto::UNGRAB_SERVER_REQUEST => (None, RequestInfo::Xproto("UngrabServer")),
159 xproto::QUERY_POINTER_REQUEST => (None, RequestInfo::Xproto("QueryPointer")),
160 xproto::GET_MOTION_EVENTS_REQUEST => (None, RequestInfo::Xproto("GetMotionEvents")),
161 xproto::TRANSLATE_COORDINATES_REQUEST => (None, RequestInfo::Xproto("TranslateCoordinates")),
162 xproto::WARP_POINTER_REQUEST => (None, RequestInfo::Xproto("WarpPointer")),
163 xproto::SET_INPUT_FOCUS_REQUEST => (None, RequestInfo::Xproto("SetInputFocus")),
164 xproto::GET_INPUT_FOCUS_REQUEST => (None, RequestInfo::Xproto("GetInputFocus")),
165 xproto::QUERY_KEYMAP_REQUEST => (None, RequestInfo::Xproto("QueryKeymap")),
166 xproto::OPEN_FONT_REQUEST => (None, RequestInfo::Xproto("OpenFont")),
167 xproto::CLOSE_FONT_REQUEST => (None, RequestInfo::Xproto("CloseFont")),
168 xproto::QUERY_FONT_REQUEST => (None, RequestInfo::Xproto("QueryFont")),
169 xproto::QUERY_TEXT_EXTENTS_REQUEST => (None, RequestInfo::Xproto("QueryTextExtents")),
170 xproto::LIST_FONTS_REQUEST => (None, RequestInfo::Xproto("ListFonts")),
171 xproto::LIST_FONTS_WITH_INFO_REQUEST => (None, RequestInfo::Xproto("ListFontsWithInfo")),
172 xproto::SET_FONT_PATH_REQUEST => (None, RequestInfo::Xproto("SetFontPath")),
173 xproto::GET_FONT_PATH_REQUEST => (None, RequestInfo::Xproto("GetFontPath")),
174 xproto::CREATE_PIXMAP_REQUEST => (None, RequestInfo::Xproto("CreatePixmap")),
175 xproto::FREE_PIXMAP_REQUEST => (None, RequestInfo::Xproto("FreePixmap")),
176 xproto::CREATE_GC_REQUEST => (None, RequestInfo::Xproto("CreateGC")),
177 xproto::CHANGE_GC_REQUEST => (None, RequestInfo::Xproto("ChangeGC")),
178 xproto::COPY_GC_REQUEST => (None, RequestInfo::Xproto("CopyGC")),
179 xproto::SET_DASHES_REQUEST => (None, RequestInfo::Xproto("SetDashes")),
180 xproto::SET_CLIP_RECTANGLES_REQUEST => (None, RequestInfo::Xproto("SetClipRectangles")),
181 xproto::FREE_GC_REQUEST => (None, RequestInfo::Xproto("FreeGC")),
182 xproto::CLEAR_AREA_REQUEST => (None, RequestInfo::Xproto("ClearArea")),
183 xproto::COPY_AREA_REQUEST => (None, RequestInfo::Xproto("CopyArea")),
184 xproto::COPY_PLANE_REQUEST => (None, RequestInfo::Xproto("CopyPlane")),
185 xproto::POLY_POINT_REQUEST => (None, RequestInfo::Xproto("PolyPoint")),
186 xproto::POLY_LINE_REQUEST => (None, RequestInfo::Xproto("PolyLine")),
187 xproto::POLY_SEGMENT_REQUEST => (None, RequestInfo::Xproto("PolySegment")),
188 xproto::POLY_RECTANGLE_REQUEST => (None, RequestInfo::Xproto("PolyRectangle")),
189 xproto::POLY_ARC_REQUEST => (None, RequestInfo::Xproto("PolyArc")),
190 xproto::FILL_POLY_REQUEST => (None, RequestInfo::Xproto("FillPoly")),
191 xproto::POLY_FILL_RECTANGLE_REQUEST => (None, RequestInfo::Xproto("PolyFillRectangle")),
192 xproto::POLY_FILL_ARC_REQUEST => (None, RequestInfo::Xproto("PolyFillArc")),
193 xproto::PUT_IMAGE_REQUEST => (None, RequestInfo::Xproto("PutImage")),
194 xproto::GET_IMAGE_REQUEST => (None, RequestInfo::Xproto("GetImage")),
195 xproto::POLY_TEXT8_REQUEST => (None, RequestInfo::Xproto("PolyText8")),
196 xproto::POLY_TEXT16_REQUEST => (None, RequestInfo::Xproto("PolyText16")),
197 xproto::IMAGE_TEXT8_REQUEST => (None, RequestInfo::Xproto("ImageText8")),
198 xproto::IMAGE_TEXT16_REQUEST => (None, RequestInfo::Xproto("ImageText16")),
199 xproto::CREATE_COLORMAP_REQUEST => (None, RequestInfo::Xproto("CreateColormap")),
200 xproto::FREE_COLORMAP_REQUEST => (None, RequestInfo::Xproto("FreeColormap")),
201 xproto::COPY_COLORMAP_AND_FREE_REQUEST => (None, RequestInfo::Xproto("CopyColormapAndFree")),
202 xproto::INSTALL_COLORMAP_REQUEST => (None, RequestInfo::Xproto("InstallColormap")),
203 xproto::UNINSTALL_COLORMAP_REQUEST => (None, RequestInfo::Xproto("UninstallColormap")),
204 xproto::LIST_INSTALLED_COLORMAPS_REQUEST => (None, RequestInfo::Xproto("ListInstalledColormaps")),
205 xproto::ALLOC_COLOR_REQUEST => (None, RequestInfo::Xproto("AllocColor")),
206 xproto::ALLOC_NAMED_COLOR_REQUEST => (None, RequestInfo::Xproto("AllocNamedColor")),
207 xproto::ALLOC_COLOR_CELLS_REQUEST => (None, RequestInfo::Xproto("AllocColorCells")),
208 xproto::ALLOC_COLOR_PLANES_REQUEST => (None, RequestInfo::Xproto("AllocColorPlanes")),
209 xproto::FREE_COLORS_REQUEST => (None, RequestInfo::Xproto("FreeColors")),
210 xproto::STORE_COLORS_REQUEST => (None, RequestInfo::Xproto("StoreColors")),
211 xproto::STORE_NAMED_COLOR_REQUEST => (None, RequestInfo::Xproto("StoreNamedColor")),
212 xproto::QUERY_COLORS_REQUEST => (None, RequestInfo::Xproto("QueryColors")),
213 xproto::LOOKUP_COLOR_REQUEST => (None, RequestInfo::Xproto("LookupColor")),
214 xproto::CREATE_CURSOR_REQUEST => (None, RequestInfo::Xproto("CreateCursor")),
215 xproto::CREATE_GLYPH_CURSOR_REQUEST => (None, RequestInfo::Xproto("CreateGlyphCursor")),
216 xproto::FREE_CURSOR_REQUEST => (None, RequestInfo::Xproto("FreeCursor")),
217 xproto::RECOLOR_CURSOR_REQUEST => (None, RequestInfo::Xproto("RecolorCursor")),
218 xproto::QUERY_BEST_SIZE_REQUEST => (None, RequestInfo::Xproto("QueryBestSize")),
219 xproto::QUERY_EXTENSION_REQUEST => (None, RequestInfo::Xproto("QueryExtension")),
220 xproto::LIST_EXTENSIONS_REQUEST => (None, RequestInfo::Xproto("ListExtensions")),
221 xproto::CHANGE_KEYBOARD_MAPPING_REQUEST => (None, RequestInfo::Xproto("ChangeKeyboardMapping")),
222 xproto::GET_KEYBOARD_MAPPING_REQUEST => (None, RequestInfo::Xproto("GetKeyboardMapping")),
223 xproto::CHANGE_KEYBOARD_CONTROL_REQUEST => (None, RequestInfo::Xproto("ChangeKeyboardControl")),
224 xproto::GET_KEYBOARD_CONTROL_REQUEST => (None, RequestInfo::Xproto("GetKeyboardControl")),
225 xproto::BELL_REQUEST => (None, RequestInfo::Xproto("Bell")),
226 xproto::CHANGE_POINTER_CONTROL_REQUEST => (None, RequestInfo::Xproto("ChangePointerControl")),
227 xproto::GET_POINTER_CONTROL_REQUEST => (None, RequestInfo::Xproto("GetPointerControl")),
228 xproto::SET_SCREEN_SAVER_REQUEST => (None, RequestInfo::Xproto("SetScreenSaver")),
229 xproto::GET_SCREEN_SAVER_REQUEST => (None, RequestInfo::Xproto("GetScreenSaver")),
230 xproto::CHANGE_HOSTS_REQUEST => (None, RequestInfo::Xproto("ChangeHosts")),
231 xproto::LIST_HOSTS_REQUEST => (None, RequestInfo::Xproto("ListHosts")),
232 xproto::SET_ACCESS_CONTROL_REQUEST => (None, RequestInfo::Xproto("SetAccessControl")),
233 xproto::SET_CLOSE_DOWN_MODE_REQUEST => (None, RequestInfo::Xproto("SetCloseDownMode")),
234 xproto::KILL_CLIENT_REQUEST => (None, RequestInfo::Xproto("KillClient")),
235 xproto::ROTATE_PROPERTIES_REQUEST => (None, RequestInfo::Xproto("RotateProperties")),
236 xproto::FORCE_SCREEN_SAVER_REQUEST => (None, RequestInfo::Xproto("ForceScreenSaver")),
237 xproto::SET_POINTER_MAPPING_REQUEST => (None, RequestInfo::Xproto("SetPointerMapping")),
238 xproto::GET_POINTER_MAPPING_REQUEST => (None, RequestInfo::Xproto("GetPointerMapping")),
239 xproto::SET_MODIFIER_MAPPING_REQUEST => (None, RequestInfo::Xproto("SetModifierMapping")),
240 xproto::GET_MODIFIER_MAPPING_REQUEST => (None, RequestInfo::Xproto("GetModifierMapping")),
241 xproto::NO_OPERATION_REQUEST => (None, RequestInfo::Xproto("NoOperation")),
242 _ => (None, RequestInfo::UnknownRequest(None, major_opcode)),
243 }
244 } else {
245 // Figure out the extension name
246 let ext_name = match ext_info_provider.get_from_major_opcode(major_opcode) {
247 Some((name, _)) => name,
248 None => return (None, RequestInfo::UnknownExtension(major_opcode, minor_opcode)),
249 };
250 let info = match ext_name {
251 bigreq::X11_EXTENSION_NAME => {
252 match minor_opcode {
253 bigreq::ENABLE_REQUEST => RequestInfo::KnownExt("BigRequests::Enable"),
254 _ => RequestInfo::UnknownRequest(Some("BigRequests"), minor_opcode),
255 }
256 }
257 #[cfg(feature = "composite")]
258 composite::X11_EXTENSION_NAME => {
259 match minor_opcode {
260 composite::QUERY_VERSION_REQUEST => RequestInfo::KnownExt("Composite::QueryVersion"),
261 composite::REDIRECT_WINDOW_REQUEST => RequestInfo::KnownExt("Composite::RedirectWindow"),
262 composite::REDIRECT_SUBWINDOWS_REQUEST => RequestInfo::KnownExt("Composite::RedirectSubwindows"),
263 composite::UNREDIRECT_WINDOW_REQUEST => RequestInfo::KnownExt("Composite::UnredirectWindow"),
264 composite::UNREDIRECT_SUBWINDOWS_REQUEST => RequestInfo::KnownExt("Composite::UnredirectSubwindows"),
265 composite::CREATE_REGION_FROM_BORDER_CLIP_REQUEST => RequestInfo::KnownExt("Composite::CreateRegionFromBorderClip"),
266 composite::NAME_WINDOW_PIXMAP_REQUEST => RequestInfo::KnownExt("Composite::NameWindowPixmap"),
267 composite::GET_OVERLAY_WINDOW_REQUEST => RequestInfo::KnownExt("Composite::GetOverlayWindow"),
268 composite::RELEASE_OVERLAY_WINDOW_REQUEST => RequestInfo::KnownExt("Composite::ReleaseOverlayWindow"),
269 _ => RequestInfo::UnknownRequest(Some("Composite"), minor_opcode),
270 }
271 }
272 #[cfg(feature = "damage")]
273 damage::X11_EXTENSION_NAME => {
274 match minor_opcode {
275 damage::QUERY_VERSION_REQUEST => RequestInfo::KnownExt("Damage::QueryVersion"),
276 damage::CREATE_REQUEST => RequestInfo::KnownExt("Damage::Create"),
277 damage::DESTROY_REQUEST => RequestInfo::KnownExt("Damage::Destroy"),
278 damage::SUBTRACT_REQUEST => RequestInfo::KnownExt("Damage::Subtract"),
279 damage::ADD_REQUEST => RequestInfo::KnownExt("Damage::Add"),
280 _ => RequestInfo::UnknownRequest(Some("Damage"), minor_opcode),
281 }
282 }
283 #[cfg(feature = "dbe")]
284 dbe::X11_EXTENSION_NAME => {
285 match minor_opcode {
286 dbe::QUERY_VERSION_REQUEST => RequestInfo::KnownExt("Dbe::QueryVersion"),
287 dbe::ALLOCATE_BACK_BUFFER_REQUEST => RequestInfo::KnownExt("Dbe::AllocateBackBuffer"),
288 dbe::DEALLOCATE_BACK_BUFFER_REQUEST => RequestInfo::KnownExt("Dbe::DeallocateBackBuffer"),
289 dbe::SWAP_BUFFERS_REQUEST => RequestInfo::KnownExt("Dbe::SwapBuffers"),
290 dbe::BEGIN_IDIOM_REQUEST => RequestInfo::KnownExt("Dbe::BeginIdiom"),
291 dbe::END_IDIOM_REQUEST => RequestInfo::KnownExt("Dbe::EndIdiom"),
292 dbe::GET_VISUAL_INFO_REQUEST => RequestInfo::KnownExt("Dbe::GetVisualInfo"),
293 dbe::GET_BACK_BUFFER_ATTRIBUTES_REQUEST => RequestInfo::KnownExt("Dbe::GetBackBufferAttributes"),
294 _ => RequestInfo::UnknownRequest(Some("Dbe"), minor_opcode),
295 }
296 }
297 #[cfg(feature = "dpms")]
298 dpms::X11_EXTENSION_NAME => {
299 match minor_opcode {
300 dpms::GET_VERSION_REQUEST => RequestInfo::KnownExt("DPMS::GetVersion"),
301 dpms::CAPABLE_REQUEST => RequestInfo::KnownExt("DPMS::Capable"),
302 dpms::GET_TIMEOUTS_REQUEST => RequestInfo::KnownExt("DPMS::GetTimeouts"),
303 dpms::SET_TIMEOUTS_REQUEST => RequestInfo::KnownExt("DPMS::SetTimeouts"),
304 dpms::ENABLE_REQUEST => RequestInfo::KnownExt("DPMS::Enable"),
305 dpms::DISABLE_REQUEST => RequestInfo::KnownExt("DPMS::Disable"),
306 dpms::FORCE_LEVEL_REQUEST => RequestInfo::KnownExt("DPMS::ForceLevel"),
307 dpms::INFO_REQUEST => RequestInfo::KnownExt("DPMS::Info"),
308 _ => RequestInfo::UnknownRequest(Some("DPMS"), minor_opcode),
309 }
310 }
311 #[cfg(feature = "dri2")]
312 dri2::X11_EXTENSION_NAME => {
313 match minor_opcode {
314 dri2::QUERY_VERSION_REQUEST => RequestInfo::KnownExt("DRI2::QueryVersion"),
315 dri2::CONNECT_REQUEST => RequestInfo::KnownExt("DRI2::Connect"),
316 dri2::AUTHENTICATE_REQUEST => RequestInfo::KnownExt("DRI2::Authenticate"),
317 dri2::CREATE_DRAWABLE_REQUEST => RequestInfo::KnownExt("DRI2::CreateDrawable"),
318 dri2::DESTROY_DRAWABLE_REQUEST => RequestInfo::KnownExt("DRI2::DestroyDrawable"),
319 dri2::GET_BUFFERS_REQUEST => RequestInfo::KnownExt("DRI2::GetBuffers"),
320 dri2::COPY_REGION_REQUEST => RequestInfo::KnownExt("DRI2::CopyRegion"),
321 dri2::GET_BUFFERS_WITH_FORMAT_REQUEST => RequestInfo::KnownExt("DRI2::GetBuffersWithFormat"),
322 dri2::SWAP_BUFFERS_REQUEST => RequestInfo::KnownExt("DRI2::SwapBuffers"),
323 dri2::GET_MSC_REQUEST => RequestInfo::KnownExt("DRI2::GetMSC"),
324 dri2::WAIT_MSC_REQUEST => RequestInfo::KnownExt("DRI2::WaitMSC"),
325 dri2::WAIT_SBC_REQUEST => RequestInfo::KnownExt("DRI2::WaitSBC"),
326 dri2::SWAP_INTERVAL_REQUEST => RequestInfo::KnownExt("DRI2::SwapInterval"),
327 dri2::GET_PARAM_REQUEST => RequestInfo::KnownExt("DRI2::GetParam"),
328 _ => RequestInfo::UnknownRequest(Some("DRI2"), minor_opcode),
329 }
330 }
331 #[cfg(feature = "dri3")]
332 dri3::X11_EXTENSION_NAME => {
333 match minor_opcode {
334 dri3::QUERY_VERSION_REQUEST => RequestInfo::KnownExt("DRI3::QueryVersion"),
335 dri3::OPEN_REQUEST => RequestInfo::KnownExt("DRI3::Open"),
336 dri3::PIXMAP_FROM_BUFFER_REQUEST => RequestInfo::KnownExt("DRI3::PixmapFromBuffer"),
337 dri3::BUFFER_FROM_PIXMAP_REQUEST => RequestInfo::KnownExt("DRI3::BufferFromPixmap"),
338 dri3::FENCE_FROM_FD_REQUEST => RequestInfo::KnownExt("DRI3::FenceFromFD"),
339 dri3::FD_FROM_FENCE_REQUEST => RequestInfo::KnownExt("DRI3::FDFromFence"),
340 dri3::GET_SUPPORTED_MODIFIERS_REQUEST => RequestInfo::KnownExt("DRI3::GetSupportedModifiers"),
341 dri3::PIXMAP_FROM_BUFFERS_REQUEST => RequestInfo::KnownExt("DRI3::PixmapFromBuffers"),
342 dri3::BUFFERS_FROM_PIXMAP_REQUEST => RequestInfo::KnownExt("DRI3::BuffersFromPixmap"),
343 dri3::SET_DRM_DEVICE_IN_USE_REQUEST => RequestInfo::KnownExt("DRI3::SetDRMDeviceInUse"),
344 _ => RequestInfo::UnknownRequest(Some("DRI3"), minor_opcode),
345 }
346 }
347 ge::X11_EXTENSION_NAME => {
348 match minor_opcode {
349 ge::QUERY_VERSION_REQUEST => RequestInfo::KnownExt("GenericEvent::QueryVersion"),
350 _ => RequestInfo::UnknownRequest(Some("GenericEvent"), minor_opcode),
351 }
352 }
353 #[cfg(feature = "glx")]
354 glx::X11_EXTENSION_NAME => {
355 match minor_opcode {
356 glx::RENDER_REQUEST => RequestInfo::KnownExt("Glx::Render"),
357 glx::RENDER_LARGE_REQUEST => RequestInfo::KnownExt("Glx::RenderLarge"),
358 glx::CREATE_CONTEXT_REQUEST => RequestInfo::KnownExt("Glx::CreateContext"),
359 glx::DESTROY_CONTEXT_REQUEST => RequestInfo::KnownExt("Glx::DestroyContext"),
360 glx::MAKE_CURRENT_REQUEST => RequestInfo::KnownExt("Glx::MakeCurrent"),
361 glx::IS_DIRECT_REQUEST => RequestInfo::KnownExt("Glx::IsDirect"),
362 glx::QUERY_VERSION_REQUEST => RequestInfo::KnownExt("Glx::QueryVersion"),
363 glx::WAIT_GL_REQUEST => RequestInfo::KnownExt("Glx::WaitGL"),
364 glx::WAIT_X_REQUEST => RequestInfo::KnownExt("Glx::WaitX"),
365 glx::COPY_CONTEXT_REQUEST => RequestInfo::KnownExt("Glx::CopyContext"),
366 glx::SWAP_BUFFERS_REQUEST => RequestInfo::KnownExt("Glx::SwapBuffers"),
367 glx::USE_X_FONT_REQUEST => RequestInfo::KnownExt("Glx::UseXFont"),
368 glx::CREATE_GLX_PIXMAP_REQUEST => RequestInfo::KnownExt("Glx::CreateGLXPixmap"),
369 glx::GET_VISUAL_CONFIGS_REQUEST => RequestInfo::KnownExt("Glx::GetVisualConfigs"),
370 glx::DESTROY_GLX_PIXMAP_REQUEST => RequestInfo::KnownExt("Glx::DestroyGLXPixmap"),
371 glx::VENDOR_PRIVATE_REQUEST => RequestInfo::KnownExt("Glx::VendorPrivate"),
372 glx::VENDOR_PRIVATE_WITH_REPLY_REQUEST => RequestInfo::KnownExt("Glx::VendorPrivateWithReply"),
373 glx::QUERY_EXTENSIONS_STRING_REQUEST => RequestInfo::KnownExt("Glx::QueryExtensionsString"),
374 glx::QUERY_SERVER_STRING_REQUEST => RequestInfo::KnownExt("Glx::QueryServerString"),
375 glx::CLIENT_INFO_REQUEST => RequestInfo::KnownExt("Glx::ClientInfo"),
376 glx::GET_FB_CONFIGS_REQUEST => RequestInfo::KnownExt("Glx::GetFBConfigs"),
377 glx::CREATE_PIXMAP_REQUEST => RequestInfo::KnownExt("Glx::CreatePixmap"),
378 glx::DESTROY_PIXMAP_REQUEST => RequestInfo::KnownExt("Glx::DestroyPixmap"),
379 glx::CREATE_NEW_CONTEXT_REQUEST => RequestInfo::KnownExt("Glx::CreateNewContext"),
380 glx::QUERY_CONTEXT_REQUEST => RequestInfo::KnownExt("Glx::QueryContext"),
381 glx::MAKE_CONTEXT_CURRENT_REQUEST => RequestInfo::KnownExt("Glx::MakeContextCurrent"),
382 glx::CREATE_PBUFFER_REQUEST => RequestInfo::KnownExt("Glx::CreatePbuffer"),
383 glx::DESTROY_PBUFFER_REQUEST => RequestInfo::KnownExt("Glx::DestroyPbuffer"),
384 glx::GET_DRAWABLE_ATTRIBUTES_REQUEST => RequestInfo::KnownExt("Glx::GetDrawableAttributes"),
385 glx::CHANGE_DRAWABLE_ATTRIBUTES_REQUEST => RequestInfo::KnownExt("Glx::ChangeDrawableAttributes"),
386 glx::CREATE_WINDOW_REQUEST => RequestInfo::KnownExt("Glx::CreateWindow"),
387 glx::DELETE_WINDOW_REQUEST => RequestInfo::KnownExt("Glx::DeleteWindow"),
388 glx::SET_CLIENT_INFO_ARB_REQUEST => RequestInfo::KnownExt("Glx::SetClientInfoARB"),
389 glx::CREATE_CONTEXT_ATTRIBS_ARB_REQUEST => RequestInfo::KnownExt("Glx::CreateContextAttribsARB"),
390 glx::SET_CLIENT_INFO2_ARB_REQUEST => RequestInfo::KnownExt("Glx::SetClientInfo2ARB"),
391 glx::NEW_LIST_REQUEST => RequestInfo::KnownExt("Glx::NewList"),
392 glx::END_LIST_REQUEST => RequestInfo::KnownExt("Glx::EndList"),
393 glx::DELETE_LISTS_REQUEST => RequestInfo::KnownExt("Glx::DeleteLists"),
394 glx::GEN_LISTS_REQUEST => RequestInfo::KnownExt("Glx::GenLists"),
395 glx::FEEDBACK_BUFFER_REQUEST => RequestInfo::KnownExt("Glx::FeedbackBuffer"),
396 glx::SELECT_BUFFER_REQUEST => RequestInfo::KnownExt("Glx::SelectBuffer"),
397 glx::RENDER_MODE_REQUEST => RequestInfo::KnownExt("Glx::RenderMode"),
398 glx::FINISH_REQUEST => RequestInfo::KnownExt("Glx::Finish"),
399 glx::PIXEL_STOREF_REQUEST => RequestInfo::KnownExt("Glx::PixelStoref"),
400 glx::PIXEL_STOREI_REQUEST => RequestInfo::KnownExt("Glx::PixelStorei"),
401 glx::READ_PIXELS_REQUEST => RequestInfo::KnownExt("Glx::ReadPixels"),
402 glx::GET_BOOLEANV_REQUEST => RequestInfo::KnownExt("Glx::GetBooleanv"),
403 glx::GET_CLIP_PLANE_REQUEST => RequestInfo::KnownExt("Glx::GetClipPlane"),
404 glx::GET_DOUBLEV_REQUEST => RequestInfo::KnownExt("Glx::GetDoublev"),
405 glx::GET_ERROR_REQUEST => RequestInfo::KnownExt("Glx::GetError"),
406 glx::GET_FLOATV_REQUEST => RequestInfo::KnownExt("Glx::GetFloatv"),
407 glx::GET_INTEGERV_REQUEST => RequestInfo::KnownExt("Glx::GetIntegerv"),
408 glx::GET_LIGHTFV_REQUEST => RequestInfo::KnownExt("Glx::GetLightfv"),
409 glx::GET_LIGHTIV_REQUEST => RequestInfo::KnownExt("Glx::GetLightiv"),
410 glx::GET_MAPDV_REQUEST => RequestInfo::KnownExt("Glx::GetMapdv"),
411 glx::GET_MAPFV_REQUEST => RequestInfo::KnownExt("Glx::GetMapfv"),
412 glx::GET_MAPIV_REQUEST => RequestInfo::KnownExt("Glx::GetMapiv"),
413 glx::GET_MATERIALFV_REQUEST => RequestInfo::KnownExt("Glx::GetMaterialfv"),
414 glx::GET_MATERIALIV_REQUEST => RequestInfo::KnownExt("Glx::GetMaterialiv"),
415 glx::GET_PIXEL_MAPFV_REQUEST => RequestInfo::KnownExt("Glx::GetPixelMapfv"),
416 glx::GET_PIXEL_MAPUIV_REQUEST => RequestInfo::KnownExt("Glx::GetPixelMapuiv"),
417 glx::GET_PIXEL_MAPUSV_REQUEST => RequestInfo::KnownExt("Glx::GetPixelMapusv"),
418 glx::GET_POLYGON_STIPPLE_REQUEST => RequestInfo::KnownExt("Glx::GetPolygonStipple"),
419 glx::GET_STRING_REQUEST => RequestInfo::KnownExt("Glx::GetString"),
420 glx::GET_TEX_ENVFV_REQUEST => RequestInfo::KnownExt("Glx::GetTexEnvfv"),
421 glx::GET_TEX_ENVIV_REQUEST => RequestInfo::KnownExt("Glx::GetTexEnviv"),
422 glx::GET_TEX_GENDV_REQUEST => RequestInfo::KnownExt("Glx::GetTexGendv"),
423 glx::GET_TEX_GENFV_REQUEST => RequestInfo::KnownExt("Glx::GetTexGenfv"),
424 glx::GET_TEX_GENIV_REQUEST => RequestInfo::KnownExt("Glx::GetTexGeniv"),
425 glx::GET_TEX_IMAGE_REQUEST => RequestInfo::KnownExt("Glx::GetTexImage"),
426 glx::GET_TEX_PARAMETERFV_REQUEST => RequestInfo::KnownExt("Glx::GetTexParameterfv"),
427 glx::GET_TEX_PARAMETERIV_REQUEST => RequestInfo::KnownExt("Glx::GetTexParameteriv"),
428 glx::GET_TEX_LEVEL_PARAMETERFV_REQUEST => RequestInfo::KnownExt("Glx::GetTexLevelParameterfv"),
429 glx::GET_TEX_LEVEL_PARAMETERIV_REQUEST => RequestInfo::KnownExt("Glx::GetTexLevelParameteriv"),
430 glx::IS_ENABLED_REQUEST => RequestInfo::KnownExt("Glx::IsEnabled"),
431 glx::IS_LIST_REQUEST => RequestInfo::KnownExt("Glx::IsList"),
432 glx::FLUSH_REQUEST => RequestInfo::KnownExt("Glx::Flush"),
433 glx::ARE_TEXTURES_RESIDENT_REQUEST => RequestInfo::KnownExt("Glx::AreTexturesResident"),
434 glx::DELETE_TEXTURES_REQUEST => RequestInfo::KnownExt("Glx::DeleteTextures"),
435 glx::GEN_TEXTURES_REQUEST => RequestInfo::KnownExt("Glx::GenTextures"),
436 glx::IS_TEXTURE_REQUEST => RequestInfo::KnownExt("Glx::IsTexture"),
437 glx::GET_COLOR_TABLE_REQUEST => RequestInfo::KnownExt("Glx::GetColorTable"),
438 glx::GET_COLOR_TABLE_PARAMETERFV_REQUEST => RequestInfo::KnownExt("Glx::GetColorTableParameterfv"),
439 glx::GET_COLOR_TABLE_PARAMETERIV_REQUEST => RequestInfo::KnownExt("Glx::GetColorTableParameteriv"),
440 glx::GET_CONVOLUTION_FILTER_REQUEST => RequestInfo::KnownExt("Glx::GetConvolutionFilter"),
441 glx::GET_CONVOLUTION_PARAMETERFV_REQUEST => RequestInfo::KnownExt("Glx::GetConvolutionParameterfv"),
442 glx::GET_CONVOLUTION_PARAMETERIV_REQUEST => RequestInfo::KnownExt("Glx::GetConvolutionParameteriv"),
443 glx::GET_SEPARABLE_FILTER_REQUEST => RequestInfo::KnownExt("Glx::GetSeparableFilter"),
444 glx::GET_HISTOGRAM_REQUEST => RequestInfo::KnownExt("Glx::GetHistogram"),
445 glx::GET_HISTOGRAM_PARAMETERFV_REQUEST => RequestInfo::KnownExt("Glx::GetHistogramParameterfv"),
446 glx::GET_HISTOGRAM_PARAMETERIV_REQUEST => RequestInfo::KnownExt("Glx::GetHistogramParameteriv"),
447 glx::GET_MINMAX_REQUEST => RequestInfo::KnownExt("Glx::GetMinmax"),
448 glx::GET_MINMAX_PARAMETERFV_REQUEST => RequestInfo::KnownExt("Glx::GetMinmaxParameterfv"),
449 glx::GET_MINMAX_PARAMETERIV_REQUEST => RequestInfo::KnownExt("Glx::GetMinmaxParameteriv"),
450 glx::GET_COMPRESSED_TEX_IMAGE_ARB_REQUEST => RequestInfo::KnownExt("Glx::GetCompressedTexImageARB"),
451 glx::DELETE_QUERIES_ARB_REQUEST => RequestInfo::KnownExt("Glx::DeleteQueriesARB"),
452 glx::GEN_QUERIES_ARB_REQUEST => RequestInfo::KnownExt("Glx::GenQueriesARB"),
453 glx::IS_QUERY_ARB_REQUEST => RequestInfo::KnownExt("Glx::IsQueryARB"),
454 glx::GET_QUERYIV_ARB_REQUEST => RequestInfo::KnownExt("Glx::GetQueryivARB"),
455 glx::GET_QUERY_OBJECTIV_ARB_REQUEST => RequestInfo::KnownExt("Glx::GetQueryObjectivARB"),
456 glx::GET_QUERY_OBJECTUIV_ARB_REQUEST => RequestInfo::KnownExt("Glx::GetQueryObjectuivARB"),
457 _ => RequestInfo::UnknownRequest(Some("Glx"), minor_opcode),
458 }
459 }
460 #[cfg(feature = "present")]
461 present::X11_EXTENSION_NAME => {
462 match minor_opcode {
463 present::QUERY_VERSION_REQUEST => RequestInfo::KnownExt("Present::QueryVersion"),
464 present::PIXMAP_REQUEST => RequestInfo::KnownExt("Present::Pixmap"),
465 present::NOTIFY_MSC_REQUEST => RequestInfo::KnownExt("Present::NotifyMSC"),
466 present::SELECT_INPUT_REQUEST => RequestInfo::KnownExt("Present::SelectInput"),
467 present::QUERY_CAPABILITIES_REQUEST => RequestInfo::KnownExt("Present::QueryCapabilities"),
468 _ => RequestInfo::UnknownRequest(Some("Present"), minor_opcode),
469 }
470 }
471 #[cfg(feature = "randr")]
472 randr::X11_EXTENSION_NAME => {
473 match minor_opcode {
474 randr::QUERY_VERSION_REQUEST => RequestInfo::KnownExt("RandR::QueryVersion"),
475 randr::SET_SCREEN_CONFIG_REQUEST => RequestInfo::KnownExt("RandR::SetScreenConfig"),
476 randr::SELECT_INPUT_REQUEST => RequestInfo::KnownExt("RandR::SelectInput"),
477 randr::GET_SCREEN_INFO_REQUEST => RequestInfo::KnownExt("RandR::GetScreenInfo"),
478 randr::GET_SCREEN_SIZE_RANGE_REQUEST => RequestInfo::KnownExt("RandR::GetScreenSizeRange"),
479 randr::SET_SCREEN_SIZE_REQUEST => RequestInfo::KnownExt("RandR::SetScreenSize"),
480 randr::GET_SCREEN_RESOURCES_REQUEST => RequestInfo::KnownExt("RandR::GetScreenResources"),
481 randr::GET_OUTPUT_INFO_REQUEST => RequestInfo::KnownExt("RandR::GetOutputInfo"),
482 randr::LIST_OUTPUT_PROPERTIES_REQUEST => RequestInfo::KnownExt("RandR::ListOutputProperties"),
483 randr::QUERY_OUTPUT_PROPERTY_REQUEST => RequestInfo::KnownExt("RandR::QueryOutputProperty"),
484 randr::CONFIGURE_OUTPUT_PROPERTY_REQUEST => RequestInfo::KnownExt("RandR::ConfigureOutputProperty"),
485 randr::CHANGE_OUTPUT_PROPERTY_REQUEST => RequestInfo::KnownExt("RandR::ChangeOutputProperty"),
486 randr::DELETE_OUTPUT_PROPERTY_REQUEST => RequestInfo::KnownExt("RandR::DeleteOutputProperty"),
487 randr::GET_OUTPUT_PROPERTY_REQUEST => RequestInfo::KnownExt("RandR::GetOutputProperty"),
488 randr::CREATE_MODE_REQUEST => RequestInfo::KnownExt("RandR::CreateMode"),
489 randr::DESTROY_MODE_REQUEST => RequestInfo::KnownExt("RandR::DestroyMode"),
490 randr::ADD_OUTPUT_MODE_REQUEST => RequestInfo::KnownExt("RandR::AddOutputMode"),
491 randr::DELETE_OUTPUT_MODE_REQUEST => RequestInfo::KnownExt("RandR::DeleteOutputMode"),
492 randr::GET_CRTC_INFO_REQUEST => RequestInfo::KnownExt("RandR::GetCrtcInfo"),
493 randr::SET_CRTC_CONFIG_REQUEST => RequestInfo::KnownExt("RandR::SetCrtcConfig"),
494 randr::GET_CRTC_GAMMA_SIZE_REQUEST => RequestInfo::KnownExt("RandR::GetCrtcGammaSize"),
495 randr::GET_CRTC_GAMMA_REQUEST => RequestInfo::KnownExt("RandR::GetCrtcGamma"),
496 randr::SET_CRTC_GAMMA_REQUEST => RequestInfo::KnownExt("RandR::SetCrtcGamma"),
497 randr::GET_SCREEN_RESOURCES_CURRENT_REQUEST => RequestInfo::KnownExt("RandR::GetScreenResourcesCurrent"),
498 randr::SET_CRTC_TRANSFORM_REQUEST => RequestInfo::KnownExt("RandR::SetCrtcTransform"),
499 randr::GET_CRTC_TRANSFORM_REQUEST => RequestInfo::KnownExt("RandR::GetCrtcTransform"),
500 randr::GET_PANNING_REQUEST => RequestInfo::KnownExt("RandR::GetPanning"),
501 randr::SET_PANNING_REQUEST => RequestInfo::KnownExt("RandR::SetPanning"),
502 randr::SET_OUTPUT_PRIMARY_REQUEST => RequestInfo::KnownExt("RandR::SetOutputPrimary"),
503 randr::GET_OUTPUT_PRIMARY_REQUEST => RequestInfo::KnownExt("RandR::GetOutputPrimary"),
504 randr::GET_PROVIDERS_REQUEST => RequestInfo::KnownExt("RandR::GetProviders"),
505 randr::GET_PROVIDER_INFO_REQUEST => RequestInfo::KnownExt("RandR::GetProviderInfo"),
506 randr::SET_PROVIDER_OFFLOAD_SINK_REQUEST => RequestInfo::KnownExt("RandR::SetProviderOffloadSink"),
507 randr::SET_PROVIDER_OUTPUT_SOURCE_REQUEST => RequestInfo::KnownExt("RandR::SetProviderOutputSource"),
508 randr::LIST_PROVIDER_PROPERTIES_REQUEST => RequestInfo::KnownExt("RandR::ListProviderProperties"),
509 randr::QUERY_PROVIDER_PROPERTY_REQUEST => RequestInfo::KnownExt("RandR::QueryProviderProperty"),
510 randr::CONFIGURE_PROVIDER_PROPERTY_REQUEST => RequestInfo::KnownExt("RandR::ConfigureProviderProperty"),
511 randr::CHANGE_PROVIDER_PROPERTY_REQUEST => RequestInfo::KnownExt("RandR::ChangeProviderProperty"),
512 randr::DELETE_PROVIDER_PROPERTY_REQUEST => RequestInfo::KnownExt("RandR::DeleteProviderProperty"),
513 randr::GET_PROVIDER_PROPERTY_REQUEST => RequestInfo::KnownExt("RandR::GetProviderProperty"),
514 randr::GET_MONITORS_REQUEST => RequestInfo::KnownExt("RandR::GetMonitors"),
515 randr::SET_MONITOR_REQUEST => RequestInfo::KnownExt("RandR::SetMonitor"),
516 randr::DELETE_MONITOR_REQUEST => RequestInfo::KnownExt("RandR::DeleteMonitor"),
517 randr::CREATE_LEASE_REQUEST => RequestInfo::KnownExt("RandR::CreateLease"),
518 randr::FREE_LEASE_REQUEST => RequestInfo::KnownExt("RandR::FreeLease"),
519 _ => RequestInfo::UnknownRequest(Some("RandR"), minor_opcode),
520 }
521 }
522 #[cfg(feature = "record")]
523 record::X11_EXTENSION_NAME => {
524 match minor_opcode {
525 record::QUERY_VERSION_REQUEST => RequestInfo::KnownExt("Record::QueryVersion"),
526 record::CREATE_CONTEXT_REQUEST => RequestInfo::KnownExt("Record::CreateContext"),
527 record::REGISTER_CLIENTS_REQUEST => RequestInfo::KnownExt("Record::RegisterClients"),
528 record::UNREGISTER_CLIENTS_REQUEST => RequestInfo::KnownExt("Record::UnregisterClients"),
529 record::GET_CONTEXT_REQUEST => RequestInfo::KnownExt("Record::GetContext"),
530 record::ENABLE_CONTEXT_REQUEST => RequestInfo::KnownExt("Record::EnableContext"),
531 record::DISABLE_CONTEXT_REQUEST => RequestInfo::KnownExt("Record::DisableContext"),
532 record::FREE_CONTEXT_REQUEST => RequestInfo::KnownExt("Record::FreeContext"),
533 _ => RequestInfo::UnknownRequest(Some("Record"), minor_opcode),
534 }
535 }
536 #[cfg(feature = "render")]
537 render::X11_EXTENSION_NAME => {
538 match minor_opcode {
539 render::QUERY_VERSION_REQUEST => RequestInfo::KnownExt("Render::QueryVersion"),
540 render::QUERY_PICT_FORMATS_REQUEST => RequestInfo::KnownExt("Render::QueryPictFormats"),
541 render::QUERY_PICT_INDEX_VALUES_REQUEST => RequestInfo::KnownExt("Render::QueryPictIndexValues"),
542 render::CREATE_PICTURE_REQUEST => RequestInfo::KnownExt("Render::CreatePicture"),
543 render::CHANGE_PICTURE_REQUEST => RequestInfo::KnownExt("Render::ChangePicture"),
544 render::SET_PICTURE_CLIP_RECTANGLES_REQUEST => RequestInfo::KnownExt("Render::SetPictureClipRectangles"),
545 render::FREE_PICTURE_REQUEST => RequestInfo::KnownExt("Render::FreePicture"),
546 render::COMPOSITE_REQUEST => RequestInfo::KnownExt("Render::Composite"),
547 render::TRAPEZOIDS_REQUEST => RequestInfo::KnownExt("Render::Trapezoids"),
548 render::TRIANGLES_REQUEST => RequestInfo::KnownExt("Render::Triangles"),
549 render::TRI_STRIP_REQUEST => RequestInfo::KnownExt("Render::TriStrip"),
550 render::TRI_FAN_REQUEST => RequestInfo::KnownExt("Render::TriFan"),
551 render::CREATE_GLYPH_SET_REQUEST => RequestInfo::KnownExt("Render::CreateGlyphSet"),
552 render::REFERENCE_GLYPH_SET_REQUEST => RequestInfo::KnownExt("Render::ReferenceGlyphSet"),
553 render::FREE_GLYPH_SET_REQUEST => RequestInfo::KnownExt("Render::FreeGlyphSet"),
554 render::ADD_GLYPHS_REQUEST => RequestInfo::KnownExt("Render::AddGlyphs"),
555 render::FREE_GLYPHS_REQUEST => RequestInfo::KnownExt("Render::FreeGlyphs"),
556 render::COMPOSITE_GLYPHS8_REQUEST => RequestInfo::KnownExt("Render::CompositeGlyphs8"),
557 render::COMPOSITE_GLYPHS16_REQUEST => RequestInfo::KnownExt("Render::CompositeGlyphs16"),
558 render::COMPOSITE_GLYPHS32_REQUEST => RequestInfo::KnownExt("Render::CompositeGlyphs32"),
559 render::FILL_RECTANGLES_REQUEST => RequestInfo::KnownExt("Render::FillRectangles"),
560 render::CREATE_CURSOR_REQUEST => RequestInfo::KnownExt("Render::CreateCursor"),
561 render::SET_PICTURE_TRANSFORM_REQUEST => RequestInfo::KnownExt("Render::SetPictureTransform"),
562 render::QUERY_FILTERS_REQUEST => RequestInfo::KnownExt("Render::QueryFilters"),
563 render::SET_PICTURE_FILTER_REQUEST => RequestInfo::KnownExt("Render::SetPictureFilter"),
564 render::CREATE_ANIM_CURSOR_REQUEST => RequestInfo::KnownExt("Render::CreateAnimCursor"),
565 render::ADD_TRAPS_REQUEST => RequestInfo::KnownExt("Render::AddTraps"),
566 render::CREATE_SOLID_FILL_REQUEST => RequestInfo::KnownExt("Render::CreateSolidFill"),
567 render::CREATE_LINEAR_GRADIENT_REQUEST => RequestInfo::KnownExt("Render::CreateLinearGradient"),
568 render::CREATE_RADIAL_GRADIENT_REQUEST => RequestInfo::KnownExt("Render::CreateRadialGradient"),
569 render::CREATE_CONICAL_GRADIENT_REQUEST => RequestInfo::KnownExt("Render::CreateConicalGradient"),
570 _ => RequestInfo::UnknownRequest(Some("Render"), minor_opcode),
571 }
572 }
573 #[cfg(feature = "res")]
574 res::X11_EXTENSION_NAME => {
575 match minor_opcode {
576 res::QUERY_VERSION_REQUEST => RequestInfo::KnownExt("Res::QueryVersion"),
577 res::QUERY_CLIENTS_REQUEST => RequestInfo::KnownExt("Res::QueryClients"),
578 res::QUERY_CLIENT_RESOURCES_REQUEST => RequestInfo::KnownExt("Res::QueryClientResources"),
579 res::QUERY_CLIENT_PIXMAP_BYTES_REQUEST => RequestInfo::KnownExt("Res::QueryClientPixmapBytes"),
580 res::QUERY_CLIENT_IDS_REQUEST => RequestInfo::KnownExt("Res::QueryClientIds"),
581 res::QUERY_RESOURCE_BYTES_REQUEST => RequestInfo::KnownExt("Res::QueryResourceBytes"),
582 _ => RequestInfo::UnknownRequest(Some("Res"), minor_opcode),
583 }
584 }
585 #[cfg(feature = "screensaver")]
586 screensaver::X11_EXTENSION_NAME => {
587 match minor_opcode {
588 screensaver::QUERY_VERSION_REQUEST => RequestInfo::KnownExt("ScreenSaver::QueryVersion"),
589 screensaver::QUERY_INFO_REQUEST => RequestInfo::KnownExt("ScreenSaver::QueryInfo"),
590 screensaver::SELECT_INPUT_REQUEST => RequestInfo::KnownExt("ScreenSaver::SelectInput"),
591 screensaver::SET_ATTRIBUTES_REQUEST => RequestInfo::KnownExt("ScreenSaver::SetAttributes"),
592 screensaver::UNSET_ATTRIBUTES_REQUEST => RequestInfo::KnownExt("ScreenSaver::UnsetAttributes"),
593 screensaver::SUSPEND_REQUEST => RequestInfo::KnownExt("ScreenSaver::Suspend"),
594 _ => RequestInfo::UnknownRequest(Some("ScreenSaver"), minor_opcode),
595 }
596 }
597 #[cfg(feature = "shape")]
598 shape::X11_EXTENSION_NAME => {
599 match minor_opcode {
600 shape::QUERY_VERSION_REQUEST => RequestInfo::KnownExt("Shape::QueryVersion"),
601 shape::RECTANGLES_REQUEST => RequestInfo::KnownExt("Shape::Rectangles"),
602 shape::MASK_REQUEST => RequestInfo::KnownExt("Shape::Mask"),
603 shape::COMBINE_REQUEST => RequestInfo::KnownExt("Shape::Combine"),
604 shape::OFFSET_REQUEST => RequestInfo::KnownExt("Shape::Offset"),
605 shape::QUERY_EXTENTS_REQUEST => RequestInfo::KnownExt("Shape::QueryExtents"),
606 shape::SELECT_INPUT_REQUEST => RequestInfo::KnownExt("Shape::SelectInput"),
607 shape::INPUT_SELECTED_REQUEST => RequestInfo::KnownExt("Shape::InputSelected"),
608 shape::GET_RECTANGLES_REQUEST => RequestInfo::KnownExt("Shape::GetRectangles"),
609 _ => RequestInfo::UnknownRequest(Some("Shape"), minor_opcode),
610 }
611 }
612 #[cfg(feature = "shm")]
613 shm::X11_EXTENSION_NAME => {
614 match minor_opcode {
615 shm::QUERY_VERSION_REQUEST => RequestInfo::KnownExt("Shm::QueryVersion"),
616 shm::ATTACH_REQUEST => RequestInfo::KnownExt("Shm::Attach"),
617 shm::DETACH_REQUEST => RequestInfo::KnownExt("Shm::Detach"),
618 shm::PUT_IMAGE_REQUEST => RequestInfo::KnownExt("Shm::PutImage"),
619 shm::GET_IMAGE_REQUEST => RequestInfo::KnownExt("Shm::GetImage"),
620 shm::CREATE_PIXMAP_REQUEST => RequestInfo::KnownExt("Shm::CreatePixmap"),
621 shm::ATTACH_FD_REQUEST => RequestInfo::KnownExt("Shm::AttachFd"),
622 shm::CREATE_SEGMENT_REQUEST => RequestInfo::KnownExt("Shm::CreateSegment"),
623 _ => RequestInfo::UnknownRequest(Some("Shm"), minor_opcode),
624 }
625 }
626 #[cfg(feature = "sync")]
627 sync::X11_EXTENSION_NAME => {
628 match minor_opcode {
629 sync::INITIALIZE_REQUEST => RequestInfo::KnownExt("Sync::Initialize"),
630 sync::LIST_SYSTEM_COUNTERS_REQUEST => RequestInfo::KnownExt("Sync::ListSystemCounters"),
631 sync::CREATE_COUNTER_REQUEST => RequestInfo::KnownExt("Sync::CreateCounter"),
632 sync::DESTROY_COUNTER_REQUEST => RequestInfo::KnownExt("Sync::DestroyCounter"),
633 sync::QUERY_COUNTER_REQUEST => RequestInfo::KnownExt("Sync::QueryCounter"),
634 sync::AWAIT_REQUEST => RequestInfo::KnownExt("Sync::Await"),
635 sync::CHANGE_COUNTER_REQUEST => RequestInfo::KnownExt("Sync::ChangeCounter"),
636 sync::SET_COUNTER_REQUEST => RequestInfo::KnownExt("Sync::SetCounter"),
637 sync::CREATE_ALARM_REQUEST => RequestInfo::KnownExt("Sync::CreateAlarm"),
638 sync::CHANGE_ALARM_REQUEST => RequestInfo::KnownExt("Sync::ChangeAlarm"),
639 sync::DESTROY_ALARM_REQUEST => RequestInfo::KnownExt("Sync::DestroyAlarm"),
640 sync::QUERY_ALARM_REQUEST => RequestInfo::KnownExt("Sync::QueryAlarm"),
641 sync::SET_PRIORITY_REQUEST => RequestInfo::KnownExt("Sync::SetPriority"),
642 sync::GET_PRIORITY_REQUEST => RequestInfo::KnownExt("Sync::GetPriority"),
643 sync::CREATE_FENCE_REQUEST => RequestInfo::KnownExt("Sync::CreateFence"),
644 sync::TRIGGER_FENCE_REQUEST => RequestInfo::KnownExt("Sync::TriggerFence"),
645 sync::RESET_FENCE_REQUEST => RequestInfo::KnownExt("Sync::ResetFence"),
646 sync::DESTROY_FENCE_REQUEST => RequestInfo::KnownExt("Sync::DestroyFence"),
647 sync::QUERY_FENCE_REQUEST => RequestInfo::KnownExt("Sync::QueryFence"),
648 sync::AWAIT_FENCE_REQUEST => RequestInfo::KnownExt("Sync::AwaitFence"),
649 _ => RequestInfo::UnknownRequest(Some("Sync"), minor_opcode),
650 }
651 }
652 xc_misc::X11_EXTENSION_NAME => {
653 match minor_opcode {
654 xc_misc::GET_VERSION_REQUEST => RequestInfo::KnownExt("XCMisc::GetVersion"),
655 xc_misc::GET_XID_RANGE_REQUEST => RequestInfo::KnownExt("XCMisc::GetXIDRange"),
656 xc_misc::GET_XID_LIST_REQUEST => RequestInfo::KnownExt("XCMisc::GetXIDList"),
657 _ => RequestInfo::UnknownRequest(Some("XCMisc"), minor_opcode),
658 }
659 }
660 #[cfg(feature = "xevie")]
661 xevie::X11_EXTENSION_NAME => {
662 match minor_opcode {
663 xevie::QUERY_VERSION_REQUEST => RequestInfo::KnownExt("Xevie::QueryVersion"),
664 xevie::START_REQUEST => RequestInfo::KnownExt("Xevie::Start"),
665 xevie::END_REQUEST => RequestInfo::KnownExt("Xevie::End"),
666 xevie::SEND_REQUEST => RequestInfo::KnownExt("Xevie::Send"),
667 xevie::SELECT_INPUT_REQUEST => RequestInfo::KnownExt("Xevie::SelectInput"),
668 _ => RequestInfo::UnknownRequest(Some("Xevie"), minor_opcode),
669 }
670 }
671 #[cfg(feature = "xf86dri")]
672 xf86dri::X11_EXTENSION_NAME => {
673 match minor_opcode {
674 xf86dri::QUERY_VERSION_REQUEST => RequestInfo::KnownExt("XF86Dri::QueryVersion"),
675 xf86dri::QUERY_DIRECT_RENDERING_CAPABLE_REQUEST => RequestInfo::KnownExt("XF86Dri::QueryDirectRenderingCapable"),
676 xf86dri::OPEN_CONNECTION_REQUEST => RequestInfo::KnownExt("XF86Dri::OpenConnection"),
677 xf86dri::CLOSE_CONNECTION_REQUEST => RequestInfo::KnownExt("XF86Dri::CloseConnection"),
678 xf86dri::GET_CLIENT_DRIVER_NAME_REQUEST => RequestInfo::KnownExt("XF86Dri::GetClientDriverName"),
679 xf86dri::CREATE_CONTEXT_REQUEST => RequestInfo::KnownExt("XF86Dri::CreateContext"),
680 xf86dri::DESTROY_CONTEXT_REQUEST => RequestInfo::KnownExt("XF86Dri::DestroyContext"),
681 xf86dri::CREATE_DRAWABLE_REQUEST => RequestInfo::KnownExt("XF86Dri::CreateDrawable"),
682 xf86dri::DESTROY_DRAWABLE_REQUEST => RequestInfo::KnownExt("XF86Dri::DestroyDrawable"),
683 xf86dri::GET_DRAWABLE_INFO_REQUEST => RequestInfo::KnownExt("XF86Dri::GetDrawableInfo"),
684 xf86dri::GET_DEVICE_INFO_REQUEST => RequestInfo::KnownExt("XF86Dri::GetDeviceInfo"),
685 xf86dri::AUTH_CONNECTION_REQUEST => RequestInfo::KnownExt("XF86Dri::AuthConnection"),
686 _ => RequestInfo::UnknownRequest(Some("XF86Dri"), minor_opcode),
687 }
688 }
689 #[cfg(feature = "xf86vidmode")]
690 xf86vidmode::X11_EXTENSION_NAME => {
691 match minor_opcode {
692 xf86vidmode::QUERY_VERSION_REQUEST => RequestInfo::KnownExt("XF86VidMode::QueryVersion"),
693 xf86vidmode::GET_MODE_LINE_REQUEST => RequestInfo::KnownExt("XF86VidMode::GetModeLine"),
694 xf86vidmode::MOD_MODE_LINE_REQUEST => RequestInfo::KnownExt("XF86VidMode::ModModeLine"),
695 xf86vidmode::SWITCH_MODE_REQUEST => RequestInfo::KnownExt("XF86VidMode::SwitchMode"),
696 xf86vidmode::GET_MONITOR_REQUEST => RequestInfo::KnownExt("XF86VidMode::GetMonitor"),
697 xf86vidmode::LOCK_MODE_SWITCH_REQUEST => RequestInfo::KnownExt("XF86VidMode::LockModeSwitch"),
698 xf86vidmode::GET_ALL_MODE_LINES_REQUEST => RequestInfo::KnownExt("XF86VidMode::GetAllModeLines"),
699 xf86vidmode::ADD_MODE_LINE_REQUEST => RequestInfo::KnownExt("XF86VidMode::AddModeLine"),
700 xf86vidmode::DELETE_MODE_LINE_REQUEST => RequestInfo::KnownExt("XF86VidMode::DeleteModeLine"),
701 xf86vidmode::VALIDATE_MODE_LINE_REQUEST => RequestInfo::KnownExt("XF86VidMode::ValidateModeLine"),
702 xf86vidmode::SWITCH_TO_MODE_REQUEST => RequestInfo::KnownExt("XF86VidMode::SwitchToMode"),
703 xf86vidmode::GET_VIEW_PORT_REQUEST => RequestInfo::KnownExt("XF86VidMode::GetViewPort"),
704 xf86vidmode::SET_VIEW_PORT_REQUEST => RequestInfo::KnownExt("XF86VidMode::SetViewPort"),
705 xf86vidmode::GET_DOT_CLOCKS_REQUEST => RequestInfo::KnownExt("XF86VidMode::GetDotClocks"),
706 xf86vidmode::SET_CLIENT_VERSION_REQUEST => RequestInfo::KnownExt("XF86VidMode::SetClientVersion"),
707 xf86vidmode::SET_GAMMA_REQUEST => RequestInfo::KnownExt("XF86VidMode::SetGamma"),
708 xf86vidmode::GET_GAMMA_REQUEST => RequestInfo::KnownExt("XF86VidMode::GetGamma"),
709 xf86vidmode::GET_GAMMA_RAMP_REQUEST => RequestInfo::KnownExt("XF86VidMode::GetGammaRamp"),
710 xf86vidmode::SET_GAMMA_RAMP_REQUEST => RequestInfo::KnownExt("XF86VidMode::SetGammaRamp"),
711 xf86vidmode::GET_GAMMA_RAMP_SIZE_REQUEST => RequestInfo::KnownExt("XF86VidMode::GetGammaRampSize"),
712 xf86vidmode::GET_PERMISSIONS_REQUEST => RequestInfo::KnownExt("XF86VidMode::GetPermissions"),
713 _ => RequestInfo::UnknownRequest(Some("XF86VidMode"), minor_opcode),
714 }
715 }
716 #[cfg(feature = "xfixes")]
717 xfixes::X11_EXTENSION_NAME => {
718 match minor_opcode {
719 xfixes::QUERY_VERSION_REQUEST => RequestInfo::KnownExt("XFixes::QueryVersion"),
720 xfixes::CHANGE_SAVE_SET_REQUEST => RequestInfo::KnownExt("XFixes::ChangeSaveSet"),
721 xfixes::SELECT_SELECTION_INPUT_REQUEST => RequestInfo::KnownExt("XFixes::SelectSelectionInput"),
722 xfixes::SELECT_CURSOR_INPUT_REQUEST => RequestInfo::KnownExt("XFixes::SelectCursorInput"),
723 xfixes::GET_CURSOR_IMAGE_REQUEST => RequestInfo::KnownExt("XFixes::GetCursorImage"),
724 xfixes::CREATE_REGION_REQUEST => RequestInfo::KnownExt("XFixes::CreateRegion"),
725 xfixes::CREATE_REGION_FROM_BITMAP_REQUEST => RequestInfo::KnownExt("XFixes::CreateRegionFromBitmap"),
726 xfixes::CREATE_REGION_FROM_WINDOW_REQUEST => RequestInfo::KnownExt("XFixes::CreateRegionFromWindow"),
727 xfixes::CREATE_REGION_FROM_GC_REQUEST => RequestInfo::KnownExt("XFixes::CreateRegionFromGC"),
728 xfixes::CREATE_REGION_FROM_PICTURE_REQUEST => RequestInfo::KnownExt("XFixes::CreateRegionFromPicture"),
729 xfixes::DESTROY_REGION_REQUEST => RequestInfo::KnownExt("XFixes::DestroyRegion"),
730 xfixes::SET_REGION_REQUEST => RequestInfo::KnownExt("XFixes::SetRegion"),
731 xfixes::COPY_REGION_REQUEST => RequestInfo::KnownExt("XFixes::CopyRegion"),
732 xfixes::UNION_REGION_REQUEST => RequestInfo::KnownExt("XFixes::UnionRegion"),
733 xfixes::INTERSECT_REGION_REQUEST => RequestInfo::KnownExt("XFixes::IntersectRegion"),
734 xfixes::SUBTRACT_REGION_REQUEST => RequestInfo::KnownExt("XFixes::SubtractRegion"),
735 xfixes::INVERT_REGION_REQUEST => RequestInfo::KnownExt("XFixes::InvertRegion"),
736 xfixes::TRANSLATE_REGION_REQUEST => RequestInfo::KnownExt("XFixes::TranslateRegion"),
737 xfixes::REGION_EXTENTS_REQUEST => RequestInfo::KnownExt("XFixes::RegionExtents"),
738 xfixes::FETCH_REGION_REQUEST => RequestInfo::KnownExt("XFixes::FetchRegion"),
739 xfixes::SET_GC_CLIP_REGION_REQUEST => RequestInfo::KnownExt("XFixes::SetGCClipRegion"),
740 xfixes::SET_WINDOW_SHAPE_REGION_REQUEST => RequestInfo::KnownExt("XFixes::SetWindowShapeRegion"),
741 xfixes::SET_PICTURE_CLIP_REGION_REQUEST => RequestInfo::KnownExt("XFixes::SetPictureClipRegion"),
742 xfixes::SET_CURSOR_NAME_REQUEST => RequestInfo::KnownExt("XFixes::SetCursorName"),
743 xfixes::GET_CURSOR_NAME_REQUEST => RequestInfo::KnownExt("XFixes::GetCursorName"),
744 xfixes::GET_CURSOR_IMAGE_AND_NAME_REQUEST => RequestInfo::KnownExt("XFixes::GetCursorImageAndName"),
745 xfixes::CHANGE_CURSOR_REQUEST => RequestInfo::KnownExt("XFixes::ChangeCursor"),
746 xfixes::CHANGE_CURSOR_BY_NAME_REQUEST => RequestInfo::KnownExt("XFixes::ChangeCursorByName"),
747 xfixes::EXPAND_REGION_REQUEST => RequestInfo::KnownExt("XFixes::ExpandRegion"),
748 xfixes::HIDE_CURSOR_REQUEST => RequestInfo::KnownExt("XFixes::HideCursor"),
749 xfixes::SHOW_CURSOR_REQUEST => RequestInfo::KnownExt("XFixes::ShowCursor"),
750 xfixes::CREATE_POINTER_BARRIER_REQUEST => RequestInfo::KnownExt("XFixes::CreatePointerBarrier"),
751 xfixes::DELETE_POINTER_BARRIER_REQUEST => RequestInfo::KnownExt("XFixes::DeletePointerBarrier"),
752 xfixes::SET_CLIENT_DISCONNECT_MODE_REQUEST => RequestInfo::KnownExt("XFixes::SetClientDisconnectMode"),
753 xfixes::GET_CLIENT_DISCONNECT_MODE_REQUEST => RequestInfo::KnownExt("XFixes::GetClientDisconnectMode"),
754 _ => RequestInfo::UnknownRequest(Some("XFixes"), minor_opcode),
755 }
756 }
757 #[cfg(feature = "xinerama")]
758 xinerama::X11_EXTENSION_NAME => {
759 match minor_opcode {
760 xinerama::QUERY_VERSION_REQUEST => RequestInfo::KnownExt("Xinerama::QueryVersion"),
761 xinerama::GET_STATE_REQUEST => RequestInfo::KnownExt("Xinerama::GetState"),
762 xinerama::GET_SCREEN_COUNT_REQUEST => RequestInfo::KnownExt("Xinerama::GetScreenCount"),
763 xinerama::GET_SCREEN_SIZE_REQUEST => RequestInfo::KnownExt("Xinerama::GetScreenSize"),
764 xinerama::IS_ACTIVE_REQUEST => RequestInfo::KnownExt("Xinerama::IsActive"),
765 xinerama::QUERY_SCREENS_REQUEST => RequestInfo::KnownExt("Xinerama::QueryScreens"),
766 _ => RequestInfo::UnknownRequest(Some("Xinerama"), minor_opcode),
767 }
768 }
769 #[cfg(feature = "xinput")]
770 xinput::X11_EXTENSION_NAME => {
771 match minor_opcode {
772 xinput::GET_EXTENSION_VERSION_REQUEST => RequestInfo::KnownExt("Input::GetExtensionVersion"),
773 xinput::LIST_INPUT_DEVICES_REQUEST => RequestInfo::KnownExt("Input::ListInputDevices"),
774 xinput::OPEN_DEVICE_REQUEST => RequestInfo::KnownExt("Input::OpenDevice"),
775 xinput::CLOSE_DEVICE_REQUEST => RequestInfo::KnownExt("Input::CloseDevice"),
776 xinput::SET_DEVICE_MODE_REQUEST => RequestInfo::KnownExt("Input::SetDeviceMode"),
777 xinput::SELECT_EXTENSION_EVENT_REQUEST => RequestInfo::KnownExt("Input::SelectExtensionEvent"),
778 xinput::GET_SELECTED_EXTENSION_EVENTS_REQUEST => RequestInfo::KnownExt("Input::GetSelectedExtensionEvents"),
779 xinput::CHANGE_DEVICE_DONT_PROPAGATE_LIST_REQUEST => RequestInfo::KnownExt("Input::ChangeDeviceDontPropagateList"),
780 xinput::GET_DEVICE_DONT_PROPAGATE_LIST_REQUEST => RequestInfo::KnownExt("Input::GetDeviceDontPropagateList"),
781 xinput::GET_DEVICE_MOTION_EVENTS_REQUEST => RequestInfo::KnownExt("Input::GetDeviceMotionEvents"),
782 xinput::CHANGE_KEYBOARD_DEVICE_REQUEST => RequestInfo::KnownExt("Input::ChangeKeyboardDevice"),
783 xinput::CHANGE_POINTER_DEVICE_REQUEST => RequestInfo::KnownExt("Input::ChangePointerDevice"),
784 xinput::GRAB_DEVICE_REQUEST => RequestInfo::KnownExt("Input::GrabDevice"),
785 xinput::UNGRAB_DEVICE_REQUEST => RequestInfo::KnownExt("Input::UngrabDevice"),
786 xinput::GRAB_DEVICE_KEY_REQUEST => RequestInfo::KnownExt("Input::GrabDeviceKey"),
787 xinput::UNGRAB_DEVICE_KEY_REQUEST => RequestInfo::KnownExt("Input::UngrabDeviceKey"),
788 xinput::GRAB_DEVICE_BUTTON_REQUEST => RequestInfo::KnownExt("Input::GrabDeviceButton"),
789 xinput::UNGRAB_DEVICE_BUTTON_REQUEST => RequestInfo::KnownExt("Input::UngrabDeviceButton"),
790 xinput::ALLOW_DEVICE_EVENTS_REQUEST => RequestInfo::KnownExt("Input::AllowDeviceEvents"),
791 xinput::GET_DEVICE_FOCUS_REQUEST => RequestInfo::KnownExt("Input::GetDeviceFocus"),
792 xinput::SET_DEVICE_FOCUS_REQUEST => RequestInfo::KnownExt("Input::SetDeviceFocus"),
793 xinput::GET_FEEDBACK_CONTROL_REQUEST => RequestInfo::KnownExt("Input::GetFeedbackControl"),
794 xinput::CHANGE_FEEDBACK_CONTROL_REQUEST => RequestInfo::KnownExt("Input::ChangeFeedbackControl"),
795 xinput::GET_DEVICE_KEY_MAPPING_REQUEST => RequestInfo::KnownExt("Input::GetDeviceKeyMapping"),
796 xinput::CHANGE_DEVICE_KEY_MAPPING_REQUEST => RequestInfo::KnownExt("Input::ChangeDeviceKeyMapping"),
797 xinput::GET_DEVICE_MODIFIER_MAPPING_REQUEST => RequestInfo::KnownExt("Input::GetDeviceModifierMapping"),
798 xinput::SET_DEVICE_MODIFIER_MAPPING_REQUEST => RequestInfo::KnownExt("Input::SetDeviceModifierMapping"),
799 xinput::GET_DEVICE_BUTTON_MAPPING_REQUEST => RequestInfo::KnownExt("Input::GetDeviceButtonMapping"),
800 xinput::SET_DEVICE_BUTTON_MAPPING_REQUEST => RequestInfo::KnownExt("Input::SetDeviceButtonMapping"),
801 xinput::QUERY_DEVICE_STATE_REQUEST => RequestInfo::KnownExt("Input::QueryDeviceState"),
802 xinput::DEVICE_BELL_REQUEST => RequestInfo::KnownExt("Input::DeviceBell"),
803 xinput::SET_DEVICE_VALUATORS_REQUEST => RequestInfo::KnownExt("Input::SetDeviceValuators"),
804 xinput::GET_DEVICE_CONTROL_REQUEST => RequestInfo::KnownExt("Input::GetDeviceControl"),
805 xinput::CHANGE_DEVICE_CONTROL_REQUEST => RequestInfo::KnownExt("Input::ChangeDeviceControl"),
806 xinput::LIST_DEVICE_PROPERTIES_REQUEST => RequestInfo::KnownExt("Input::ListDeviceProperties"),
807 xinput::CHANGE_DEVICE_PROPERTY_REQUEST => RequestInfo::KnownExt("Input::ChangeDeviceProperty"),
808 xinput::DELETE_DEVICE_PROPERTY_REQUEST => RequestInfo::KnownExt("Input::DeleteDeviceProperty"),
809 xinput::GET_DEVICE_PROPERTY_REQUEST => RequestInfo::KnownExt("Input::GetDeviceProperty"),
810 xinput::XI_QUERY_POINTER_REQUEST => RequestInfo::KnownExt("Input::XIQueryPointer"),
811 xinput::XI_WARP_POINTER_REQUEST => RequestInfo::KnownExt("Input::XIWarpPointer"),
812 xinput::XI_CHANGE_CURSOR_REQUEST => RequestInfo::KnownExt("Input::XIChangeCursor"),
813 xinput::XI_CHANGE_HIERARCHY_REQUEST => RequestInfo::KnownExt("Input::XIChangeHierarchy"),
814 xinput::XI_SET_CLIENT_POINTER_REQUEST => RequestInfo::KnownExt("Input::XISetClientPointer"),
815 xinput::XI_GET_CLIENT_POINTER_REQUEST => RequestInfo::KnownExt("Input::XIGetClientPointer"),
816 xinput::XI_SELECT_EVENTS_REQUEST => RequestInfo::KnownExt("Input::XISelectEvents"),
817 xinput::XI_QUERY_VERSION_REQUEST => RequestInfo::KnownExt("Input::XIQueryVersion"),
818 xinput::XI_QUERY_DEVICE_REQUEST => RequestInfo::KnownExt("Input::XIQueryDevice"),
819 xinput::XI_SET_FOCUS_REQUEST => RequestInfo::KnownExt("Input::XISetFocus"),
820 xinput::XI_GET_FOCUS_REQUEST => RequestInfo::KnownExt("Input::XIGetFocus"),
821 xinput::XI_GRAB_DEVICE_REQUEST => RequestInfo::KnownExt("Input::XIGrabDevice"),
822 xinput::XI_UNGRAB_DEVICE_REQUEST => RequestInfo::KnownExt("Input::XIUngrabDevice"),
823 xinput::XI_ALLOW_EVENTS_REQUEST => RequestInfo::KnownExt("Input::XIAllowEvents"),
824 xinput::XI_PASSIVE_GRAB_DEVICE_REQUEST => RequestInfo::KnownExt("Input::XIPassiveGrabDevice"),
825 xinput::XI_PASSIVE_UNGRAB_DEVICE_REQUEST => RequestInfo::KnownExt("Input::XIPassiveUngrabDevice"),
826 xinput::XI_LIST_PROPERTIES_REQUEST => RequestInfo::KnownExt("Input::XIListProperties"),
827 xinput::XI_CHANGE_PROPERTY_REQUEST => RequestInfo::KnownExt("Input::XIChangeProperty"),
828 xinput::XI_DELETE_PROPERTY_REQUEST => RequestInfo::KnownExt("Input::XIDeleteProperty"),
829 xinput::XI_GET_PROPERTY_REQUEST => RequestInfo::KnownExt("Input::XIGetProperty"),
830 xinput::XI_GET_SELECTED_EVENTS_REQUEST => RequestInfo::KnownExt("Input::XIGetSelectedEvents"),
831 xinput::XI_BARRIER_RELEASE_POINTER_REQUEST => RequestInfo::KnownExt("Input::XIBarrierReleasePointer"),
832 xinput::SEND_EXTENSION_EVENT_REQUEST => RequestInfo::KnownExt("Input::SendExtensionEvent"),
833 _ => RequestInfo::UnknownRequest(Some("Input"), minor_opcode),
834 }
835 }
836 #[cfg(feature = "xkb")]
837 xkb::X11_EXTENSION_NAME => {
838 match minor_opcode {
839 xkb::USE_EXTENSION_REQUEST => RequestInfo::KnownExt("xkb::UseExtension"),
840 xkb::SELECT_EVENTS_REQUEST => RequestInfo::KnownExt("xkb::SelectEvents"),
841 xkb::BELL_REQUEST => RequestInfo::KnownExt("xkb::Bell"),
842 xkb::GET_STATE_REQUEST => RequestInfo::KnownExt("xkb::GetState"),
843 xkb::LATCH_LOCK_STATE_REQUEST => RequestInfo::KnownExt("xkb::LatchLockState"),
844 xkb::GET_CONTROLS_REQUEST => RequestInfo::KnownExt("xkb::GetControls"),
845 xkb::SET_CONTROLS_REQUEST => RequestInfo::KnownExt("xkb::SetControls"),
846 xkb::GET_MAP_REQUEST => RequestInfo::KnownExt("xkb::GetMap"),
847 xkb::SET_MAP_REQUEST => RequestInfo::KnownExt("xkb::SetMap"),
848 xkb::GET_COMPAT_MAP_REQUEST => RequestInfo::KnownExt("xkb::GetCompatMap"),
849 xkb::SET_COMPAT_MAP_REQUEST => RequestInfo::KnownExt("xkb::SetCompatMap"),
850 xkb::GET_INDICATOR_STATE_REQUEST => RequestInfo::KnownExt("xkb::GetIndicatorState"),
851 xkb::GET_INDICATOR_MAP_REQUEST => RequestInfo::KnownExt("xkb::GetIndicatorMap"),
852 xkb::SET_INDICATOR_MAP_REQUEST => RequestInfo::KnownExt("xkb::SetIndicatorMap"),
853 xkb::GET_NAMED_INDICATOR_REQUEST => RequestInfo::KnownExt("xkb::GetNamedIndicator"),
854 xkb::SET_NAMED_INDICATOR_REQUEST => RequestInfo::KnownExt("xkb::SetNamedIndicator"),
855 xkb::GET_NAMES_REQUEST => RequestInfo::KnownExt("xkb::GetNames"),
856 xkb::SET_NAMES_REQUEST => RequestInfo::KnownExt("xkb::SetNames"),
857 xkb::PER_CLIENT_FLAGS_REQUEST => RequestInfo::KnownExt("xkb::PerClientFlags"),
858 xkb::LIST_COMPONENTS_REQUEST => RequestInfo::KnownExt("xkb::ListComponents"),
859 xkb::GET_KBD_BY_NAME_REQUEST => RequestInfo::KnownExt("xkb::GetKbdByName"),
860 xkb::GET_DEVICE_INFO_REQUEST => RequestInfo::KnownExt("xkb::GetDeviceInfo"),
861 xkb::SET_DEVICE_INFO_REQUEST => RequestInfo::KnownExt("xkb::SetDeviceInfo"),
862 xkb::SET_DEBUGGING_FLAGS_REQUEST => RequestInfo::KnownExt("xkb::SetDebuggingFlags"),
863 _ => RequestInfo::UnknownRequest(Some("xkb"), minor_opcode),
864 }
865 }
866 #[cfg(feature = "xprint")]
867 xprint::X11_EXTENSION_NAME => {
868 match minor_opcode {
869 xprint::PRINT_QUERY_VERSION_REQUEST => RequestInfo::KnownExt("XPrint::PrintQueryVersion"),
870 xprint::PRINT_GET_PRINTER_LIST_REQUEST => RequestInfo::KnownExt("XPrint::PrintGetPrinterList"),
871 xprint::PRINT_REHASH_PRINTER_LIST_REQUEST => RequestInfo::KnownExt("XPrint::PrintRehashPrinterList"),
872 xprint::CREATE_CONTEXT_REQUEST => RequestInfo::KnownExt("XPrint::CreateContext"),
873 xprint::PRINT_SET_CONTEXT_REQUEST => RequestInfo::KnownExt("XPrint::PrintSetContext"),
874 xprint::PRINT_GET_CONTEXT_REQUEST => RequestInfo::KnownExt("XPrint::PrintGetContext"),
875 xprint::PRINT_DESTROY_CONTEXT_REQUEST => RequestInfo::KnownExt("XPrint::PrintDestroyContext"),
876 xprint::PRINT_GET_SCREEN_OF_CONTEXT_REQUEST => RequestInfo::KnownExt("XPrint::PrintGetScreenOfContext"),
877 xprint::PRINT_START_JOB_REQUEST => RequestInfo::KnownExt("XPrint::PrintStartJob"),
878 xprint::PRINT_END_JOB_REQUEST => RequestInfo::KnownExt("XPrint::PrintEndJob"),
879 xprint::PRINT_START_DOC_REQUEST => RequestInfo::KnownExt("XPrint::PrintStartDoc"),
880 xprint::PRINT_END_DOC_REQUEST => RequestInfo::KnownExt("XPrint::PrintEndDoc"),
881 xprint::PRINT_PUT_DOCUMENT_DATA_REQUEST => RequestInfo::KnownExt("XPrint::PrintPutDocumentData"),
882 xprint::PRINT_GET_DOCUMENT_DATA_REQUEST => RequestInfo::KnownExt("XPrint::PrintGetDocumentData"),
883 xprint::PRINT_START_PAGE_REQUEST => RequestInfo::KnownExt("XPrint::PrintStartPage"),
884 xprint::PRINT_END_PAGE_REQUEST => RequestInfo::KnownExt("XPrint::PrintEndPage"),
885 xprint::PRINT_SELECT_INPUT_REQUEST => RequestInfo::KnownExt("XPrint::PrintSelectInput"),
886 xprint::PRINT_INPUT_SELECTED_REQUEST => RequestInfo::KnownExt("XPrint::PrintInputSelected"),
887 xprint::PRINT_GET_ATTRIBUTES_REQUEST => RequestInfo::KnownExt("XPrint::PrintGetAttributes"),
888 xprint::PRINT_GET_ONE_ATTRIBUTES_REQUEST => RequestInfo::KnownExt("XPrint::PrintGetOneAttributes"),
889 xprint::PRINT_SET_ATTRIBUTES_REQUEST => RequestInfo::KnownExt("XPrint::PrintSetAttributes"),
890 xprint::PRINT_GET_PAGE_DIMENSIONS_REQUEST => RequestInfo::KnownExt("XPrint::PrintGetPageDimensions"),
891 xprint::PRINT_QUERY_SCREENS_REQUEST => RequestInfo::KnownExt("XPrint::PrintQueryScreens"),
892 xprint::PRINT_SET_IMAGE_RESOLUTION_REQUEST => RequestInfo::KnownExt("XPrint::PrintSetImageResolution"),
893 xprint::PRINT_GET_IMAGE_RESOLUTION_REQUEST => RequestInfo::KnownExt("XPrint::PrintGetImageResolution"),
894 _ => RequestInfo::UnknownRequest(Some("XPrint"), minor_opcode),
895 }
896 }
897 #[cfg(feature = "xselinux")]
898 xselinux::X11_EXTENSION_NAME => {
899 match minor_opcode {
900 xselinux::QUERY_VERSION_REQUEST => RequestInfo::KnownExt("SELinux::QueryVersion"),
901 xselinux::SET_DEVICE_CREATE_CONTEXT_REQUEST => RequestInfo::KnownExt("SELinux::SetDeviceCreateContext"),
902 xselinux::GET_DEVICE_CREATE_CONTEXT_REQUEST => RequestInfo::KnownExt("SELinux::GetDeviceCreateContext"),
903 xselinux::SET_DEVICE_CONTEXT_REQUEST => RequestInfo::KnownExt("SELinux::SetDeviceContext"),
904 xselinux::GET_DEVICE_CONTEXT_REQUEST => RequestInfo::KnownExt("SELinux::GetDeviceContext"),
905 xselinux::SET_WINDOW_CREATE_CONTEXT_REQUEST => RequestInfo::KnownExt("SELinux::SetWindowCreateContext"),
906 xselinux::GET_WINDOW_CREATE_CONTEXT_REQUEST => RequestInfo::KnownExt("SELinux::GetWindowCreateContext"),
907 xselinux::GET_WINDOW_CONTEXT_REQUEST => RequestInfo::KnownExt("SELinux::GetWindowContext"),
908 xselinux::SET_PROPERTY_CREATE_CONTEXT_REQUEST => RequestInfo::KnownExt("SELinux::SetPropertyCreateContext"),
909 xselinux::GET_PROPERTY_CREATE_CONTEXT_REQUEST => RequestInfo::KnownExt("SELinux::GetPropertyCreateContext"),
910 xselinux::SET_PROPERTY_USE_CONTEXT_REQUEST => RequestInfo::KnownExt("SELinux::SetPropertyUseContext"),
911 xselinux::GET_PROPERTY_USE_CONTEXT_REQUEST => RequestInfo::KnownExt("SELinux::GetPropertyUseContext"),
912 xselinux::GET_PROPERTY_CONTEXT_REQUEST => RequestInfo::KnownExt("SELinux::GetPropertyContext"),
913 xselinux::GET_PROPERTY_DATA_CONTEXT_REQUEST => RequestInfo::KnownExt("SELinux::GetPropertyDataContext"),
914 xselinux::LIST_PROPERTIES_REQUEST => RequestInfo::KnownExt("SELinux::ListProperties"),
915 xselinux::SET_SELECTION_CREATE_CONTEXT_REQUEST => RequestInfo::KnownExt("SELinux::SetSelectionCreateContext"),
916 xselinux::GET_SELECTION_CREATE_CONTEXT_REQUEST => RequestInfo::KnownExt("SELinux::GetSelectionCreateContext"),
917 xselinux::SET_SELECTION_USE_CONTEXT_REQUEST => RequestInfo::KnownExt("SELinux::SetSelectionUseContext"),
918 xselinux::GET_SELECTION_USE_CONTEXT_REQUEST => RequestInfo::KnownExt("SELinux::GetSelectionUseContext"),
919 xselinux::GET_SELECTION_CONTEXT_REQUEST => RequestInfo::KnownExt("SELinux::GetSelectionContext"),
920 xselinux::GET_SELECTION_DATA_CONTEXT_REQUEST => RequestInfo::KnownExt("SELinux::GetSelectionDataContext"),
921 xselinux::LIST_SELECTIONS_REQUEST => RequestInfo::KnownExt("SELinux::ListSelections"),
922 xselinux::GET_CLIENT_CONTEXT_REQUEST => RequestInfo::KnownExt("SELinux::GetClientContext"),
923 _ => RequestInfo::UnknownRequest(Some("SELinux"), minor_opcode),
924 }
925 }
926 #[cfg(feature = "xtest")]
927 xtest::X11_EXTENSION_NAME => {
928 match minor_opcode {
929 xtest::GET_VERSION_REQUEST => RequestInfo::KnownExt("Test::GetVersion"),
930 xtest::COMPARE_CURSOR_REQUEST => RequestInfo::KnownExt("Test::CompareCursor"),
931 xtest::FAKE_INPUT_REQUEST => RequestInfo::KnownExt("Test::FakeInput"),
932 xtest::GRAB_CONTROL_REQUEST => RequestInfo::KnownExt("Test::GrabControl"),
933 _ => RequestInfo::UnknownRequest(Some("Test"), minor_opcode),
934 }
935 }
936 #[cfg(feature = "xv")]
937 xv::X11_EXTENSION_NAME => {
938 match minor_opcode {
939 xv::QUERY_EXTENSION_REQUEST => RequestInfo::KnownExt("Xv::QueryExtension"),
940 xv::QUERY_ADAPTORS_REQUEST => RequestInfo::KnownExt("Xv::QueryAdaptors"),
941 xv::QUERY_ENCODINGS_REQUEST => RequestInfo::KnownExt("Xv::QueryEncodings"),
942 xv::GRAB_PORT_REQUEST => RequestInfo::KnownExt("Xv::GrabPort"),
943 xv::UNGRAB_PORT_REQUEST => RequestInfo::KnownExt("Xv::UngrabPort"),
944 xv::PUT_VIDEO_REQUEST => RequestInfo::KnownExt("Xv::PutVideo"),
945 xv::PUT_STILL_REQUEST => RequestInfo::KnownExt("Xv::PutStill"),
946 xv::GET_VIDEO_REQUEST => RequestInfo::KnownExt("Xv::GetVideo"),
947 xv::GET_STILL_REQUEST => RequestInfo::KnownExt("Xv::GetStill"),
948 xv::STOP_VIDEO_REQUEST => RequestInfo::KnownExt("Xv::StopVideo"),
949 xv::SELECT_VIDEO_NOTIFY_REQUEST => RequestInfo::KnownExt("Xv::SelectVideoNotify"),
950 xv::SELECT_PORT_NOTIFY_REQUEST => RequestInfo::KnownExt("Xv::SelectPortNotify"),
951 xv::QUERY_BEST_SIZE_REQUEST => RequestInfo::KnownExt("Xv::QueryBestSize"),
952 xv::SET_PORT_ATTRIBUTE_REQUEST => RequestInfo::KnownExt("Xv::SetPortAttribute"),
953 xv::GET_PORT_ATTRIBUTE_REQUEST => RequestInfo::KnownExt("Xv::GetPortAttribute"),
954 xv::QUERY_PORT_ATTRIBUTES_REQUEST => RequestInfo::KnownExt("Xv::QueryPortAttributes"),
955 xv::LIST_IMAGE_FORMATS_REQUEST => RequestInfo::KnownExt("Xv::ListImageFormats"),
956 xv::QUERY_IMAGE_ATTRIBUTES_REQUEST => RequestInfo::KnownExt("Xv::QueryImageAttributes"),
957 xv::PUT_IMAGE_REQUEST => RequestInfo::KnownExt("Xv::PutImage"),
958 xv::SHM_PUT_IMAGE_REQUEST => RequestInfo::KnownExt("Xv::ShmPutImage"),
959 _ => RequestInfo::UnknownRequest(Some("Xv"), minor_opcode),
960 }
961 }
962 #[cfg(feature = "xvmc")]
963 xvmc::X11_EXTENSION_NAME => {
964 match minor_opcode {
965 xvmc::QUERY_VERSION_REQUEST => RequestInfo::KnownExt("XvMC::QueryVersion"),
966 xvmc::LIST_SURFACE_TYPES_REQUEST => RequestInfo::KnownExt("XvMC::ListSurfaceTypes"),
967 xvmc::CREATE_CONTEXT_REQUEST => RequestInfo::KnownExt("XvMC::CreateContext"),
968 xvmc::DESTROY_CONTEXT_REQUEST => RequestInfo::KnownExt("XvMC::DestroyContext"),
969 xvmc::CREATE_SURFACE_REQUEST => RequestInfo::KnownExt("XvMC::CreateSurface"),
970 xvmc::DESTROY_SURFACE_REQUEST => RequestInfo::KnownExt("XvMC::DestroySurface"),
971 xvmc::CREATE_SUBPICTURE_REQUEST => RequestInfo::KnownExt("XvMC::CreateSubpicture"),
972 xvmc::DESTROY_SUBPICTURE_REQUEST => RequestInfo::KnownExt("XvMC::DestroySubpicture"),
973 xvmc::LIST_SUBPICTURE_TYPES_REQUEST => RequestInfo::KnownExt("XvMC::ListSubpictureTypes"),
974 _ => RequestInfo::UnknownRequest(Some("XvMC"), minor_opcode),
975 }
976 }
977 _ => RequestInfo::UnknownExtension(major_opcode, minor_opcode),
978 };
979 (Some(ext_name), info)
980 }
981}
982
983/// Get the name of a request based on its major and minor code.
984///
985/// The major and minor opcode are the first and second byte of a request.
986/// Core requests do not have a minor opcode. For these, the minor opcode is ignored by this function.
987pub fn get_request_name(
988 ext_info_provider: &dyn ExtInfoProvider,
989 major_opcode: u8,
990 minor_opcode: u8,
991) -> Cow<'static, str> {
992 let (ext_name: Option<&str>, info: RequestInfo) = get_request_name_internal(ext_info_provider, major_opcode, minor_opcode);
993 match info {
994 RequestInfo::Xproto(request: &str) => request.into(),
995 RequestInfo::KnownExt(ext_and_request: &str) => ext_and_request.into(),
996 RequestInfo::UnknownRequest(None, opcode: u8) => alloc::format!("xproto::opcode {}", opcode).into(),
997 RequestInfo::UnknownRequest(Some(ext: &str), opcode: u8) => alloc::format!("{}::opcode {}", ext, opcode).into(),
998 RequestInfo::UnknownExtension(major_opcode: u8, minor_opcode: u8) => match ext_name {
999 None => alloc::format!("ext {}::opcode {}", major_opcode, minor_opcode).into(),
1000 Some(ext_name: &str) => alloc::format!("ext {}::opcode {}", ext_name, minor_opcode).into(),
1001 }
1002 }
1003}
1004
1005/// Enumeration of all possible X11 requests.
1006#[derive(Debug)]
1007#[allow(clippy::large_enum_variant)]
1008#[non_exhaustive]
1009pub enum Request<'input> {
1010 Unknown(RequestHeader, Cow<'input, [u8]>),
1011 CreateWindow(xproto::CreateWindowRequest<'input>),
1012 ChangeWindowAttributes(xproto::ChangeWindowAttributesRequest<'input>),
1013 GetWindowAttributes(xproto::GetWindowAttributesRequest),
1014 DestroyWindow(xproto::DestroyWindowRequest),
1015 DestroySubwindows(xproto::DestroySubwindowsRequest),
1016 ChangeSaveSet(xproto::ChangeSaveSetRequest),
1017 ReparentWindow(xproto::ReparentWindowRequest),
1018 MapWindow(xproto::MapWindowRequest),
1019 MapSubwindows(xproto::MapSubwindowsRequest),
1020 UnmapWindow(xproto::UnmapWindowRequest),
1021 UnmapSubwindows(xproto::UnmapSubwindowsRequest),
1022 ConfigureWindow(xproto::ConfigureWindowRequest<'input>),
1023 CirculateWindow(xproto::CirculateWindowRequest),
1024 GetGeometry(xproto::GetGeometryRequest),
1025 QueryTree(xproto::QueryTreeRequest),
1026 InternAtom(xproto::InternAtomRequest<'input>),
1027 GetAtomName(xproto::GetAtomNameRequest),
1028 ChangeProperty(xproto::ChangePropertyRequest<'input>),
1029 DeleteProperty(xproto::DeletePropertyRequest),
1030 GetProperty(xproto::GetPropertyRequest),
1031 ListProperties(xproto::ListPropertiesRequest),
1032 SetSelectionOwner(xproto::SetSelectionOwnerRequest),
1033 GetSelectionOwner(xproto::GetSelectionOwnerRequest),
1034 ConvertSelection(xproto::ConvertSelectionRequest),
1035 SendEvent(xproto::SendEventRequest<'input>),
1036 GrabPointer(xproto::GrabPointerRequest),
1037 UngrabPointer(xproto::UngrabPointerRequest),
1038 GrabButton(xproto::GrabButtonRequest),
1039 UngrabButton(xproto::UngrabButtonRequest),
1040 ChangeActivePointerGrab(xproto::ChangeActivePointerGrabRequest),
1041 GrabKeyboard(xproto::GrabKeyboardRequest),
1042 UngrabKeyboard(xproto::UngrabKeyboardRequest),
1043 GrabKey(xproto::GrabKeyRequest),
1044 UngrabKey(xproto::UngrabKeyRequest),
1045 AllowEvents(xproto::AllowEventsRequest),
1046 GrabServer(xproto::GrabServerRequest),
1047 UngrabServer(xproto::UngrabServerRequest),
1048 QueryPointer(xproto::QueryPointerRequest),
1049 GetMotionEvents(xproto::GetMotionEventsRequest),
1050 TranslateCoordinates(xproto::TranslateCoordinatesRequest),
1051 WarpPointer(xproto::WarpPointerRequest),
1052 SetInputFocus(xproto::SetInputFocusRequest),
1053 GetInputFocus(xproto::GetInputFocusRequest),
1054 QueryKeymap(xproto::QueryKeymapRequest),
1055 OpenFont(xproto::OpenFontRequest<'input>),
1056 CloseFont(xproto::CloseFontRequest),
1057 QueryFont(xproto::QueryFontRequest),
1058 QueryTextExtents(xproto::QueryTextExtentsRequest<'input>),
1059 ListFonts(xproto::ListFontsRequest<'input>),
1060 ListFontsWithInfo(xproto::ListFontsWithInfoRequest<'input>),
1061 SetFontPath(xproto::SetFontPathRequest<'input>),
1062 GetFontPath(xproto::GetFontPathRequest),
1063 CreatePixmap(xproto::CreatePixmapRequest),
1064 FreePixmap(xproto::FreePixmapRequest),
1065 CreateGC(xproto::CreateGCRequest<'input>),
1066 ChangeGC(xproto::ChangeGCRequest<'input>),
1067 CopyGC(xproto::CopyGCRequest),
1068 SetDashes(xproto::SetDashesRequest<'input>),
1069 SetClipRectangles(xproto::SetClipRectanglesRequest<'input>),
1070 FreeGC(xproto::FreeGCRequest),
1071 ClearArea(xproto::ClearAreaRequest),
1072 CopyArea(xproto::CopyAreaRequest),
1073 CopyPlane(xproto::CopyPlaneRequest),
1074 PolyPoint(xproto::PolyPointRequest<'input>),
1075 PolyLine(xproto::PolyLineRequest<'input>),
1076 PolySegment(xproto::PolySegmentRequest<'input>),
1077 PolyRectangle(xproto::PolyRectangleRequest<'input>),
1078 PolyArc(xproto::PolyArcRequest<'input>),
1079 FillPoly(xproto::FillPolyRequest<'input>),
1080 PolyFillRectangle(xproto::PolyFillRectangleRequest<'input>),
1081 PolyFillArc(xproto::PolyFillArcRequest<'input>),
1082 PutImage(xproto::PutImageRequest<'input>),
1083 GetImage(xproto::GetImageRequest),
1084 PolyText8(xproto::PolyText8Request<'input>),
1085 PolyText16(xproto::PolyText16Request<'input>),
1086 ImageText8(xproto::ImageText8Request<'input>),
1087 ImageText16(xproto::ImageText16Request<'input>),
1088 CreateColormap(xproto::CreateColormapRequest),
1089 FreeColormap(xproto::FreeColormapRequest),
1090 CopyColormapAndFree(xproto::CopyColormapAndFreeRequest),
1091 InstallColormap(xproto::InstallColormapRequest),
1092 UninstallColormap(xproto::UninstallColormapRequest),
1093 ListInstalledColormaps(xproto::ListInstalledColormapsRequest),
1094 AllocColor(xproto::AllocColorRequest),
1095 AllocNamedColor(xproto::AllocNamedColorRequest<'input>),
1096 AllocColorCells(xproto::AllocColorCellsRequest),
1097 AllocColorPlanes(xproto::AllocColorPlanesRequest),
1098 FreeColors(xproto::FreeColorsRequest<'input>),
1099 StoreColors(xproto::StoreColorsRequest<'input>),
1100 StoreNamedColor(xproto::StoreNamedColorRequest<'input>),
1101 QueryColors(xproto::QueryColorsRequest<'input>),
1102 LookupColor(xproto::LookupColorRequest<'input>),
1103 CreateCursor(xproto::CreateCursorRequest),
1104 CreateGlyphCursor(xproto::CreateGlyphCursorRequest),
1105 FreeCursor(xproto::FreeCursorRequest),
1106 RecolorCursor(xproto::RecolorCursorRequest),
1107 QueryBestSize(xproto::QueryBestSizeRequest),
1108 QueryExtension(xproto::QueryExtensionRequest<'input>),
1109 ListExtensions(xproto::ListExtensionsRequest),
1110 ChangeKeyboardMapping(xproto::ChangeKeyboardMappingRequest<'input>),
1111 GetKeyboardMapping(xproto::GetKeyboardMappingRequest),
1112 ChangeKeyboardControl(xproto::ChangeKeyboardControlRequest<'input>),
1113 GetKeyboardControl(xproto::GetKeyboardControlRequest),
1114 Bell(xproto::BellRequest),
1115 ChangePointerControl(xproto::ChangePointerControlRequest),
1116 GetPointerControl(xproto::GetPointerControlRequest),
1117 SetScreenSaver(xproto::SetScreenSaverRequest),
1118 GetScreenSaver(xproto::GetScreenSaverRequest),
1119 ChangeHosts(xproto::ChangeHostsRequest<'input>),
1120 ListHosts(xproto::ListHostsRequest),
1121 SetAccessControl(xproto::SetAccessControlRequest),
1122 SetCloseDownMode(xproto::SetCloseDownModeRequest),
1123 KillClient(xproto::KillClientRequest),
1124 RotateProperties(xproto::RotatePropertiesRequest<'input>),
1125 ForceScreenSaver(xproto::ForceScreenSaverRequest),
1126 SetPointerMapping(xproto::SetPointerMappingRequest<'input>),
1127 GetPointerMapping(xproto::GetPointerMappingRequest),
1128 SetModifierMapping(xproto::SetModifierMappingRequest<'input>),
1129 GetModifierMapping(xproto::GetModifierMappingRequest),
1130 NoOperation(xproto::NoOperationRequest),
1131 BigreqEnable(bigreq::EnableRequest),
1132 #[cfg(feature = "composite")]
1133 CompositeQueryVersion(composite::QueryVersionRequest),
1134 #[cfg(feature = "composite")]
1135 CompositeRedirectWindow(composite::RedirectWindowRequest),
1136 #[cfg(feature = "composite")]
1137 CompositeRedirectSubwindows(composite::RedirectSubwindowsRequest),
1138 #[cfg(feature = "composite")]
1139 CompositeUnredirectWindow(composite::UnredirectWindowRequest),
1140 #[cfg(feature = "composite")]
1141 CompositeUnredirectSubwindows(composite::UnredirectSubwindowsRequest),
1142 #[cfg(feature = "composite")]
1143 CompositeCreateRegionFromBorderClip(composite::CreateRegionFromBorderClipRequest),
1144 #[cfg(feature = "composite")]
1145 CompositeNameWindowPixmap(composite::NameWindowPixmapRequest),
1146 #[cfg(feature = "composite")]
1147 CompositeGetOverlayWindow(composite::GetOverlayWindowRequest),
1148 #[cfg(feature = "composite")]
1149 CompositeReleaseOverlayWindow(composite::ReleaseOverlayWindowRequest),
1150 #[cfg(feature = "damage")]
1151 DamageQueryVersion(damage::QueryVersionRequest),
1152 #[cfg(feature = "damage")]
1153 DamageCreate(damage::CreateRequest),
1154 #[cfg(feature = "damage")]
1155 DamageDestroy(damage::DestroyRequest),
1156 #[cfg(feature = "damage")]
1157 DamageSubtract(damage::SubtractRequest),
1158 #[cfg(feature = "damage")]
1159 DamageAdd(damage::AddRequest),
1160 #[cfg(feature = "dbe")]
1161 DbeQueryVersion(dbe::QueryVersionRequest),
1162 #[cfg(feature = "dbe")]
1163 DbeAllocateBackBuffer(dbe::AllocateBackBufferRequest),
1164 #[cfg(feature = "dbe")]
1165 DbeDeallocateBackBuffer(dbe::DeallocateBackBufferRequest),
1166 #[cfg(feature = "dbe")]
1167 DbeSwapBuffers(dbe::SwapBuffersRequest<'input>),
1168 #[cfg(feature = "dbe")]
1169 DbeBeginIdiom(dbe::BeginIdiomRequest),
1170 #[cfg(feature = "dbe")]
1171 DbeEndIdiom(dbe::EndIdiomRequest),
1172 #[cfg(feature = "dbe")]
1173 DbeGetVisualInfo(dbe::GetVisualInfoRequest<'input>),
1174 #[cfg(feature = "dbe")]
1175 DbeGetBackBufferAttributes(dbe::GetBackBufferAttributesRequest),
1176 #[cfg(feature = "dpms")]
1177 DpmsGetVersion(dpms::GetVersionRequest),
1178 #[cfg(feature = "dpms")]
1179 DpmsCapable(dpms::CapableRequest),
1180 #[cfg(feature = "dpms")]
1181 DpmsGetTimeouts(dpms::GetTimeoutsRequest),
1182 #[cfg(feature = "dpms")]
1183 DpmsSetTimeouts(dpms::SetTimeoutsRequest),
1184 #[cfg(feature = "dpms")]
1185 DpmsEnable(dpms::EnableRequest),
1186 #[cfg(feature = "dpms")]
1187 DpmsDisable(dpms::DisableRequest),
1188 #[cfg(feature = "dpms")]
1189 DpmsForceLevel(dpms::ForceLevelRequest),
1190 #[cfg(feature = "dpms")]
1191 DpmsInfo(dpms::InfoRequest),
1192 #[cfg(feature = "dri2")]
1193 Dri2QueryVersion(dri2::QueryVersionRequest),
1194 #[cfg(feature = "dri2")]
1195 Dri2Connect(dri2::ConnectRequest),
1196 #[cfg(feature = "dri2")]
1197 Dri2Authenticate(dri2::AuthenticateRequest),
1198 #[cfg(feature = "dri2")]
1199 Dri2CreateDrawable(dri2::CreateDrawableRequest),
1200 #[cfg(feature = "dri2")]
1201 Dri2DestroyDrawable(dri2::DestroyDrawableRequest),
1202 #[cfg(feature = "dri2")]
1203 Dri2GetBuffers(dri2::GetBuffersRequest<'input>),
1204 #[cfg(feature = "dri2")]
1205 Dri2CopyRegion(dri2::CopyRegionRequest),
1206 #[cfg(feature = "dri2")]
1207 Dri2GetBuffersWithFormat(dri2::GetBuffersWithFormatRequest<'input>),
1208 #[cfg(feature = "dri2")]
1209 Dri2SwapBuffers(dri2::SwapBuffersRequest),
1210 #[cfg(feature = "dri2")]
1211 Dri2GetMSC(dri2::GetMSCRequest),
1212 #[cfg(feature = "dri2")]
1213 Dri2WaitMSC(dri2::WaitMSCRequest),
1214 #[cfg(feature = "dri2")]
1215 Dri2WaitSBC(dri2::WaitSBCRequest),
1216 #[cfg(feature = "dri2")]
1217 Dri2SwapInterval(dri2::SwapIntervalRequest),
1218 #[cfg(feature = "dri2")]
1219 Dri2GetParam(dri2::GetParamRequest),
1220 #[cfg(feature = "dri3")]
1221 Dri3QueryVersion(dri3::QueryVersionRequest),
1222 #[cfg(feature = "dri3")]
1223 Dri3Open(dri3::OpenRequest),
1224 #[cfg(feature = "dri3")]
1225 Dri3PixmapFromBuffer(dri3::PixmapFromBufferRequest),
1226 #[cfg(feature = "dri3")]
1227 Dri3BufferFromPixmap(dri3::BufferFromPixmapRequest),
1228 #[cfg(feature = "dri3")]
1229 Dri3FenceFromFD(dri3::FenceFromFDRequest),
1230 #[cfg(feature = "dri3")]
1231 Dri3FDFromFence(dri3::FDFromFenceRequest),
1232 #[cfg(feature = "dri3")]
1233 Dri3GetSupportedModifiers(dri3::GetSupportedModifiersRequest),
1234 #[cfg(feature = "dri3")]
1235 Dri3PixmapFromBuffers(dri3::PixmapFromBuffersRequest),
1236 #[cfg(feature = "dri3")]
1237 Dri3BuffersFromPixmap(dri3::BuffersFromPixmapRequest),
1238 #[cfg(feature = "dri3")]
1239 Dri3SetDRMDeviceInUse(dri3::SetDRMDeviceInUseRequest),
1240 GeQueryVersion(ge::QueryVersionRequest),
1241 #[cfg(feature = "glx")]
1242 GlxRender(glx::RenderRequest<'input>),
1243 #[cfg(feature = "glx")]
1244 GlxRenderLarge(glx::RenderLargeRequest<'input>),
1245 #[cfg(feature = "glx")]
1246 GlxCreateContext(glx::CreateContextRequest),
1247 #[cfg(feature = "glx")]
1248 GlxDestroyContext(glx::DestroyContextRequest),
1249 #[cfg(feature = "glx")]
1250 GlxMakeCurrent(glx::MakeCurrentRequest),
1251 #[cfg(feature = "glx")]
1252 GlxIsDirect(glx::IsDirectRequest),
1253 #[cfg(feature = "glx")]
1254 GlxQueryVersion(glx::QueryVersionRequest),
1255 #[cfg(feature = "glx")]
1256 GlxWaitGL(glx::WaitGLRequest),
1257 #[cfg(feature = "glx")]
1258 GlxWaitX(glx::WaitXRequest),
1259 #[cfg(feature = "glx")]
1260 GlxCopyContext(glx::CopyContextRequest),
1261 #[cfg(feature = "glx")]
1262 GlxSwapBuffers(glx::SwapBuffersRequest),
1263 #[cfg(feature = "glx")]
1264 GlxUseXFont(glx::UseXFontRequest),
1265 #[cfg(feature = "glx")]
1266 GlxCreateGLXPixmap(glx::CreateGLXPixmapRequest),
1267 #[cfg(feature = "glx")]
1268 GlxGetVisualConfigs(glx::GetVisualConfigsRequest),
1269 #[cfg(feature = "glx")]
1270 GlxDestroyGLXPixmap(glx::DestroyGLXPixmapRequest),
1271 #[cfg(feature = "glx")]
1272 GlxVendorPrivate(glx::VendorPrivateRequest<'input>),
1273 #[cfg(feature = "glx")]
1274 GlxVendorPrivateWithReply(glx::VendorPrivateWithReplyRequest<'input>),
1275 #[cfg(feature = "glx")]
1276 GlxQueryExtensionsString(glx::QueryExtensionsStringRequest),
1277 #[cfg(feature = "glx")]
1278 GlxQueryServerString(glx::QueryServerStringRequest),
1279 #[cfg(feature = "glx")]
1280 GlxClientInfo(glx::ClientInfoRequest<'input>),
1281 #[cfg(feature = "glx")]
1282 GlxGetFBConfigs(glx::GetFBConfigsRequest),
1283 #[cfg(feature = "glx")]
1284 GlxCreatePixmap(glx::CreatePixmapRequest<'input>),
1285 #[cfg(feature = "glx")]
1286 GlxDestroyPixmap(glx::DestroyPixmapRequest),
1287 #[cfg(feature = "glx")]
1288 GlxCreateNewContext(glx::CreateNewContextRequest),
1289 #[cfg(feature = "glx")]
1290 GlxQueryContext(glx::QueryContextRequest),
1291 #[cfg(feature = "glx")]
1292 GlxMakeContextCurrent(glx::MakeContextCurrentRequest),
1293 #[cfg(feature = "glx")]
1294 GlxCreatePbuffer(glx::CreatePbufferRequest<'input>),
1295 #[cfg(feature = "glx")]
1296 GlxDestroyPbuffer(glx::DestroyPbufferRequest),
1297 #[cfg(feature = "glx")]
1298 GlxGetDrawableAttributes(glx::GetDrawableAttributesRequest),
1299 #[cfg(feature = "glx")]
1300 GlxChangeDrawableAttributes(glx::ChangeDrawableAttributesRequest<'input>),
1301 #[cfg(feature = "glx")]
1302 GlxCreateWindow(glx::CreateWindowRequest<'input>),
1303 #[cfg(feature = "glx")]
1304 GlxDeleteWindow(glx::DeleteWindowRequest),
1305 #[cfg(feature = "glx")]
1306 GlxSetClientInfoARB(glx::SetClientInfoARBRequest<'input>),
1307 #[cfg(feature = "glx")]
1308 GlxCreateContextAttribsARB(glx::CreateContextAttribsARBRequest<'input>),
1309 #[cfg(feature = "glx")]
1310 GlxSetClientInfo2ARB(glx::SetClientInfo2ARBRequest<'input>),
1311 #[cfg(feature = "glx")]
1312 GlxNewList(glx::NewListRequest),
1313 #[cfg(feature = "glx")]
1314 GlxEndList(glx::EndListRequest),
1315 #[cfg(feature = "glx")]
1316 GlxDeleteLists(glx::DeleteListsRequest),
1317 #[cfg(feature = "glx")]
1318 GlxGenLists(glx::GenListsRequest),
1319 #[cfg(feature = "glx")]
1320 GlxFeedbackBuffer(glx::FeedbackBufferRequest),
1321 #[cfg(feature = "glx")]
1322 GlxSelectBuffer(glx::SelectBufferRequest),
1323 #[cfg(feature = "glx")]
1324 GlxRenderMode(glx::RenderModeRequest),
1325 #[cfg(feature = "glx")]
1326 GlxFinish(glx::FinishRequest),
1327 #[cfg(feature = "glx")]
1328 GlxPixelStoref(glx::PixelStorefRequest),
1329 #[cfg(feature = "glx")]
1330 GlxPixelStorei(glx::PixelStoreiRequest),
1331 #[cfg(feature = "glx")]
1332 GlxReadPixels(glx::ReadPixelsRequest),
1333 #[cfg(feature = "glx")]
1334 GlxGetBooleanv(glx::GetBooleanvRequest),
1335 #[cfg(feature = "glx")]
1336 GlxGetClipPlane(glx::GetClipPlaneRequest),
1337 #[cfg(feature = "glx")]
1338 GlxGetDoublev(glx::GetDoublevRequest),
1339 #[cfg(feature = "glx")]
1340 GlxGetError(glx::GetErrorRequest),
1341 #[cfg(feature = "glx")]
1342 GlxGetFloatv(glx::GetFloatvRequest),
1343 #[cfg(feature = "glx")]
1344 GlxGetIntegerv(glx::GetIntegervRequest),
1345 #[cfg(feature = "glx")]
1346 GlxGetLightfv(glx::GetLightfvRequest),
1347 #[cfg(feature = "glx")]
1348 GlxGetLightiv(glx::GetLightivRequest),
1349 #[cfg(feature = "glx")]
1350 GlxGetMapdv(glx::GetMapdvRequest),
1351 #[cfg(feature = "glx")]
1352 GlxGetMapfv(glx::GetMapfvRequest),
1353 #[cfg(feature = "glx")]
1354 GlxGetMapiv(glx::GetMapivRequest),
1355 #[cfg(feature = "glx")]
1356 GlxGetMaterialfv(glx::GetMaterialfvRequest),
1357 #[cfg(feature = "glx")]
1358 GlxGetMaterialiv(glx::GetMaterialivRequest),
1359 #[cfg(feature = "glx")]
1360 GlxGetPixelMapfv(glx::GetPixelMapfvRequest),
1361 #[cfg(feature = "glx")]
1362 GlxGetPixelMapuiv(glx::GetPixelMapuivRequest),
1363 #[cfg(feature = "glx")]
1364 GlxGetPixelMapusv(glx::GetPixelMapusvRequest),
1365 #[cfg(feature = "glx")]
1366 GlxGetPolygonStipple(glx::GetPolygonStippleRequest),
1367 #[cfg(feature = "glx")]
1368 GlxGetString(glx::GetStringRequest),
1369 #[cfg(feature = "glx")]
1370 GlxGetTexEnvfv(glx::GetTexEnvfvRequest),
1371 #[cfg(feature = "glx")]
1372 GlxGetTexEnviv(glx::GetTexEnvivRequest),
1373 #[cfg(feature = "glx")]
1374 GlxGetTexGendv(glx::GetTexGendvRequest),
1375 #[cfg(feature = "glx")]
1376 GlxGetTexGenfv(glx::GetTexGenfvRequest),
1377 #[cfg(feature = "glx")]
1378 GlxGetTexGeniv(glx::GetTexGenivRequest),
1379 #[cfg(feature = "glx")]
1380 GlxGetTexImage(glx::GetTexImageRequest),
1381 #[cfg(feature = "glx")]
1382 GlxGetTexParameterfv(glx::GetTexParameterfvRequest),
1383 #[cfg(feature = "glx")]
1384 GlxGetTexParameteriv(glx::GetTexParameterivRequest),
1385 #[cfg(feature = "glx")]
1386 GlxGetTexLevelParameterfv(glx::GetTexLevelParameterfvRequest),
1387 #[cfg(feature = "glx")]
1388 GlxGetTexLevelParameteriv(glx::GetTexLevelParameterivRequest),
1389 #[cfg(feature = "glx")]
1390 GlxIsEnabled(glx::IsEnabledRequest),
1391 #[cfg(feature = "glx")]
1392 GlxIsList(glx::IsListRequest),
1393 #[cfg(feature = "glx")]
1394 GlxFlush(glx::FlushRequest),
1395 #[cfg(feature = "glx")]
1396 GlxAreTexturesResident(glx::AreTexturesResidentRequest<'input>),
1397 #[cfg(feature = "glx")]
1398 GlxDeleteTextures(glx::DeleteTexturesRequest<'input>),
1399 #[cfg(feature = "glx")]
1400 GlxGenTextures(glx::GenTexturesRequest),
1401 #[cfg(feature = "glx")]
1402 GlxIsTexture(glx::IsTextureRequest),
1403 #[cfg(feature = "glx")]
1404 GlxGetColorTable(glx::GetColorTableRequest),
1405 #[cfg(feature = "glx")]
1406 GlxGetColorTableParameterfv(glx::GetColorTableParameterfvRequest),
1407 #[cfg(feature = "glx")]
1408 GlxGetColorTableParameteriv(glx::GetColorTableParameterivRequest),
1409 #[cfg(feature = "glx")]
1410 GlxGetConvolutionFilter(glx::GetConvolutionFilterRequest),
1411 #[cfg(feature = "glx")]
1412 GlxGetConvolutionParameterfv(glx::GetConvolutionParameterfvRequest),
1413 #[cfg(feature = "glx")]
1414 GlxGetConvolutionParameteriv(glx::GetConvolutionParameterivRequest),
1415 #[cfg(feature = "glx")]
1416 GlxGetSeparableFilter(glx::GetSeparableFilterRequest),
1417 #[cfg(feature = "glx")]
1418 GlxGetHistogram(glx::GetHistogramRequest),
1419 #[cfg(feature = "glx")]
1420 GlxGetHistogramParameterfv(glx::GetHistogramParameterfvRequest),
1421 #[cfg(feature = "glx")]
1422 GlxGetHistogramParameteriv(glx::GetHistogramParameterivRequest),
1423 #[cfg(feature = "glx")]
1424 GlxGetMinmax(glx::GetMinmaxRequest),
1425 #[cfg(feature = "glx")]
1426 GlxGetMinmaxParameterfv(glx::GetMinmaxParameterfvRequest),
1427 #[cfg(feature = "glx")]
1428 GlxGetMinmaxParameteriv(glx::GetMinmaxParameterivRequest),
1429 #[cfg(feature = "glx")]
1430 GlxGetCompressedTexImageARB(glx::GetCompressedTexImageARBRequest),
1431 #[cfg(feature = "glx")]
1432 GlxDeleteQueriesARB(glx::DeleteQueriesARBRequest<'input>),
1433 #[cfg(feature = "glx")]
1434 GlxGenQueriesARB(glx::GenQueriesARBRequest),
1435 #[cfg(feature = "glx")]
1436 GlxIsQueryARB(glx::IsQueryARBRequest),
1437 #[cfg(feature = "glx")]
1438 GlxGetQueryivARB(glx::GetQueryivARBRequest),
1439 #[cfg(feature = "glx")]
1440 GlxGetQueryObjectivARB(glx::GetQueryObjectivARBRequest),
1441 #[cfg(feature = "glx")]
1442 GlxGetQueryObjectuivARB(glx::GetQueryObjectuivARBRequest),
1443 #[cfg(feature = "present")]
1444 PresentQueryVersion(present::QueryVersionRequest),
1445 #[cfg(feature = "present")]
1446 PresentPixmap(present::PixmapRequest<'input>),
1447 #[cfg(feature = "present")]
1448 PresentNotifyMSC(present::NotifyMSCRequest),
1449 #[cfg(feature = "present")]
1450 PresentSelectInput(present::SelectInputRequest),
1451 #[cfg(feature = "present")]
1452 PresentQueryCapabilities(present::QueryCapabilitiesRequest),
1453 #[cfg(feature = "randr")]
1454 RandrQueryVersion(randr::QueryVersionRequest),
1455 #[cfg(feature = "randr")]
1456 RandrSetScreenConfig(randr::SetScreenConfigRequest),
1457 #[cfg(feature = "randr")]
1458 RandrSelectInput(randr::SelectInputRequest),
1459 #[cfg(feature = "randr")]
1460 RandrGetScreenInfo(randr::GetScreenInfoRequest),
1461 #[cfg(feature = "randr")]
1462 RandrGetScreenSizeRange(randr::GetScreenSizeRangeRequest),
1463 #[cfg(feature = "randr")]
1464 RandrSetScreenSize(randr::SetScreenSizeRequest),
1465 #[cfg(feature = "randr")]
1466 RandrGetScreenResources(randr::GetScreenResourcesRequest),
1467 #[cfg(feature = "randr")]
1468 RandrGetOutputInfo(randr::GetOutputInfoRequest),
1469 #[cfg(feature = "randr")]
1470 RandrListOutputProperties(randr::ListOutputPropertiesRequest),
1471 #[cfg(feature = "randr")]
1472 RandrQueryOutputProperty(randr::QueryOutputPropertyRequest),
1473 #[cfg(feature = "randr")]
1474 RandrConfigureOutputProperty(randr::ConfigureOutputPropertyRequest<'input>),
1475 #[cfg(feature = "randr")]
1476 RandrChangeOutputProperty(randr::ChangeOutputPropertyRequest<'input>),
1477 #[cfg(feature = "randr")]
1478 RandrDeleteOutputProperty(randr::DeleteOutputPropertyRequest),
1479 #[cfg(feature = "randr")]
1480 RandrGetOutputProperty(randr::GetOutputPropertyRequest),
1481 #[cfg(feature = "randr")]
1482 RandrCreateMode(randr::CreateModeRequest<'input>),
1483 #[cfg(feature = "randr")]
1484 RandrDestroyMode(randr::DestroyModeRequest),
1485 #[cfg(feature = "randr")]
1486 RandrAddOutputMode(randr::AddOutputModeRequest),
1487 #[cfg(feature = "randr")]
1488 RandrDeleteOutputMode(randr::DeleteOutputModeRequest),
1489 #[cfg(feature = "randr")]
1490 RandrGetCrtcInfo(randr::GetCrtcInfoRequest),
1491 #[cfg(feature = "randr")]
1492 RandrSetCrtcConfig(randr::SetCrtcConfigRequest<'input>),
1493 #[cfg(feature = "randr")]
1494 RandrGetCrtcGammaSize(randr::GetCrtcGammaSizeRequest),
1495 #[cfg(feature = "randr")]
1496 RandrGetCrtcGamma(randr::GetCrtcGammaRequest),
1497 #[cfg(feature = "randr")]
1498 RandrSetCrtcGamma(randr::SetCrtcGammaRequest<'input>),
1499 #[cfg(feature = "randr")]
1500 RandrGetScreenResourcesCurrent(randr::GetScreenResourcesCurrentRequest),
1501 #[cfg(feature = "randr")]
1502 RandrSetCrtcTransform(randr::SetCrtcTransformRequest<'input>),
1503 #[cfg(feature = "randr")]
1504 RandrGetCrtcTransform(randr::GetCrtcTransformRequest),
1505 #[cfg(feature = "randr")]
1506 RandrGetPanning(randr::GetPanningRequest),
1507 #[cfg(feature = "randr")]
1508 RandrSetPanning(randr::SetPanningRequest),
1509 #[cfg(feature = "randr")]
1510 RandrSetOutputPrimary(randr::SetOutputPrimaryRequest),
1511 #[cfg(feature = "randr")]
1512 RandrGetOutputPrimary(randr::GetOutputPrimaryRequest),
1513 #[cfg(feature = "randr")]
1514 RandrGetProviders(randr::GetProvidersRequest),
1515 #[cfg(feature = "randr")]
1516 RandrGetProviderInfo(randr::GetProviderInfoRequest),
1517 #[cfg(feature = "randr")]
1518 RandrSetProviderOffloadSink(randr::SetProviderOffloadSinkRequest),
1519 #[cfg(feature = "randr")]
1520 RandrSetProviderOutputSource(randr::SetProviderOutputSourceRequest),
1521 #[cfg(feature = "randr")]
1522 RandrListProviderProperties(randr::ListProviderPropertiesRequest),
1523 #[cfg(feature = "randr")]
1524 RandrQueryProviderProperty(randr::QueryProviderPropertyRequest),
1525 #[cfg(feature = "randr")]
1526 RandrConfigureProviderProperty(randr::ConfigureProviderPropertyRequest<'input>),
1527 #[cfg(feature = "randr")]
1528 RandrChangeProviderProperty(randr::ChangeProviderPropertyRequest<'input>),
1529 #[cfg(feature = "randr")]
1530 RandrDeleteProviderProperty(randr::DeleteProviderPropertyRequest),
1531 #[cfg(feature = "randr")]
1532 RandrGetProviderProperty(randr::GetProviderPropertyRequest),
1533 #[cfg(feature = "randr")]
1534 RandrGetMonitors(randr::GetMonitorsRequest),
1535 #[cfg(feature = "randr")]
1536 RandrSetMonitor(randr::SetMonitorRequest),
1537 #[cfg(feature = "randr")]
1538 RandrDeleteMonitor(randr::DeleteMonitorRequest),
1539 #[cfg(feature = "randr")]
1540 RandrCreateLease(randr::CreateLeaseRequest<'input>),
1541 #[cfg(feature = "randr")]
1542 RandrFreeLease(randr::FreeLeaseRequest),
1543 #[cfg(feature = "record")]
1544 RecordQueryVersion(record::QueryVersionRequest),
1545 #[cfg(feature = "record")]
1546 RecordCreateContext(record::CreateContextRequest<'input>),
1547 #[cfg(feature = "record")]
1548 RecordRegisterClients(record::RegisterClientsRequest<'input>),
1549 #[cfg(feature = "record")]
1550 RecordUnregisterClients(record::UnregisterClientsRequest<'input>),
1551 #[cfg(feature = "record")]
1552 RecordGetContext(record::GetContextRequest),
1553 #[cfg(feature = "record")]
1554 RecordEnableContext(record::EnableContextRequest),
1555 #[cfg(feature = "record")]
1556 RecordDisableContext(record::DisableContextRequest),
1557 #[cfg(feature = "record")]
1558 RecordFreeContext(record::FreeContextRequest),
1559 #[cfg(feature = "render")]
1560 RenderQueryVersion(render::QueryVersionRequest),
1561 #[cfg(feature = "render")]
1562 RenderQueryPictFormats(render::QueryPictFormatsRequest),
1563 #[cfg(feature = "render")]
1564 RenderQueryPictIndexValues(render::QueryPictIndexValuesRequest),
1565 #[cfg(feature = "render")]
1566 RenderCreatePicture(render::CreatePictureRequest<'input>),
1567 #[cfg(feature = "render")]
1568 RenderChangePicture(render::ChangePictureRequest<'input>),
1569 #[cfg(feature = "render")]
1570 RenderSetPictureClipRectangles(render::SetPictureClipRectanglesRequest<'input>),
1571 #[cfg(feature = "render")]
1572 RenderFreePicture(render::FreePictureRequest),
1573 #[cfg(feature = "render")]
1574 RenderComposite(render::CompositeRequest),
1575 #[cfg(feature = "render")]
1576 RenderTrapezoids(render::TrapezoidsRequest<'input>),
1577 #[cfg(feature = "render")]
1578 RenderTriangles(render::TrianglesRequest<'input>),
1579 #[cfg(feature = "render")]
1580 RenderTriStrip(render::TriStripRequest<'input>),
1581 #[cfg(feature = "render")]
1582 RenderTriFan(render::TriFanRequest<'input>),
1583 #[cfg(feature = "render")]
1584 RenderCreateGlyphSet(render::CreateGlyphSetRequest),
1585 #[cfg(feature = "render")]
1586 RenderReferenceGlyphSet(render::ReferenceGlyphSetRequest),
1587 #[cfg(feature = "render")]
1588 RenderFreeGlyphSet(render::FreeGlyphSetRequest),
1589 #[cfg(feature = "render")]
1590 RenderAddGlyphs(render::AddGlyphsRequest<'input>),
1591 #[cfg(feature = "render")]
1592 RenderFreeGlyphs(render::FreeGlyphsRequest<'input>),
1593 #[cfg(feature = "render")]
1594 RenderCompositeGlyphs8(render::CompositeGlyphs8Request<'input>),
1595 #[cfg(feature = "render")]
1596 RenderCompositeGlyphs16(render::CompositeGlyphs16Request<'input>),
1597 #[cfg(feature = "render")]
1598 RenderCompositeGlyphs32(render::CompositeGlyphs32Request<'input>),
1599 #[cfg(feature = "render")]
1600 RenderFillRectangles(render::FillRectanglesRequest<'input>),
1601 #[cfg(feature = "render")]
1602 RenderCreateCursor(render::CreateCursorRequest),
1603 #[cfg(feature = "render")]
1604 RenderSetPictureTransform(render::SetPictureTransformRequest),
1605 #[cfg(feature = "render")]
1606 RenderQueryFilters(render::QueryFiltersRequest),
1607 #[cfg(feature = "render")]
1608 RenderSetPictureFilter(render::SetPictureFilterRequest<'input>),
1609 #[cfg(feature = "render")]
1610 RenderCreateAnimCursor(render::CreateAnimCursorRequest<'input>),
1611 #[cfg(feature = "render")]
1612 RenderAddTraps(render::AddTrapsRequest<'input>),
1613 #[cfg(feature = "render")]
1614 RenderCreateSolidFill(render::CreateSolidFillRequest),
1615 #[cfg(feature = "render")]
1616 RenderCreateLinearGradient(render::CreateLinearGradientRequest<'input>),
1617 #[cfg(feature = "render")]
1618 RenderCreateRadialGradient(render::CreateRadialGradientRequest<'input>),
1619 #[cfg(feature = "render")]
1620 RenderCreateConicalGradient(render::CreateConicalGradientRequest<'input>),
1621 #[cfg(feature = "res")]
1622 ResQueryVersion(res::QueryVersionRequest),
1623 #[cfg(feature = "res")]
1624 ResQueryClients(res::QueryClientsRequest),
1625 #[cfg(feature = "res")]
1626 ResQueryClientResources(res::QueryClientResourcesRequest),
1627 #[cfg(feature = "res")]
1628 ResQueryClientPixmapBytes(res::QueryClientPixmapBytesRequest),
1629 #[cfg(feature = "res")]
1630 ResQueryClientIds(res::QueryClientIdsRequest<'input>),
1631 #[cfg(feature = "res")]
1632 ResQueryResourceBytes(res::QueryResourceBytesRequest<'input>),
1633 #[cfg(feature = "screensaver")]
1634 ScreensaverQueryVersion(screensaver::QueryVersionRequest),
1635 #[cfg(feature = "screensaver")]
1636 ScreensaverQueryInfo(screensaver::QueryInfoRequest),
1637 #[cfg(feature = "screensaver")]
1638 ScreensaverSelectInput(screensaver::SelectInputRequest),
1639 #[cfg(feature = "screensaver")]
1640 ScreensaverSetAttributes(screensaver::SetAttributesRequest<'input>),
1641 #[cfg(feature = "screensaver")]
1642 ScreensaverUnsetAttributes(screensaver::UnsetAttributesRequest),
1643 #[cfg(feature = "screensaver")]
1644 ScreensaverSuspend(screensaver::SuspendRequest),
1645 #[cfg(feature = "shape")]
1646 ShapeQueryVersion(shape::QueryVersionRequest),
1647 #[cfg(feature = "shape")]
1648 ShapeRectangles(shape::RectanglesRequest<'input>),
1649 #[cfg(feature = "shape")]
1650 ShapeMask(shape::MaskRequest),
1651 #[cfg(feature = "shape")]
1652 ShapeCombine(shape::CombineRequest),
1653 #[cfg(feature = "shape")]
1654 ShapeOffset(shape::OffsetRequest),
1655 #[cfg(feature = "shape")]
1656 ShapeQueryExtents(shape::QueryExtentsRequest),
1657 #[cfg(feature = "shape")]
1658 ShapeSelectInput(shape::SelectInputRequest),
1659 #[cfg(feature = "shape")]
1660 ShapeInputSelected(shape::InputSelectedRequest),
1661 #[cfg(feature = "shape")]
1662 ShapeGetRectangles(shape::GetRectanglesRequest),
1663 #[cfg(feature = "shm")]
1664 ShmQueryVersion(shm::QueryVersionRequest),
1665 #[cfg(feature = "shm")]
1666 ShmAttach(shm::AttachRequest),
1667 #[cfg(feature = "shm")]
1668 ShmDetach(shm::DetachRequest),
1669 #[cfg(feature = "shm")]
1670 ShmPutImage(shm::PutImageRequest),
1671 #[cfg(feature = "shm")]
1672 ShmGetImage(shm::GetImageRequest),
1673 #[cfg(feature = "shm")]
1674 ShmCreatePixmap(shm::CreatePixmapRequest),
1675 #[cfg(feature = "shm")]
1676 ShmAttachFd(shm::AttachFdRequest),
1677 #[cfg(feature = "shm")]
1678 ShmCreateSegment(shm::CreateSegmentRequest),
1679 #[cfg(feature = "sync")]
1680 SyncInitialize(sync::InitializeRequest),
1681 #[cfg(feature = "sync")]
1682 SyncListSystemCounters(sync::ListSystemCountersRequest),
1683 #[cfg(feature = "sync")]
1684 SyncCreateCounter(sync::CreateCounterRequest),
1685 #[cfg(feature = "sync")]
1686 SyncDestroyCounter(sync::DestroyCounterRequest),
1687 #[cfg(feature = "sync")]
1688 SyncQueryCounter(sync::QueryCounterRequest),
1689 #[cfg(feature = "sync")]
1690 SyncAwait(sync::AwaitRequest<'input>),
1691 #[cfg(feature = "sync")]
1692 SyncChangeCounter(sync::ChangeCounterRequest),
1693 #[cfg(feature = "sync")]
1694 SyncSetCounter(sync::SetCounterRequest),
1695 #[cfg(feature = "sync")]
1696 SyncCreateAlarm(sync::CreateAlarmRequest<'input>),
1697 #[cfg(feature = "sync")]
1698 SyncChangeAlarm(sync::ChangeAlarmRequest<'input>),
1699 #[cfg(feature = "sync")]
1700 SyncDestroyAlarm(sync::DestroyAlarmRequest),
1701 #[cfg(feature = "sync")]
1702 SyncQueryAlarm(sync::QueryAlarmRequest),
1703 #[cfg(feature = "sync")]
1704 SyncSetPriority(sync::SetPriorityRequest),
1705 #[cfg(feature = "sync")]
1706 SyncGetPriority(sync::GetPriorityRequest),
1707 #[cfg(feature = "sync")]
1708 SyncCreateFence(sync::CreateFenceRequest),
1709 #[cfg(feature = "sync")]
1710 SyncTriggerFence(sync::TriggerFenceRequest),
1711 #[cfg(feature = "sync")]
1712 SyncResetFence(sync::ResetFenceRequest),
1713 #[cfg(feature = "sync")]
1714 SyncDestroyFence(sync::DestroyFenceRequest),
1715 #[cfg(feature = "sync")]
1716 SyncQueryFence(sync::QueryFenceRequest),
1717 #[cfg(feature = "sync")]
1718 SyncAwaitFence(sync::AwaitFenceRequest<'input>),
1719 XcMiscGetVersion(xc_misc::GetVersionRequest),
1720 XcMiscGetXIDRange(xc_misc::GetXIDRangeRequest),
1721 XcMiscGetXIDList(xc_misc::GetXIDListRequest),
1722 #[cfg(feature = "xevie")]
1723 XevieQueryVersion(xevie::QueryVersionRequest),
1724 #[cfg(feature = "xevie")]
1725 XevieStart(xevie::StartRequest),
1726 #[cfg(feature = "xevie")]
1727 XevieEnd(xevie::EndRequest),
1728 #[cfg(feature = "xevie")]
1729 XevieSend(xevie::SendRequest),
1730 #[cfg(feature = "xevie")]
1731 XevieSelectInput(xevie::SelectInputRequest),
1732 #[cfg(feature = "xf86dri")]
1733 Xf86driQueryVersion(xf86dri::QueryVersionRequest),
1734 #[cfg(feature = "xf86dri")]
1735 Xf86driQueryDirectRenderingCapable(xf86dri::QueryDirectRenderingCapableRequest),
1736 #[cfg(feature = "xf86dri")]
1737 Xf86driOpenConnection(xf86dri::OpenConnectionRequest),
1738 #[cfg(feature = "xf86dri")]
1739 Xf86driCloseConnection(xf86dri::CloseConnectionRequest),
1740 #[cfg(feature = "xf86dri")]
1741 Xf86driGetClientDriverName(xf86dri::GetClientDriverNameRequest),
1742 #[cfg(feature = "xf86dri")]
1743 Xf86driCreateContext(xf86dri::CreateContextRequest),
1744 #[cfg(feature = "xf86dri")]
1745 Xf86driDestroyContext(xf86dri::DestroyContextRequest),
1746 #[cfg(feature = "xf86dri")]
1747 Xf86driCreateDrawable(xf86dri::CreateDrawableRequest),
1748 #[cfg(feature = "xf86dri")]
1749 Xf86driDestroyDrawable(xf86dri::DestroyDrawableRequest),
1750 #[cfg(feature = "xf86dri")]
1751 Xf86driGetDrawableInfo(xf86dri::GetDrawableInfoRequest),
1752 #[cfg(feature = "xf86dri")]
1753 Xf86driGetDeviceInfo(xf86dri::GetDeviceInfoRequest),
1754 #[cfg(feature = "xf86dri")]
1755 Xf86driAuthConnection(xf86dri::AuthConnectionRequest),
1756 #[cfg(feature = "xf86vidmode")]
1757 Xf86vidmodeQueryVersion(xf86vidmode::QueryVersionRequest),
1758 #[cfg(feature = "xf86vidmode")]
1759 Xf86vidmodeGetModeLine(xf86vidmode::GetModeLineRequest),
1760 #[cfg(feature = "xf86vidmode")]
1761 Xf86vidmodeModModeLine(xf86vidmode::ModModeLineRequest<'input>),
1762 #[cfg(feature = "xf86vidmode")]
1763 Xf86vidmodeSwitchMode(xf86vidmode::SwitchModeRequest),
1764 #[cfg(feature = "xf86vidmode")]
1765 Xf86vidmodeGetMonitor(xf86vidmode::GetMonitorRequest),
1766 #[cfg(feature = "xf86vidmode")]
1767 Xf86vidmodeLockModeSwitch(xf86vidmode::LockModeSwitchRequest),
1768 #[cfg(feature = "xf86vidmode")]
1769 Xf86vidmodeGetAllModeLines(xf86vidmode::GetAllModeLinesRequest),
1770 #[cfg(feature = "xf86vidmode")]
1771 Xf86vidmodeAddModeLine(xf86vidmode::AddModeLineRequest<'input>),
1772 #[cfg(feature = "xf86vidmode")]
1773 Xf86vidmodeDeleteModeLine(xf86vidmode::DeleteModeLineRequest<'input>),
1774 #[cfg(feature = "xf86vidmode")]
1775 Xf86vidmodeValidateModeLine(xf86vidmode::ValidateModeLineRequest<'input>),
1776 #[cfg(feature = "xf86vidmode")]
1777 Xf86vidmodeSwitchToMode(xf86vidmode::SwitchToModeRequest<'input>),
1778 #[cfg(feature = "xf86vidmode")]
1779 Xf86vidmodeGetViewPort(xf86vidmode::GetViewPortRequest),
1780 #[cfg(feature = "xf86vidmode")]
1781 Xf86vidmodeSetViewPort(xf86vidmode::SetViewPortRequest),
1782 #[cfg(feature = "xf86vidmode")]
1783 Xf86vidmodeGetDotClocks(xf86vidmode::GetDotClocksRequest),
1784 #[cfg(feature = "xf86vidmode")]
1785 Xf86vidmodeSetClientVersion(xf86vidmode::SetClientVersionRequest),
1786 #[cfg(feature = "xf86vidmode")]
1787 Xf86vidmodeSetGamma(xf86vidmode::SetGammaRequest),
1788 #[cfg(feature = "xf86vidmode")]
1789 Xf86vidmodeGetGamma(xf86vidmode::GetGammaRequest),
1790 #[cfg(feature = "xf86vidmode")]
1791 Xf86vidmodeGetGammaRamp(xf86vidmode::GetGammaRampRequest),
1792 #[cfg(feature = "xf86vidmode")]
1793 Xf86vidmodeSetGammaRamp(xf86vidmode::SetGammaRampRequest<'input>),
1794 #[cfg(feature = "xf86vidmode")]
1795 Xf86vidmodeGetGammaRampSize(xf86vidmode::GetGammaRampSizeRequest),
1796 #[cfg(feature = "xf86vidmode")]
1797 Xf86vidmodeGetPermissions(xf86vidmode::GetPermissionsRequest),
1798 #[cfg(feature = "xfixes")]
1799 XfixesQueryVersion(xfixes::QueryVersionRequest),
1800 #[cfg(feature = "xfixes")]
1801 XfixesChangeSaveSet(xfixes::ChangeSaveSetRequest),
1802 #[cfg(feature = "xfixes")]
1803 XfixesSelectSelectionInput(xfixes::SelectSelectionInputRequest),
1804 #[cfg(feature = "xfixes")]
1805 XfixesSelectCursorInput(xfixes::SelectCursorInputRequest),
1806 #[cfg(feature = "xfixes")]
1807 XfixesGetCursorImage(xfixes::GetCursorImageRequest),
1808 #[cfg(feature = "xfixes")]
1809 XfixesCreateRegion(xfixes::CreateRegionRequest<'input>),
1810 #[cfg(feature = "xfixes")]
1811 XfixesCreateRegionFromBitmap(xfixes::CreateRegionFromBitmapRequest),
1812 #[cfg(feature = "xfixes")]
1813 XfixesCreateRegionFromWindow(xfixes::CreateRegionFromWindowRequest),
1814 #[cfg(feature = "xfixes")]
1815 XfixesCreateRegionFromGC(xfixes::CreateRegionFromGCRequest),
1816 #[cfg(feature = "xfixes")]
1817 XfixesCreateRegionFromPicture(xfixes::CreateRegionFromPictureRequest),
1818 #[cfg(feature = "xfixes")]
1819 XfixesDestroyRegion(xfixes::DestroyRegionRequest),
1820 #[cfg(feature = "xfixes")]
1821 XfixesSetRegion(xfixes::SetRegionRequest<'input>),
1822 #[cfg(feature = "xfixes")]
1823 XfixesCopyRegion(xfixes::CopyRegionRequest),
1824 #[cfg(feature = "xfixes")]
1825 XfixesUnionRegion(xfixes::UnionRegionRequest),
1826 #[cfg(feature = "xfixes")]
1827 XfixesIntersectRegion(xfixes::IntersectRegionRequest),
1828 #[cfg(feature = "xfixes")]
1829 XfixesSubtractRegion(xfixes::SubtractRegionRequest),
1830 #[cfg(feature = "xfixes")]
1831 XfixesInvertRegion(xfixes::InvertRegionRequest),
1832 #[cfg(feature = "xfixes")]
1833 XfixesTranslateRegion(xfixes::TranslateRegionRequest),
1834 #[cfg(feature = "xfixes")]
1835 XfixesRegionExtents(xfixes::RegionExtentsRequest),
1836 #[cfg(feature = "xfixes")]
1837 XfixesFetchRegion(xfixes::FetchRegionRequest),
1838 #[cfg(feature = "xfixes")]
1839 XfixesSetGCClipRegion(xfixes::SetGCClipRegionRequest),
1840 #[cfg(feature = "xfixes")]
1841 XfixesSetWindowShapeRegion(xfixes::SetWindowShapeRegionRequest),
1842 #[cfg(feature = "xfixes")]
1843 XfixesSetPictureClipRegion(xfixes::SetPictureClipRegionRequest),
1844 #[cfg(feature = "xfixes")]
1845 XfixesSetCursorName(xfixes::SetCursorNameRequest<'input>),
1846 #[cfg(feature = "xfixes")]
1847 XfixesGetCursorName(xfixes::GetCursorNameRequest),
1848 #[cfg(feature = "xfixes")]
1849 XfixesGetCursorImageAndName(xfixes::GetCursorImageAndNameRequest),
1850 #[cfg(feature = "xfixes")]
1851 XfixesChangeCursor(xfixes::ChangeCursorRequest),
1852 #[cfg(feature = "xfixes")]
1853 XfixesChangeCursorByName(xfixes::ChangeCursorByNameRequest<'input>),
1854 #[cfg(feature = "xfixes")]
1855 XfixesExpandRegion(xfixes::ExpandRegionRequest),
1856 #[cfg(feature = "xfixes")]
1857 XfixesHideCursor(xfixes::HideCursorRequest),
1858 #[cfg(feature = "xfixes")]
1859 XfixesShowCursor(xfixes::ShowCursorRequest),
1860 #[cfg(feature = "xfixes")]
1861 XfixesCreatePointerBarrier(xfixes::CreatePointerBarrierRequest<'input>),
1862 #[cfg(feature = "xfixes")]
1863 XfixesDeletePointerBarrier(xfixes::DeletePointerBarrierRequest),
1864 #[cfg(feature = "xfixes")]
1865 XfixesSetClientDisconnectMode(xfixes::SetClientDisconnectModeRequest),
1866 #[cfg(feature = "xfixes")]
1867 XfixesGetClientDisconnectMode(xfixes::GetClientDisconnectModeRequest),
1868 #[cfg(feature = "xinerama")]
1869 XineramaQueryVersion(xinerama::QueryVersionRequest),
1870 #[cfg(feature = "xinerama")]
1871 XineramaGetState(xinerama::GetStateRequest),
1872 #[cfg(feature = "xinerama")]
1873 XineramaGetScreenCount(xinerama::GetScreenCountRequest),
1874 #[cfg(feature = "xinerama")]
1875 XineramaGetScreenSize(xinerama::GetScreenSizeRequest),
1876 #[cfg(feature = "xinerama")]
1877 XineramaIsActive(xinerama::IsActiveRequest),
1878 #[cfg(feature = "xinerama")]
1879 XineramaQueryScreens(xinerama::QueryScreensRequest),
1880 #[cfg(feature = "xinput")]
1881 XinputGetExtensionVersion(xinput::GetExtensionVersionRequest<'input>),
1882 #[cfg(feature = "xinput")]
1883 XinputListInputDevices(xinput::ListInputDevicesRequest),
1884 #[cfg(feature = "xinput")]
1885 XinputOpenDevice(xinput::OpenDeviceRequest),
1886 #[cfg(feature = "xinput")]
1887 XinputCloseDevice(xinput::CloseDeviceRequest),
1888 #[cfg(feature = "xinput")]
1889 XinputSetDeviceMode(xinput::SetDeviceModeRequest),
1890 #[cfg(feature = "xinput")]
1891 XinputSelectExtensionEvent(xinput::SelectExtensionEventRequest<'input>),
1892 #[cfg(feature = "xinput")]
1893 XinputGetSelectedExtensionEvents(xinput::GetSelectedExtensionEventsRequest),
1894 #[cfg(feature = "xinput")]
1895 XinputChangeDeviceDontPropagateList(xinput::ChangeDeviceDontPropagateListRequest<'input>),
1896 #[cfg(feature = "xinput")]
1897 XinputGetDeviceDontPropagateList(xinput::GetDeviceDontPropagateListRequest),
1898 #[cfg(feature = "xinput")]
1899 XinputGetDeviceMotionEvents(xinput::GetDeviceMotionEventsRequest),
1900 #[cfg(feature = "xinput")]
1901 XinputChangeKeyboardDevice(xinput::ChangeKeyboardDeviceRequest),
1902 #[cfg(feature = "xinput")]
1903 XinputChangePointerDevice(xinput::ChangePointerDeviceRequest),
1904 #[cfg(feature = "xinput")]
1905 XinputGrabDevice(xinput::GrabDeviceRequest<'input>),
1906 #[cfg(feature = "xinput")]
1907 XinputUngrabDevice(xinput::UngrabDeviceRequest),
1908 #[cfg(feature = "xinput")]
1909 XinputGrabDeviceKey(xinput::GrabDeviceKeyRequest<'input>),
1910 #[cfg(feature = "xinput")]
1911 XinputUngrabDeviceKey(xinput::UngrabDeviceKeyRequest),
1912 #[cfg(feature = "xinput")]
1913 XinputGrabDeviceButton(xinput::GrabDeviceButtonRequest<'input>),
1914 #[cfg(feature = "xinput")]
1915 XinputUngrabDeviceButton(xinput::UngrabDeviceButtonRequest),
1916 #[cfg(feature = "xinput")]
1917 XinputAllowDeviceEvents(xinput::AllowDeviceEventsRequest),
1918 #[cfg(feature = "xinput")]
1919 XinputGetDeviceFocus(xinput::GetDeviceFocusRequest),
1920 #[cfg(feature = "xinput")]
1921 XinputSetDeviceFocus(xinput::SetDeviceFocusRequest),
1922 #[cfg(feature = "xinput")]
1923 XinputGetFeedbackControl(xinput::GetFeedbackControlRequest),
1924 #[cfg(feature = "xinput")]
1925 XinputChangeFeedbackControl(xinput::ChangeFeedbackControlRequest),
1926 #[cfg(feature = "xinput")]
1927 XinputGetDeviceKeyMapping(xinput::GetDeviceKeyMappingRequest),
1928 #[cfg(feature = "xinput")]
1929 XinputChangeDeviceKeyMapping(xinput::ChangeDeviceKeyMappingRequest<'input>),
1930 #[cfg(feature = "xinput")]
1931 XinputGetDeviceModifierMapping(xinput::GetDeviceModifierMappingRequest),
1932 #[cfg(feature = "xinput")]
1933 XinputSetDeviceModifierMapping(xinput::SetDeviceModifierMappingRequest<'input>),
1934 #[cfg(feature = "xinput")]
1935 XinputGetDeviceButtonMapping(xinput::GetDeviceButtonMappingRequest),
1936 #[cfg(feature = "xinput")]
1937 XinputSetDeviceButtonMapping(xinput::SetDeviceButtonMappingRequest<'input>),
1938 #[cfg(feature = "xinput")]
1939 XinputQueryDeviceState(xinput::QueryDeviceStateRequest),
1940 #[cfg(feature = "xinput")]
1941 XinputDeviceBell(xinput::DeviceBellRequest),
1942 #[cfg(feature = "xinput")]
1943 XinputSetDeviceValuators(xinput::SetDeviceValuatorsRequest<'input>),
1944 #[cfg(feature = "xinput")]
1945 XinputGetDeviceControl(xinput::GetDeviceControlRequest),
1946 #[cfg(feature = "xinput")]
1947 XinputChangeDeviceControl(xinput::ChangeDeviceControlRequest),
1948 #[cfg(feature = "xinput")]
1949 XinputListDeviceProperties(xinput::ListDevicePropertiesRequest),
1950 #[cfg(feature = "xinput")]
1951 XinputChangeDeviceProperty(xinput::ChangeDevicePropertyRequest<'input>),
1952 #[cfg(feature = "xinput")]
1953 XinputDeleteDeviceProperty(xinput::DeleteDevicePropertyRequest),
1954 #[cfg(feature = "xinput")]
1955 XinputGetDeviceProperty(xinput::GetDevicePropertyRequest),
1956 #[cfg(feature = "xinput")]
1957 XinputXIQueryPointer(xinput::XIQueryPointerRequest),
1958 #[cfg(feature = "xinput")]
1959 XinputXIWarpPointer(xinput::XIWarpPointerRequest),
1960 #[cfg(feature = "xinput")]
1961 XinputXIChangeCursor(xinput::XIChangeCursorRequest),
1962 #[cfg(feature = "xinput")]
1963 XinputXIChangeHierarchy(xinput::XIChangeHierarchyRequest<'input>),
1964 #[cfg(feature = "xinput")]
1965 XinputXISetClientPointer(xinput::XISetClientPointerRequest),
1966 #[cfg(feature = "xinput")]
1967 XinputXIGetClientPointer(xinput::XIGetClientPointerRequest),
1968 #[cfg(feature = "xinput")]
1969 XinputXISelectEvents(xinput::XISelectEventsRequest<'input>),
1970 #[cfg(feature = "xinput")]
1971 XinputXIQueryVersion(xinput::XIQueryVersionRequest),
1972 #[cfg(feature = "xinput")]
1973 XinputXIQueryDevice(xinput::XIQueryDeviceRequest),
1974 #[cfg(feature = "xinput")]
1975 XinputXISetFocus(xinput::XISetFocusRequest),
1976 #[cfg(feature = "xinput")]
1977 XinputXIGetFocus(xinput::XIGetFocusRequest),
1978 #[cfg(feature = "xinput")]
1979 XinputXIGrabDevice(xinput::XIGrabDeviceRequest<'input>),
1980 #[cfg(feature = "xinput")]
1981 XinputXIUngrabDevice(xinput::XIUngrabDeviceRequest),
1982 #[cfg(feature = "xinput")]
1983 XinputXIAllowEvents(xinput::XIAllowEventsRequest),
1984 #[cfg(feature = "xinput")]
1985 XinputXIPassiveGrabDevice(xinput::XIPassiveGrabDeviceRequest<'input>),
1986 #[cfg(feature = "xinput")]
1987 XinputXIPassiveUngrabDevice(xinput::XIPassiveUngrabDeviceRequest<'input>),
1988 #[cfg(feature = "xinput")]
1989 XinputXIListProperties(xinput::XIListPropertiesRequest),
1990 #[cfg(feature = "xinput")]
1991 XinputXIChangeProperty(xinput::XIChangePropertyRequest<'input>),
1992 #[cfg(feature = "xinput")]
1993 XinputXIDeleteProperty(xinput::XIDeletePropertyRequest),
1994 #[cfg(feature = "xinput")]
1995 XinputXIGetProperty(xinput::XIGetPropertyRequest),
1996 #[cfg(feature = "xinput")]
1997 XinputXIGetSelectedEvents(xinput::XIGetSelectedEventsRequest),
1998 #[cfg(feature = "xinput")]
1999 XinputXIBarrierReleasePointer(xinput::XIBarrierReleasePointerRequest<'input>),
2000 #[cfg(feature = "xinput")]
2001 XinputSendExtensionEvent(xinput::SendExtensionEventRequest<'input>),
2002 #[cfg(feature = "xkb")]
2003 XkbUseExtension(xkb::UseExtensionRequest),
2004 #[cfg(feature = "xkb")]
2005 XkbSelectEvents(xkb::SelectEventsRequest<'input>),
2006 #[cfg(feature = "xkb")]
2007 XkbBell(xkb::BellRequest),
2008 #[cfg(feature = "xkb")]
2009 XkbGetState(xkb::GetStateRequest),
2010 #[cfg(feature = "xkb")]
2011 XkbLatchLockState(xkb::LatchLockStateRequest),
2012 #[cfg(feature = "xkb")]
2013 XkbGetControls(xkb::GetControlsRequest),
2014 #[cfg(feature = "xkb")]
2015 XkbSetControls(xkb::SetControlsRequest<'input>),
2016 #[cfg(feature = "xkb")]
2017 XkbGetMap(xkb::GetMapRequest),
2018 #[cfg(feature = "xkb")]
2019 XkbSetMap(xkb::SetMapRequest<'input>),
2020 #[cfg(feature = "xkb")]
2021 XkbGetCompatMap(xkb::GetCompatMapRequest),
2022 #[cfg(feature = "xkb")]
2023 XkbSetCompatMap(xkb::SetCompatMapRequest<'input>),
2024 #[cfg(feature = "xkb")]
2025 XkbGetIndicatorState(xkb::GetIndicatorStateRequest),
2026 #[cfg(feature = "xkb")]
2027 XkbGetIndicatorMap(xkb::GetIndicatorMapRequest),
2028 #[cfg(feature = "xkb")]
2029 XkbSetIndicatorMap(xkb::SetIndicatorMapRequest<'input>),
2030 #[cfg(feature = "xkb")]
2031 XkbGetNamedIndicator(xkb::GetNamedIndicatorRequest),
2032 #[cfg(feature = "xkb")]
2033 XkbSetNamedIndicator(xkb::SetNamedIndicatorRequest),
2034 #[cfg(feature = "xkb")]
2035 XkbGetNames(xkb::GetNamesRequest),
2036 #[cfg(feature = "xkb")]
2037 XkbSetNames(xkb::SetNamesRequest<'input>),
2038 #[cfg(feature = "xkb")]
2039 XkbPerClientFlags(xkb::PerClientFlagsRequest),
2040 #[cfg(feature = "xkb")]
2041 XkbListComponents(xkb::ListComponentsRequest),
2042 #[cfg(feature = "xkb")]
2043 XkbGetKbdByName(xkb::GetKbdByNameRequest),
2044 #[cfg(feature = "xkb")]
2045 XkbGetDeviceInfo(xkb::GetDeviceInfoRequest),
2046 #[cfg(feature = "xkb")]
2047 XkbSetDeviceInfo(xkb::SetDeviceInfoRequest<'input>),
2048 #[cfg(feature = "xkb")]
2049 XkbSetDebuggingFlags(xkb::SetDebuggingFlagsRequest<'input>),
2050 #[cfg(feature = "xprint")]
2051 XprintPrintQueryVersion(xprint::PrintQueryVersionRequest),
2052 #[cfg(feature = "xprint")]
2053 XprintPrintGetPrinterList(xprint::PrintGetPrinterListRequest<'input>),
2054 #[cfg(feature = "xprint")]
2055 XprintPrintRehashPrinterList(xprint::PrintRehashPrinterListRequest),
2056 #[cfg(feature = "xprint")]
2057 XprintCreateContext(xprint::CreateContextRequest<'input>),
2058 #[cfg(feature = "xprint")]
2059 XprintPrintSetContext(xprint::PrintSetContextRequest),
2060 #[cfg(feature = "xprint")]
2061 XprintPrintGetContext(xprint::PrintGetContextRequest),
2062 #[cfg(feature = "xprint")]
2063 XprintPrintDestroyContext(xprint::PrintDestroyContextRequest),
2064 #[cfg(feature = "xprint")]
2065 XprintPrintGetScreenOfContext(xprint::PrintGetScreenOfContextRequest),
2066 #[cfg(feature = "xprint")]
2067 XprintPrintStartJob(xprint::PrintStartJobRequest),
2068 #[cfg(feature = "xprint")]
2069 XprintPrintEndJob(xprint::PrintEndJobRequest),
2070 #[cfg(feature = "xprint")]
2071 XprintPrintStartDoc(xprint::PrintStartDocRequest),
2072 #[cfg(feature = "xprint")]
2073 XprintPrintEndDoc(xprint::PrintEndDocRequest),
2074 #[cfg(feature = "xprint")]
2075 XprintPrintPutDocumentData(xprint::PrintPutDocumentDataRequest<'input>),
2076 #[cfg(feature = "xprint")]
2077 XprintPrintGetDocumentData(xprint::PrintGetDocumentDataRequest),
2078 #[cfg(feature = "xprint")]
2079 XprintPrintStartPage(xprint::PrintStartPageRequest),
2080 #[cfg(feature = "xprint")]
2081 XprintPrintEndPage(xprint::PrintEndPageRequest),
2082 #[cfg(feature = "xprint")]
2083 XprintPrintSelectInput(xprint::PrintSelectInputRequest),
2084 #[cfg(feature = "xprint")]
2085 XprintPrintInputSelected(xprint::PrintInputSelectedRequest),
2086 #[cfg(feature = "xprint")]
2087 XprintPrintGetAttributes(xprint::PrintGetAttributesRequest),
2088 #[cfg(feature = "xprint")]
2089 XprintPrintGetOneAttributes(xprint::PrintGetOneAttributesRequest<'input>),
2090 #[cfg(feature = "xprint")]
2091 XprintPrintSetAttributes(xprint::PrintSetAttributesRequest<'input>),
2092 #[cfg(feature = "xprint")]
2093 XprintPrintGetPageDimensions(xprint::PrintGetPageDimensionsRequest),
2094 #[cfg(feature = "xprint")]
2095 XprintPrintQueryScreens(xprint::PrintQueryScreensRequest),
2096 #[cfg(feature = "xprint")]
2097 XprintPrintSetImageResolution(xprint::PrintSetImageResolutionRequest),
2098 #[cfg(feature = "xprint")]
2099 XprintPrintGetImageResolution(xprint::PrintGetImageResolutionRequest),
2100 #[cfg(feature = "xselinux")]
2101 XselinuxQueryVersion(xselinux::QueryVersionRequest),
2102 #[cfg(feature = "xselinux")]
2103 XselinuxSetDeviceCreateContext(xselinux::SetDeviceCreateContextRequest<'input>),
2104 #[cfg(feature = "xselinux")]
2105 XselinuxGetDeviceCreateContext(xselinux::GetDeviceCreateContextRequest),
2106 #[cfg(feature = "xselinux")]
2107 XselinuxSetDeviceContext(xselinux::SetDeviceContextRequest<'input>),
2108 #[cfg(feature = "xselinux")]
2109 XselinuxGetDeviceContext(xselinux::GetDeviceContextRequest),
2110 #[cfg(feature = "xselinux")]
2111 XselinuxSetWindowCreateContext(xselinux::SetWindowCreateContextRequest<'input>),
2112 #[cfg(feature = "xselinux")]
2113 XselinuxGetWindowCreateContext(xselinux::GetWindowCreateContextRequest),
2114 #[cfg(feature = "xselinux")]
2115 XselinuxGetWindowContext(xselinux::GetWindowContextRequest),
2116 #[cfg(feature = "xselinux")]
2117 XselinuxSetPropertyCreateContext(xselinux::SetPropertyCreateContextRequest<'input>),
2118 #[cfg(feature = "xselinux")]
2119 XselinuxGetPropertyCreateContext(xselinux::GetPropertyCreateContextRequest),
2120 #[cfg(feature = "xselinux")]
2121 XselinuxSetPropertyUseContext(xselinux::SetPropertyUseContextRequest<'input>),
2122 #[cfg(feature = "xselinux")]
2123 XselinuxGetPropertyUseContext(xselinux::GetPropertyUseContextRequest),
2124 #[cfg(feature = "xselinux")]
2125 XselinuxGetPropertyContext(xselinux::GetPropertyContextRequest),
2126 #[cfg(feature = "xselinux")]
2127 XselinuxGetPropertyDataContext(xselinux::GetPropertyDataContextRequest),
2128 #[cfg(feature = "xselinux")]
2129 XselinuxListProperties(xselinux::ListPropertiesRequest),
2130 #[cfg(feature = "xselinux")]
2131 XselinuxSetSelectionCreateContext(xselinux::SetSelectionCreateContextRequest<'input>),
2132 #[cfg(feature = "xselinux")]
2133 XselinuxGetSelectionCreateContext(xselinux::GetSelectionCreateContextRequest),
2134 #[cfg(feature = "xselinux")]
2135 XselinuxSetSelectionUseContext(xselinux::SetSelectionUseContextRequest<'input>),
2136 #[cfg(feature = "xselinux")]
2137 XselinuxGetSelectionUseContext(xselinux::GetSelectionUseContextRequest),
2138 #[cfg(feature = "xselinux")]
2139 XselinuxGetSelectionContext(xselinux::GetSelectionContextRequest),
2140 #[cfg(feature = "xselinux")]
2141 XselinuxGetSelectionDataContext(xselinux::GetSelectionDataContextRequest),
2142 #[cfg(feature = "xselinux")]
2143 XselinuxListSelections(xselinux::ListSelectionsRequest),
2144 #[cfg(feature = "xselinux")]
2145 XselinuxGetClientContext(xselinux::GetClientContextRequest),
2146 #[cfg(feature = "xtest")]
2147 XtestGetVersion(xtest::GetVersionRequest),
2148 #[cfg(feature = "xtest")]
2149 XtestCompareCursor(xtest::CompareCursorRequest),
2150 #[cfg(feature = "xtest")]
2151 XtestFakeInput(xtest::FakeInputRequest),
2152 #[cfg(feature = "xtest")]
2153 XtestGrabControl(xtest::GrabControlRequest),
2154 #[cfg(feature = "xv")]
2155 XvQueryExtension(xv::QueryExtensionRequest),
2156 #[cfg(feature = "xv")]
2157 XvQueryAdaptors(xv::QueryAdaptorsRequest),
2158 #[cfg(feature = "xv")]
2159 XvQueryEncodings(xv::QueryEncodingsRequest),
2160 #[cfg(feature = "xv")]
2161 XvGrabPort(xv::GrabPortRequest),
2162 #[cfg(feature = "xv")]
2163 XvUngrabPort(xv::UngrabPortRequest),
2164 #[cfg(feature = "xv")]
2165 XvPutVideo(xv::PutVideoRequest),
2166 #[cfg(feature = "xv")]
2167 XvPutStill(xv::PutStillRequest),
2168 #[cfg(feature = "xv")]
2169 XvGetVideo(xv::GetVideoRequest),
2170 #[cfg(feature = "xv")]
2171 XvGetStill(xv::GetStillRequest),
2172 #[cfg(feature = "xv")]
2173 XvStopVideo(xv::StopVideoRequest),
2174 #[cfg(feature = "xv")]
2175 XvSelectVideoNotify(xv::SelectVideoNotifyRequest),
2176 #[cfg(feature = "xv")]
2177 XvSelectPortNotify(xv::SelectPortNotifyRequest),
2178 #[cfg(feature = "xv")]
2179 XvQueryBestSize(xv::QueryBestSizeRequest),
2180 #[cfg(feature = "xv")]
2181 XvSetPortAttribute(xv::SetPortAttributeRequest),
2182 #[cfg(feature = "xv")]
2183 XvGetPortAttribute(xv::GetPortAttributeRequest),
2184 #[cfg(feature = "xv")]
2185 XvQueryPortAttributes(xv::QueryPortAttributesRequest),
2186 #[cfg(feature = "xv")]
2187 XvListImageFormats(xv::ListImageFormatsRequest),
2188 #[cfg(feature = "xv")]
2189 XvQueryImageAttributes(xv::QueryImageAttributesRequest),
2190 #[cfg(feature = "xv")]
2191 XvPutImage(xv::PutImageRequest<'input>),
2192 #[cfg(feature = "xv")]
2193 XvShmPutImage(xv::ShmPutImageRequest),
2194 #[cfg(feature = "xvmc")]
2195 XvmcQueryVersion(xvmc::QueryVersionRequest),
2196 #[cfg(feature = "xvmc")]
2197 XvmcListSurfaceTypes(xvmc::ListSurfaceTypesRequest),
2198 #[cfg(feature = "xvmc")]
2199 XvmcCreateContext(xvmc::CreateContextRequest),
2200 #[cfg(feature = "xvmc")]
2201 XvmcDestroyContext(xvmc::DestroyContextRequest),
2202 #[cfg(feature = "xvmc")]
2203 XvmcCreateSurface(xvmc::CreateSurfaceRequest),
2204 #[cfg(feature = "xvmc")]
2205 XvmcDestroySurface(xvmc::DestroySurfaceRequest),
2206 #[cfg(feature = "xvmc")]
2207 XvmcCreateSubpicture(xvmc::CreateSubpictureRequest),
2208 #[cfg(feature = "xvmc")]
2209 XvmcDestroySubpicture(xvmc::DestroySubpictureRequest),
2210 #[cfg(feature = "xvmc")]
2211 XvmcListSubpictureTypes(xvmc::ListSubpictureTypesRequest),
2212}
2213
2214impl<'input> Request<'input> {
2215 // Parse a X11 request into a concrete type
2216 #[allow(clippy::cognitive_complexity, clippy::single_match)]
2217 pub fn parse(
2218 header: RequestHeader,
2219 body: &'input [u8],
2220 // Might not be used if none of the extensions that use FD passing is enabled
2221 #[allow(unused_variables, clippy::ptr_arg)]
2222 fds: &mut Vec<RawFdContainer>,
2223 ext_info_provider: &dyn ExtInfoProvider,
2224 ) -> Result<Self, ParseError> {
2225 let remaining = body;
2226 // Check if this is a core protocol request.
2227 match header.major_opcode {
2228 xproto::CREATE_WINDOW_REQUEST => return Ok(Request::CreateWindow(xproto::CreateWindowRequest::try_parse_request(header, remaining)?)),
2229 xproto::CHANGE_WINDOW_ATTRIBUTES_REQUEST => return Ok(Request::ChangeWindowAttributes(xproto::ChangeWindowAttributesRequest::try_parse_request(header, remaining)?)),
2230 xproto::GET_WINDOW_ATTRIBUTES_REQUEST => return Ok(Request::GetWindowAttributes(xproto::GetWindowAttributesRequest::try_parse_request(header, remaining)?)),
2231 xproto::DESTROY_WINDOW_REQUEST => return Ok(Request::DestroyWindow(xproto::DestroyWindowRequest::try_parse_request(header, remaining)?)),
2232 xproto::DESTROY_SUBWINDOWS_REQUEST => return Ok(Request::DestroySubwindows(xproto::DestroySubwindowsRequest::try_parse_request(header, remaining)?)),
2233 xproto::CHANGE_SAVE_SET_REQUEST => return Ok(Request::ChangeSaveSet(xproto::ChangeSaveSetRequest::try_parse_request(header, remaining)?)),
2234 xproto::REPARENT_WINDOW_REQUEST => return Ok(Request::ReparentWindow(xproto::ReparentWindowRequest::try_parse_request(header, remaining)?)),
2235 xproto::MAP_WINDOW_REQUEST => return Ok(Request::MapWindow(xproto::MapWindowRequest::try_parse_request(header, remaining)?)),
2236 xproto::MAP_SUBWINDOWS_REQUEST => return Ok(Request::MapSubwindows(xproto::MapSubwindowsRequest::try_parse_request(header, remaining)?)),
2237 xproto::UNMAP_WINDOW_REQUEST => return Ok(Request::UnmapWindow(xproto::UnmapWindowRequest::try_parse_request(header, remaining)?)),
2238 xproto::UNMAP_SUBWINDOWS_REQUEST => return Ok(Request::UnmapSubwindows(xproto::UnmapSubwindowsRequest::try_parse_request(header, remaining)?)),
2239 xproto::CONFIGURE_WINDOW_REQUEST => return Ok(Request::ConfigureWindow(xproto::ConfigureWindowRequest::try_parse_request(header, remaining)?)),
2240 xproto::CIRCULATE_WINDOW_REQUEST => return Ok(Request::CirculateWindow(xproto::CirculateWindowRequest::try_parse_request(header, remaining)?)),
2241 xproto::GET_GEOMETRY_REQUEST => return Ok(Request::GetGeometry(xproto::GetGeometryRequest::try_parse_request(header, remaining)?)),
2242 xproto::QUERY_TREE_REQUEST => return Ok(Request::QueryTree(xproto::QueryTreeRequest::try_parse_request(header, remaining)?)),
2243 xproto::INTERN_ATOM_REQUEST => return Ok(Request::InternAtom(xproto::InternAtomRequest::try_parse_request(header, remaining)?)),
2244 xproto::GET_ATOM_NAME_REQUEST => return Ok(Request::GetAtomName(xproto::GetAtomNameRequest::try_parse_request(header, remaining)?)),
2245 xproto::CHANGE_PROPERTY_REQUEST => return Ok(Request::ChangeProperty(xproto::ChangePropertyRequest::try_parse_request(header, remaining)?)),
2246 xproto::DELETE_PROPERTY_REQUEST => return Ok(Request::DeleteProperty(xproto::DeletePropertyRequest::try_parse_request(header, remaining)?)),
2247 xproto::GET_PROPERTY_REQUEST => return Ok(Request::GetProperty(xproto::GetPropertyRequest::try_parse_request(header, remaining)?)),
2248 xproto::LIST_PROPERTIES_REQUEST => return Ok(Request::ListProperties(xproto::ListPropertiesRequest::try_parse_request(header, remaining)?)),
2249 xproto::SET_SELECTION_OWNER_REQUEST => return Ok(Request::SetSelectionOwner(xproto::SetSelectionOwnerRequest::try_parse_request(header, remaining)?)),
2250 xproto::GET_SELECTION_OWNER_REQUEST => return Ok(Request::GetSelectionOwner(xproto::GetSelectionOwnerRequest::try_parse_request(header, remaining)?)),
2251 xproto::CONVERT_SELECTION_REQUEST => return Ok(Request::ConvertSelection(xproto::ConvertSelectionRequest::try_parse_request(header, remaining)?)),
2252 xproto::SEND_EVENT_REQUEST => return Ok(Request::SendEvent(xproto::SendEventRequest::try_parse_request(header, remaining)?)),
2253 xproto::GRAB_POINTER_REQUEST => return Ok(Request::GrabPointer(xproto::GrabPointerRequest::try_parse_request(header, remaining)?)),
2254 xproto::UNGRAB_POINTER_REQUEST => return Ok(Request::UngrabPointer(xproto::UngrabPointerRequest::try_parse_request(header, remaining)?)),
2255 xproto::GRAB_BUTTON_REQUEST => return Ok(Request::GrabButton(xproto::GrabButtonRequest::try_parse_request(header, remaining)?)),
2256 xproto::UNGRAB_BUTTON_REQUEST => return Ok(Request::UngrabButton(xproto::UngrabButtonRequest::try_parse_request(header, remaining)?)),
2257 xproto::CHANGE_ACTIVE_POINTER_GRAB_REQUEST => return Ok(Request::ChangeActivePointerGrab(xproto::ChangeActivePointerGrabRequest::try_parse_request(header, remaining)?)),
2258 xproto::GRAB_KEYBOARD_REQUEST => return Ok(Request::GrabKeyboard(xproto::GrabKeyboardRequest::try_parse_request(header, remaining)?)),
2259 xproto::UNGRAB_KEYBOARD_REQUEST => return Ok(Request::UngrabKeyboard(xproto::UngrabKeyboardRequest::try_parse_request(header, remaining)?)),
2260 xproto::GRAB_KEY_REQUEST => return Ok(Request::GrabKey(xproto::GrabKeyRequest::try_parse_request(header, remaining)?)),
2261 xproto::UNGRAB_KEY_REQUEST => return Ok(Request::UngrabKey(xproto::UngrabKeyRequest::try_parse_request(header, remaining)?)),
2262 xproto::ALLOW_EVENTS_REQUEST => return Ok(Request::AllowEvents(xproto::AllowEventsRequest::try_parse_request(header, remaining)?)),
2263 xproto::GRAB_SERVER_REQUEST => return Ok(Request::GrabServer(xproto::GrabServerRequest::try_parse_request(header, remaining)?)),
2264 xproto::UNGRAB_SERVER_REQUEST => return Ok(Request::UngrabServer(xproto::UngrabServerRequest::try_parse_request(header, remaining)?)),
2265 xproto::QUERY_POINTER_REQUEST => return Ok(Request::QueryPointer(xproto::QueryPointerRequest::try_parse_request(header, remaining)?)),
2266 xproto::GET_MOTION_EVENTS_REQUEST => return Ok(Request::GetMotionEvents(xproto::GetMotionEventsRequest::try_parse_request(header, remaining)?)),
2267 xproto::TRANSLATE_COORDINATES_REQUEST => return Ok(Request::TranslateCoordinates(xproto::TranslateCoordinatesRequest::try_parse_request(header, remaining)?)),
2268 xproto::WARP_POINTER_REQUEST => return Ok(Request::WarpPointer(xproto::WarpPointerRequest::try_parse_request(header, remaining)?)),
2269 xproto::SET_INPUT_FOCUS_REQUEST => return Ok(Request::SetInputFocus(xproto::SetInputFocusRequest::try_parse_request(header, remaining)?)),
2270 xproto::GET_INPUT_FOCUS_REQUEST => return Ok(Request::GetInputFocus(xproto::GetInputFocusRequest::try_parse_request(header, remaining)?)),
2271 xproto::QUERY_KEYMAP_REQUEST => return Ok(Request::QueryKeymap(xproto::QueryKeymapRequest::try_parse_request(header, remaining)?)),
2272 xproto::OPEN_FONT_REQUEST => return Ok(Request::OpenFont(xproto::OpenFontRequest::try_parse_request(header, remaining)?)),
2273 xproto::CLOSE_FONT_REQUEST => return Ok(Request::CloseFont(xproto::CloseFontRequest::try_parse_request(header, remaining)?)),
2274 xproto::QUERY_FONT_REQUEST => return Ok(Request::QueryFont(xproto::QueryFontRequest::try_parse_request(header, remaining)?)),
2275 xproto::QUERY_TEXT_EXTENTS_REQUEST => return Ok(Request::QueryTextExtents(xproto::QueryTextExtentsRequest::try_parse_request(header, remaining)?)),
2276 xproto::LIST_FONTS_REQUEST => return Ok(Request::ListFonts(xproto::ListFontsRequest::try_parse_request(header, remaining)?)),
2277 xproto::LIST_FONTS_WITH_INFO_REQUEST => return Ok(Request::ListFontsWithInfo(xproto::ListFontsWithInfoRequest::try_parse_request(header, remaining)?)),
2278 xproto::SET_FONT_PATH_REQUEST => return Ok(Request::SetFontPath(xproto::SetFontPathRequest::try_parse_request(header, remaining)?)),
2279 xproto::GET_FONT_PATH_REQUEST => return Ok(Request::GetFontPath(xproto::GetFontPathRequest::try_parse_request(header, remaining)?)),
2280 xproto::CREATE_PIXMAP_REQUEST => return Ok(Request::CreatePixmap(xproto::CreatePixmapRequest::try_parse_request(header, remaining)?)),
2281 xproto::FREE_PIXMAP_REQUEST => return Ok(Request::FreePixmap(xproto::FreePixmapRequest::try_parse_request(header, remaining)?)),
2282 xproto::CREATE_GC_REQUEST => return Ok(Request::CreateGC(xproto::CreateGCRequest::try_parse_request(header, remaining)?)),
2283 xproto::CHANGE_GC_REQUEST => return Ok(Request::ChangeGC(xproto::ChangeGCRequest::try_parse_request(header, remaining)?)),
2284 xproto::COPY_GC_REQUEST => return Ok(Request::CopyGC(xproto::CopyGCRequest::try_parse_request(header, remaining)?)),
2285 xproto::SET_DASHES_REQUEST => return Ok(Request::SetDashes(xproto::SetDashesRequest::try_parse_request(header, remaining)?)),
2286 xproto::SET_CLIP_RECTANGLES_REQUEST => return Ok(Request::SetClipRectangles(xproto::SetClipRectanglesRequest::try_parse_request(header, remaining)?)),
2287 xproto::FREE_GC_REQUEST => return Ok(Request::FreeGC(xproto::FreeGCRequest::try_parse_request(header, remaining)?)),
2288 xproto::CLEAR_AREA_REQUEST => return Ok(Request::ClearArea(xproto::ClearAreaRequest::try_parse_request(header, remaining)?)),
2289 xproto::COPY_AREA_REQUEST => return Ok(Request::CopyArea(xproto::CopyAreaRequest::try_parse_request(header, remaining)?)),
2290 xproto::COPY_PLANE_REQUEST => return Ok(Request::CopyPlane(xproto::CopyPlaneRequest::try_parse_request(header, remaining)?)),
2291 xproto::POLY_POINT_REQUEST => return Ok(Request::PolyPoint(xproto::PolyPointRequest::try_parse_request(header, remaining)?)),
2292 xproto::POLY_LINE_REQUEST => return Ok(Request::PolyLine(xproto::PolyLineRequest::try_parse_request(header, remaining)?)),
2293 xproto::POLY_SEGMENT_REQUEST => return Ok(Request::PolySegment(xproto::PolySegmentRequest::try_parse_request(header, remaining)?)),
2294 xproto::POLY_RECTANGLE_REQUEST => return Ok(Request::PolyRectangle(xproto::PolyRectangleRequest::try_parse_request(header, remaining)?)),
2295 xproto::POLY_ARC_REQUEST => return Ok(Request::PolyArc(xproto::PolyArcRequest::try_parse_request(header, remaining)?)),
2296 xproto::FILL_POLY_REQUEST => return Ok(Request::FillPoly(xproto::FillPolyRequest::try_parse_request(header, remaining)?)),
2297 xproto::POLY_FILL_RECTANGLE_REQUEST => return Ok(Request::PolyFillRectangle(xproto::PolyFillRectangleRequest::try_parse_request(header, remaining)?)),
2298 xproto::POLY_FILL_ARC_REQUEST => return Ok(Request::PolyFillArc(xproto::PolyFillArcRequest::try_parse_request(header, remaining)?)),
2299 xproto::PUT_IMAGE_REQUEST => return Ok(Request::PutImage(xproto::PutImageRequest::try_parse_request(header, remaining)?)),
2300 xproto::GET_IMAGE_REQUEST => return Ok(Request::GetImage(xproto::GetImageRequest::try_parse_request(header, remaining)?)),
2301 xproto::POLY_TEXT8_REQUEST => return Ok(Request::PolyText8(xproto::PolyText8Request::try_parse_request(header, remaining)?)),
2302 xproto::POLY_TEXT16_REQUEST => return Ok(Request::PolyText16(xproto::PolyText16Request::try_parse_request(header, remaining)?)),
2303 xproto::IMAGE_TEXT8_REQUEST => return Ok(Request::ImageText8(xproto::ImageText8Request::try_parse_request(header, remaining)?)),
2304 xproto::IMAGE_TEXT16_REQUEST => return Ok(Request::ImageText16(xproto::ImageText16Request::try_parse_request(header, remaining)?)),
2305 xproto::CREATE_COLORMAP_REQUEST => return Ok(Request::CreateColormap(xproto::CreateColormapRequest::try_parse_request(header, remaining)?)),
2306 xproto::FREE_COLORMAP_REQUEST => return Ok(Request::FreeColormap(xproto::FreeColormapRequest::try_parse_request(header, remaining)?)),
2307 xproto::COPY_COLORMAP_AND_FREE_REQUEST => return Ok(Request::CopyColormapAndFree(xproto::CopyColormapAndFreeRequest::try_parse_request(header, remaining)?)),
2308 xproto::INSTALL_COLORMAP_REQUEST => return Ok(Request::InstallColormap(xproto::InstallColormapRequest::try_parse_request(header, remaining)?)),
2309 xproto::UNINSTALL_COLORMAP_REQUEST => return Ok(Request::UninstallColormap(xproto::UninstallColormapRequest::try_parse_request(header, remaining)?)),
2310 xproto::LIST_INSTALLED_COLORMAPS_REQUEST => return Ok(Request::ListInstalledColormaps(xproto::ListInstalledColormapsRequest::try_parse_request(header, remaining)?)),
2311 xproto::ALLOC_COLOR_REQUEST => return Ok(Request::AllocColor(xproto::AllocColorRequest::try_parse_request(header, remaining)?)),
2312 xproto::ALLOC_NAMED_COLOR_REQUEST => return Ok(Request::AllocNamedColor(xproto::AllocNamedColorRequest::try_parse_request(header, remaining)?)),
2313 xproto::ALLOC_COLOR_CELLS_REQUEST => return Ok(Request::AllocColorCells(xproto::AllocColorCellsRequest::try_parse_request(header, remaining)?)),
2314 xproto::ALLOC_COLOR_PLANES_REQUEST => return Ok(Request::AllocColorPlanes(xproto::AllocColorPlanesRequest::try_parse_request(header, remaining)?)),
2315 xproto::FREE_COLORS_REQUEST => return Ok(Request::FreeColors(xproto::FreeColorsRequest::try_parse_request(header, remaining)?)),
2316 xproto::STORE_COLORS_REQUEST => return Ok(Request::StoreColors(xproto::StoreColorsRequest::try_parse_request(header, remaining)?)),
2317 xproto::STORE_NAMED_COLOR_REQUEST => return Ok(Request::StoreNamedColor(xproto::StoreNamedColorRequest::try_parse_request(header, remaining)?)),
2318 xproto::QUERY_COLORS_REQUEST => return Ok(Request::QueryColors(xproto::QueryColorsRequest::try_parse_request(header, remaining)?)),
2319 xproto::LOOKUP_COLOR_REQUEST => return Ok(Request::LookupColor(xproto::LookupColorRequest::try_parse_request(header, remaining)?)),
2320 xproto::CREATE_CURSOR_REQUEST => return Ok(Request::CreateCursor(xproto::CreateCursorRequest::try_parse_request(header, remaining)?)),
2321 xproto::CREATE_GLYPH_CURSOR_REQUEST => return Ok(Request::CreateGlyphCursor(xproto::CreateGlyphCursorRequest::try_parse_request(header, remaining)?)),
2322 xproto::FREE_CURSOR_REQUEST => return Ok(Request::FreeCursor(xproto::FreeCursorRequest::try_parse_request(header, remaining)?)),
2323 xproto::RECOLOR_CURSOR_REQUEST => return Ok(Request::RecolorCursor(xproto::RecolorCursorRequest::try_parse_request(header, remaining)?)),
2324 xproto::QUERY_BEST_SIZE_REQUEST => return Ok(Request::QueryBestSize(xproto::QueryBestSizeRequest::try_parse_request(header, remaining)?)),
2325 xproto::QUERY_EXTENSION_REQUEST => return Ok(Request::QueryExtension(xproto::QueryExtensionRequest::try_parse_request(header, remaining)?)),
2326 xproto::LIST_EXTENSIONS_REQUEST => return Ok(Request::ListExtensions(xproto::ListExtensionsRequest::try_parse_request(header, remaining)?)),
2327 xproto::CHANGE_KEYBOARD_MAPPING_REQUEST => return Ok(Request::ChangeKeyboardMapping(xproto::ChangeKeyboardMappingRequest::try_parse_request(header, remaining)?)),
2328 xproto::GET_KEYBOARD_MAPPING_REQUEST => return Ok(Request::GetKeyboardMapping(xproto::GetKeyboardMappingRequest::try_parse_request(header, remaining)?)),
2329 xproto::CHANGE_KEYBOARD_CONTROL_REQUEST => return Ok(Request::ChangeKeyboardControl(xproto::ChangeKeyboardControlRequest::try_parse_request(header, remaining)?)),
2330 xproto::GET_KEYBOARD_CONTROL_REQUEST => return Ok(Request::GetKeyboardControl(xproto::GetKeyboardControlRequest::try_parse_request(header, remaining)?)),
2331 xproto::BELL_REQUEST => return Ok(Request::Bell(xproto::BellRequest::try_parse_request(header, remaining)?)),
2332 xproto::CHANGE_POINTER_CONTROL_REQUEST => return Ok(Request::ChangePointerControl(xproto::ChangePointerControlRequest::try_parse_request(header, remaining)?)),
2333 xproto::GET_POINTER_CONTROL_REQUEST => return Ok(Request::GetPointerControl(xproto::GetPointerControlRequest::try_parse_request(header, remaining)?)),
2334 xproto::SET_SCREEN_SAVER_REQUEST => return Ok(Request::SetScreenSaver(xproto::SetScreenSaverRequest::try_parse_request(header, remaining)?)),
2335 xproto::GET_SCREEN_SAVER_REQUEST => return Ok(Request::GetScreenSaver(xproto::GetScreenSaverRequest::try_parse_request(header, remaining)?)),
2336 xproto::CHANGE_HOSTS_REQUEST => return Ok(Request::ChangeHosts(xproto::ChangeHostsRequest::try_parse_request(header, remaining)?)),
2337 xproto::LIST_HOSTS_REQUEST => return Ok(Request::ListHosts(xproto::ListHostsRequest::try_parse_request(header, remaining)?)),
2338 xproto::SET_ACCESS_CONTROL_REQUEST => return Ok(Request::SetAccessControl(xproto::SetAccessControlRequest::try_parse_request(header, remaining)?)),
2339 xproto::SET_CLOSE_DOWN_MODE_REQUEST => return Ok(Request::SetCloseDownMode(xproto::SetCloseDownModeRequest::try_parse_request(header, remaining)?)),
2340 xproto::KILL_CLIENT_REQUEST => return Ok(Request::KillClient(xproto::KillClientRequest::try_parse_request(header, remaining)?)),
2341 xproto::ROTATE_PROPERTIES_REQUEST => return Ok(Request::RotateProperties(xproto::RotatePropertiesRequest::try_parse_request(header, remaining)?)),
2342 xproto::FORCE_SCREEN_SAVER_REQUEST => return Ok(Request::ForceScreenSaver(xproto::ForceScreenSaverRequest::try_parse_request(header, remaining)?)),
2343 xproto::SET_POINTER_MAPPING_REQUEST => return Ok(Request::SetPointerMapping(xproto::SetPointerMappingRequest::try_parse_request(header, remaining)?)),
2344 xproto::GET_POINTER_MAPPING_REQUEST => return Ok(Request::GetPointerMapping(xproto::GetPointerMappingRequest::try_parse_request(header, remaining)?)),
2345 xproto::SET_MODIFIER_MAPPING_REQUEST => return Ok(Request::SetModifierMapping(xproto::SetModifierMappingRequest::try_parse_request(header, remaining)?)),
2346 xproto::GET_MODIFIER_MAPPING_REQUEST => return Ok(Request::GetModifierMapping(xproto::GetModifierMappingRequest::try_parse_request(header, remaining)?)),
2347 xproto::NO_OPERATION_REQUEST => return Ok(Request::NoOperation(xproto::NoOperationRequest::try_parse_request(header, remaining)?)),
2348 _ => (),
2349 }
2350 // Find the extension that this request could belong to
2351 let ext_info = ext_info_provider.get_from_major_opcode(header.major_opcode);
2352 match ext_info {
2353 Some((bigreq::X11_EXTENSION_NAME, _)) => {
2354 match header.minor_opcode {
2355 bigreq::ENABLE_REQUEST => return Ok(Request::BigreqEnable(bigreq::EnableRequest::try_parse_request(header, remaining)?)),
2356 _ => (),
2357 }
2358 }
2359 #[cfg(feature = "composite")]
2360 Some((composite::X11_EXTENSION_NAME, _)) => {
2361 match header.minor_opcode {
2362 composite::QUERY_VERSION_REQUEST => return Ok(Request::CompositeQueryVersion(composite::QueryVersionRequest::try_parse_request(header, remaining)?)),
2363 composite::REDIRECT_WINDOW_REQUEST => return Ok(Request::CompositeRedirectWindow(composite::RedirectWindowRequest::try_parse_request(header, remaining)?)),
2364 composite::REDIRECT_SUBWINDOWS_REQUEST => return Ok(Request::CompositeRedirectSubwindows(composite::RedirectSubwindowsRequest::try_parse_request(header, remaining)?)),
2365 composite::UNREDIRECT_WINDOW_REQUEST => return Ok(Request::CompositeUnredirectWindow(composite::UnredirectWindowRequest::try_parse_request(header, remaining)?)),
2366 composite::UNREDIRECT_SUBWINDOWS_REQUEST => return Ok(Request::CompositeUnredirectSubwindows(composite::UnredirectSubwindowsRequest::try_parse_request(header, remaining)?)),
2367 composite::CREATE_REGION_FROM_BORDER_CLIP_REQUEST => return Ok(Request::CompositeCreateRegionFromBorderClip(composite::CreateRegionFromBorderClipRequest::try_parse_request(header, remaining)?)),
2368 composite::NAME_WINDOW_PIXMAP_REQUEST => return Ok(Request::CompositeNameWindowPixmap(composite::NameWindowPixmapRequest::try_parse_request(header, remaining)?)),
2369 composite::GET_OVERLAY_WINDOW_REQUEST => return Ok(Request::CompositeGetOverlayWindow(composite::GetOverlayWindowRequest::try_parse_request(header, remaining)?)),
2370 composite::RELEASE_OVERLAY_WINDOW_REQUEST => return Ok(Request::CompositeReleaseOverlayWindow(composite::ReleaseOverlayWindowRequest::try_parse_request(header, remaining)?)),
2371 _ => (),
2372 }
2373 }
2374 #[cfg(feature = "damage")]
2375 Some((damage::X11_EXTENSION_NAME, _)) => {
2376 match header.minor_opcode {
2377 damage::QUERY_VERSION_REQUEST => return Ok(Request::DamageQueryVersion(damage::QueryVersionRequest::try_parse_request(header, remaining)?)),
2378 damage::CREATE_REQUEST => return Ok(Request::DamageCreate(damage::CreateRequest::try_parse_request(header, remaining)?)),
2379 damage::DESTROY_REQUEST => return Ok(Request::DamageDestroy(damage::DestroyRequest::try_parse_request(header, remaining)?)),
2380 damage::SUBTRACT_REQUEST => return Ok(Request::DamageSubtract(damage::SubtractRequest::try_parse_request(header, remaining)?)),
2381 damage::ADD_REQUEST => return Ok(Request::DamageAdd(damage::AddRequest::try_parse_request(header, remaining)?)),
2382 _ => (),
2383 }
2384 }
2385 #[cfg(feature = "dbe")]
2386 Some((dbe::X11_EXTENSION_NAME, _)) => {
2387 match header.minor_opcode {
2388 dbe::QUERY_VERSION_REQUEST => return Ok(Request::DbeQueryVersion(dbe::QueryVersionRequest::try_parse_request(header, remaining)?)),
2389 dbe::ALLOCATE_BACK_BUFFER_REQUEST => return Ok(Request::DbeAllocateBackBuffer(dbe::AllocateBackBufferRequest::try_parse_request(header, remaining)?)),
2390 dbe::DEALLOCATE_BACK_BUFFER_REQUEST => return Ok(Request::DbeDeallocateBackBuffer(dbe::DeallocateBackBufferRequest::try_parse_request(header, remaining)?)),
2391 dbe::SWAP_BUFFERS_REQUEST => return Ok(Request::DbeSwapBuffers(dbe::SwapBuffersRequest::try_parse_request(header, remaining)?)),
2392 dbe::BEGIN_IDIOM_REQUEST => return Ok(Request::DbeBeginIdiom(dbe::BeginIdiomRequest::try_parse_request(header, remaining)?)),
2393 dbe::END_IDIOM_REQUEST => return Ok(Request::DbeEndIdiom(dbe::EndIdiomRequest::try_parse_request(header, remaining)?)),
2394 dbe::GET_VISUAL_INFO_REQUEST => return Ok(Request::DbeGetVisualInfo(dbe::GetVisualInfoRequest::try_parse_request(header, remaining)?)),
2395 dbe::GET_BACK_BUFFER_ATTRIBUTES_REQUEST => return Ok(Request::DbeGetBackBufferAttributes(dbe::GetBackBufferAttributesRequest::try_parse_request(header, remaining)?)),
2396 _ => (),
2397 }
2398 }
2399 #[cfg(feature = "dpms")]
2400 Some((dpms::X11_EXTENSION_NAME, _)) => {
2401 match header.minor_opcode {
2402 dpms::GET_VERSION_REQUEST => return Ok(Request::DpmsGetVersion(dpms::GetVersionRequest::try_parse_request(header, remaining)?)),
2403 dpms::CAPABLE_REQUEST => return Ok(Request::DpmsCapable(dpms::CapableRequest::try_parse_request(header, remaining)?)),
2404 dpms::GET_TIMEOUTS_REQUEST => return Ok(Request::DpmsGetTimeouts(dpms::GetTimeoutsRequest::try_parse_request(header, remaining)?)),
2405 dpms::SET_TIMEOUTS_REQUEST => return Ok(Request::DpmsSetTimeouts(dpms::SetTimeoutsRequest::try_parse_request(header, remaining)?)),
2406 dpms::ENABLE_REQUEST => return Ok(Request::DpmsEnable(dpms::EnableRequest::try_parse_request(header, remaining)?)),
2407 dpms::DISABLE_REQUEST => return Ok(Request::DpmsDisable(dpms::DisableRequest::try_parse_request(header, remaining)?)),
2408 dpms::FORCE_LEVEL_REQUEST => return Ok(Request::DpmsForceLevel(dpms::ForceLevelRequest::try_parse_request(header, remaining)?)),
2409 dpms::INFO_REQUEST => return Ok(Request::DpmsInfo(dpms::InfoRequest::try_parse_request(header, remaining)?)),
2410 _ => (),
2411 }
2412 }
2413 #[cfg(feature = "dri2")]
2414 Some((dri2::X11_EXTENSION_NAME, _)) => {
2415 match header.minor_opcode {
2416 dri2::QUERY_VERSION_REQUEST => return Ok(Request::Dri2QueryVersion(dri2::QueryVersionRequest::try_parse_request(header, remaining)?)),
2417 dri2::CONNECT_REQUEST => return Ok(Request::Dri2Connect(dri2::ConnectRequest::try_parse_request(header, remaining)?)),
2418 dri2::AUTHENTICATE_REQUEST => return Ok(Request::Dri2Authenticate(dri2::AuthenticateRequest::try_parse_request(header, remaining)?)),
2419 dri2::CREATE_DRAWABLE_REQUEST => return Ok(Request::Dri2CreateDrawable(dri2::CreateDrawableRequest::try_parse_request(header, remaining)?)),
2420 dri2::DESTROY_DRAWABLE_REQUEST => return Ok(Request::Dri2DestroyDrawable(dri2::DestroyDrawableRequest::try_parse_request(header, remaining)?)),
2421 dri2::GET_BUFFERS_REQUEST => return Ok(Request::Dri2GetBuffers(dri2::GetBuffersRequest::try_parse_request(header, remaining)?)),
2422 dri2::COPY_REGION_REQUEST => return Ok(Request::Dri2CopyRegion(dri2::CopyRegionRequest::try_parse_request(header, remaining)?)),
2423 dri2::GET_BUFFERS_WITH_FORMAT_REQUEST => return Ok(Request::Dri2GetBuffersWithFormat(dri2::GetBuffersWithFormatRequest::try_parse_request(header, remaining)?)),
2424 dri2::SWAP_BUFFERS_REQUEST => return Ok(Request::Dri2SwapBuffers(dri2::SwapBuffersRequest::try_parse_request(header, remaining)?)),
2425 dri2::GET_MSC_REQUEST => return Ok(Request::Dri2GetMSC(dri2::GetMSCRequest::try_parse_request(header, remaining)?)),
2426 dri2::WAIT_MSC_REQUEST => return Ok(Request::Dri2WaitMSC(dri2::WaitMSCRequest::try_parse_request(header, remaining)?)),
2427 dri2::WAIT_SBC_REQUEST => return Ok(Request::Dri2WaitSBC(dri2::WaitSBCRequest::try_parse_request(header, remaining)?)),
2428 dri2::SWAP_INTERVAL_REQUEST => return Ok(Request::Dri2SwapInterval(dri2::SwapIntervalRequest::try_parse_request(header, remaining)?)),
2429 dri2::GET_PARAM_REQUEST => return Ok(Request::Dri2GetParam(dri2::GetParamRequest::try_parse_request(header, remaining)?)),
2430 _ => (),
2431 }
2432 }
2433 #[cfg(feature = "dri3")]
2434 Some((dri3::X11_EXTENSION_NAME, _)) => {
2435 match header.minor_opcode {
2436 dri3::QUERY_VERSION_REQUEST => return Ok(Request::Dri3QueryVersion(dri3::QueryVersionRequest::try_parse_request(header, remaining)?)),
2437 dri3::OPEN_REQUEST => return Ok(Request::Dri3Open(dri3::OpenRequest::try_parse_request(header, remaining)?)),
2438 dri3::PIXMAP_FROM_BUFFER_REQUEST => return Ok(Request::Dri3PixmapFromBuffer(dri3::PixmapFromBufferRequest::try_parse_request_fd(header, remaining, fds)?)),
2439 dri3::BUFFER_FROM_PIXMAP_REQUEST => return Ok(Request::Dri3BufferFromPixmap(dri3::BufferFromPixmapRequest::try_parse_request(header, remaining)?)),
2440 dri3::FENCE_FROM_FD_REQUEST => return Ok(Request::Dri3FenceFromFD(dri3::FenceFromFDRequest::try_parse_request_fd(header, remaining, fds)?)),
2441 dri3::FD_FROM_FENCE_REQUEST => return Ok(Request::Dri3FDFromFence(dri3::FDFromFenceRequest::try_parse_request(header, remaining)?)),
2442 dri3::GET_SUPPORTED_MODIFIERS_REQUEST => return Ok(Request::Dri3GetSupportedModifiers(dri3::GetSupportedModifiersRequest::try_parse_request(header, remaining)?)),
2443 dri3::PIXMAP_FROM_BUFFERS_REQUEST => return Ok(Request::Dri3PixmapFromBuffers(dri3::PixmapFromBuffersRequest::try_parse_request_fd(header, remaining, fds)?)),
2444 dri3::BUFFERS_FROM_PIXMAP_REQUEST => return Ok(Request::Dri3BuffersFromPixmap(dri3::BuffersFromPixmapRequest::try_parse_request(header, remaining)?)),
2445 dri3::SET_DRM_DEVICE_IN_USE_REQUEST => return Ok(Request::Dri3SetDRMDeviceInUse(dri3::SetDRMDeviceInUseRequest::try_parse_request(header, remaining)?)),
2446 _ => (),
2447 }
2448 }
2449 Some((ge::X11_EXTENSION_NAME, _)) => {
2450 match header.minor_opcode {
2451 ge::QUERY_VERSION_REQUEST => return Ok(Request::GeQueryVersion(ge::QueryVersionRequest::try_parse_request(header, remaining)?)),
2452 _ => (),
2453 }
2454 }
2455 #[cfg(feature = "glx")]
2456 Some((glx::X11_EXTENSION_NAME, _)) => {
2457 match header.minor_opcode {
2458 glx::RENDER_REQUEST => return Ok(Request::GlxRender(glx::RenderRequest::try_parse_request(header, remaining)?)),
2459 glx::RENDER_LARGE_REQUEST => return Ok(Request::GlxRenderLarge(glx::RenderLargeRequest::try_parse_request(header, remaining)?)),
2460 glx::CREATE_CONTEXT_REQUEST => return Ok(Request::GlxCreateContext(glx::CreateContextRequest::try_parse_request(header, remaining)?)),
2461 glx::DESTROY_CONTEXT_REQUEST => return Ok(Request::GlxDestroyContext(glx::DestroyContextRequest::try_parse_request(header, remaining)?)),
2462 glx::MAKE_CURRENT_REQUEST => return Ok(Request::GlxMakeCurrent(glx::MakeCurrentRequest::try_parse_request(header, remaining)?)),
2463 glx::IS_DIRECT_REQUEST => return Ok(Request::GlxIsDirect(glx::IsDirectRequest::try_parse_request(header, remaining)?)),
2464 glx::QUERY_VERSION_REQUEST => return Ok(Request::GlxQueryVersion(glx::QueryVersionRequest::try_parse_request(header, remaining)?)),
2465 glx::WAIT_GL_REQUEST => return Ok(Request::GlxWaitGL(glx::WaitGLRequest::try_parse_request(header, remaining)?)),
2466 glx::WAIT_X_REQUEST => return Ok(Request::GlxWaitX(glx::WaitXRequest::try_parse_request(header, remaining)?)),
2467 glx::COPY_CONTEXT_REQUEST => return Ok(Request::GlxCopyContext(glx::CopyContextRequest::try_parse_request(header, remaining)?)),
2468 glx::SWAP_BUFFERS_REQUEST => return Ok(Request::GlxSwapBuffers(glx::SwapBuffersRequest::try_parse_request(header, remaining)?)),
2469 glx::USE_X_FONT_REQUEST => return Ok(Request::GlxUseXFont(glx::UseXFontRequest::try_parse_request(header, remaining)?)),
2470 glx::CREATE_GLX_PIXMAP_REQUEST => return Ok(Request::GlxCreateGLXPixmap(glx::CreateGLXPixmapRequest::try_parse_request(header, remaining)?)),
2471 glx::GET_VISUAL_CONFIGS_REQUEST => return Ok(Request::GlxGetVisualConfigs(glx::GetVisualConfigsRequest::try_parse_request(header, remaining)?)),
2472 glx::DESTROY_GLX_PIXMAP_REQUEST => return Ok(Request::GlxDestroyGLXPixmap(glx::DestroyGLXPixmapRequest::try_parse_request(header, remaining)?)),
2473 glx::VENDOR_PRIVATE_REQUEST => return Ok(Request::GlxVendorPrivate(glx::VendorPrivateRequest::try_parse_request(header, remaining)?)),
2474 glx::VENDOR_PRIVATE_WITH_REPLY_REQUEST => return Ok(Request::GlxVendorPrivateWithReply(glx::VendorPrivateWithReplyRequest::try_parse_request(header, remaining)?)),
2475 glx::QUERY_EXTENSIONS_STRING_REQUEST => return Ok(Request::GlxQueryExtensionsString(glx::QueryExtensionsStringRequest::try_parse_request(header, remaining)?)),
2476 glx::QUERY_SERVER_STRING_REQUEST => return Ok(Request::GlxQueryServerString(glx::QueryServerStringRequest::try_parse_request(header, remaining)?)),
2477 glx::CLIENT_INFO_REQUEST => return Ok(Request::GlxClientInfo(glx::ClientInfoRequest::try_parse_request(header, remaining)?)),
2478 glx::GET_FB_CONFIGS_REQUEST => return Ok(Request::GlxGetFBConfigs(glx::GetFBConfigsRequest::try_parse_request(header, remaining)?)),
2479 glx::CREATE_PIXMAP_REQUEST => return Ok(Request::GlxCreatePixmap(glx::CreatePixmapRequest::try_parse_request(header, remaining)?)),
2480 glx::DESTROY_PIXMAP_REQUEST => return Ok(Request::GlxDestroyPixmap(glx::DestroyPixmapRequest::try_parse_request(header, remaining)?)),
2481 glx::CREATE_NEW_CONTEXT_REQUEST => return Ok(Request::GlxCreateNewContext(glx::CreateNewContextRequest::try_parse_request(header, remaining)?)),
2482 glx::QUERY_CONTEXT_REQUEST => return Ok(Request::GlxQueryContext(glx::QueryContextRequest::try_parse_request(header, remaining)?)),
2483 glx::MAKE_CONTEXT_CURRENT_REQUEST => return Ok(Request::GlxMakeContextCurrent(glx::MakeContextCurrentRequest::try_parse_request(header, remaining)?)),
2484 glx::CREATE_PBUFFER_REQUEST => return Ok(Request::GlxCreatePbuffer(glx::CreatePbufferRequest::try_parse_request(header, remaining)?)),
2485 glx::DESTROY_PBUFFER_REQUEST => return Ok(Request::GlxDestroyPbuffer(glx::DestroyPbufferRequest::try_parse_request(header, remaining)?)),
2486 glx::GET_DRAWABLE_ATTRIBUTES_REQUEST => return Ok(Request::GlxGetDrawableAttributes(glx::GetDrawableAttributesRequest::try_parse_request(header, remaining)?)),
2487 glx::CHANGE_DRAWABLE_ATTRIBUTES_REQUEST => return Ok(Request::GlxChangeDrawableAttributes(glx::ChangeDrawableAttributesRequest::try_parse_request(header, remaining)?)),
2488 glx::CREATE_WINDOW_REQUEST => return Ok(Request::GlxCreateWindow(glx::CreateWindowRequest::try_parse_request(header, remaining)?)),
2489 glx::DELETE_WINDOW_REQUEST => return Ok(Request::GlxDeleteWindow(glx::DeleteWindowRequest::try_parse_request(header, remaining)?)),
2490 glx::SET_CLIENT_INFO_ARB_REQUEST => return Ok(Request::GlxSetClientInfoARB(glx::SetClientInfoARBRequest::try_parse_request(header, remaining)?)),
2491 glx::CREATE_CONTEXT_ATTRIBS_ARB_REQUEST => return Ok(Request::GlxCreateContextAttribsARB(glx::CreateContextAttribsARBRequest::try_parse_request(header, remaining)?)),
2492 glx::SET_CLIENT_INFO2_ARB_REQUEST => return Ok(Request::GlxSetClientInfo2ARB(glx::SetClientInfo2ARBRequest::try_parse_request(header, remaining)?)),
2493 glx::NEW_LIST_REQUEST => return Ok(Request::GlxNewList(glx::NewListRequest::try_parse_request(header, remaining)?)),
2494 glx::END_LIST_REQUEST => return Ok(Request::GlxEndList(glx::EndListRequest::try_parse_request(header, remaining)?)),
2495 glx::DELETE_LISTS_REQUEST => return Ok(Request::GlxDeleteLists(glx::DeleteListsRequest::try_parse_request(header, remaining)?)),
2496 glx::GEN_LISTS_REQUEST => return Ok(Request::GlxGenLists(glx::GenListsRequest::try_parse_request(header, remaining)?)),
2497 glx::FEEDBACK_BUFFER_REQUEST => return Ok(Request::GlxFeedbackBuffer(glx::FeedbackBufferRequest::try_parse_request(header, remaining)?)),
2498 glx::SELECT_BUFFER_REQUEST => return Ok(Request::GlxSelectBuffer(glx::SelectBufferRequest::try_parse_request(header, remaining)?)),
2499 glx::RENDER_MODE_REQUEST => return Ok(Request::GlxRenderMode(glx::RenderModeRequest::try_parse_request(header, remaining)?)),
2500 glx::FINISH_REQUEST => return Ok(Request::GlxFinish(glx::FinishRequest::try_parse_request(header, remaining)?)),
2501 glx::PIXEL_STOREF_REQUEST => return Ok(Request::GlxPixelStoref(glx::PixelStorefRequest::try_parse_request(header, remaining)?)),
2502 glx::PIXEL_STOREI_REQUEST => return Ok(Request::GlxPixelStorei(glx::PixelStoreiRequest::try_parse_request(header, remaining)?)),
2503 glx::READ_PIXELS_REQUEST => return Ok(Request::GlxReadPixels(glx::ReadPixelsRequest::try_parse_request(header, remaining)?)),
2504 glx::GET_BOOLEANV_REQUEST => return Ok(Request::GlxGetBooleanv(glx::GetBooleanvRequest::try_parse_request(header, remaining)?)),
2505 glx::GET_CLIP_PLANE_REQUEST => return Ok(Request::GlxGetClipPlane(glx::GetClipPlaneRequest::try_parse_request(header, remaining)?)),
2506 glx::GET_DOUBLEV_REQUEST => return Ok(Request::GlxGetDoublev(glx::GetDoublevRequest::try_parse_request(header, remaining)?)),
2507 glx::GET_ERROR_REQUEST => return Ok(Request::GlxGetError(glx::GetErrorRequest::try_parse_request(header, remaining)?)),
2508 glx::GET_FLOATV_REQUEST => return Ok(Request::GlxGetFloatv(glx::GetFloatvRequest::try_parse_request(header, remaining)?)),
2509 glx::GET_INTEGERV_REQUEST => return Ok(Request::GlxGetIntegerv(glx::GetIntegervRequest::try_parse_request(header, remaining)?)),
2510 glx::GET_LIGHTFV_REQUEST => return Ok(Request::GlxGetLightfv(glx::GetLightfvRequest::try_parse_request(header, remaining)?)),
2511 glx::GET_LIGHTIV_REQUEST => return Ok(Request::GlxGetLightiv(glx::GetLightivRequest::try_parse_request(header, remaining)?)),
2512 glx::GET_MAPDV_REQUEST => return Ok(Request::GlxGetMapdv(glx::GetMapdvRequest::try_parse_request(header, remaining)?)),
2513 glx::GET_MAPFV_REQUEST => return Ok(Request::GlxGetMapfv(glx::GetMapfvRequest::try_parse_request(header, remaining)?)),
2514 glx::GET_MAPIV_REQUEST => return Ok(Request::GlxGetMapiv(glx::GetMapivRequest::try_parse_request(header, remaining)?)),
2515 glx::GET_MATERIALFV_REQUEST => return Ok(Request::GlxGetMaterialfv(glx::GetMaterialfvRequest::try_parse_request(header, remaining)?)),
2516 glx::GET_MATERIALIV_REQUEST => return Ok(Request::GlxGetMaterialiv(glx::GetMaterialivRequest::try_parse_request(header, remaining)?)),
2517 glx::GET_PIXEL_MAPFV_REQUEST => return Ok(Request::GlxGetPixelMapfv(glx::GetPixelMapfvRequest::try_parse_request(header, remaining)?)),
2518 glx::GET_PIXEL_MAPUIV_REQUEST => return Ok(Request::GlxGetPixelMapuiv(glx::GetPixelMapuivRequest::try_parse_request(header, remaining)?)),
2519 glx::GET_PIXEL_MAPUSV_REQUEST => return Ok(Request::GlxGetPixelMapusv(glx::GetPixelMapusvRequest::try_parse_request(header, remaining)?)),
2520 glx::GET_POLYGON_STIPPLE_REQUEST => return Ok(Request::GlxGetPolygonStipple(glx::GetPolygonStippleRequest::try_parse_request(header, remaining)?)),
2521 glx::GET_STRING_REQUEST => return Ok(Request::GlxGetString(glx::GetStringRequest::try_parse_request(header, remaining)?)),
2522 glx::GET_TEX_ENVFV_REQUEST => return Ok(Request::GlxGetTexEnvfv(glx::GetTexEnvfvRequest::try_parse_request(header, remaining)?)),
2523 glx::GET_TEX_ENVIV_REQUEST => return Ok(Request::GlxGetTexEnviv(glx::GetTexEnvivRequest::try_parse_request(header, remaining)?)),
2524 glx::GET_TEX_GENDV_REQUEST => return Ok(Request::GlxGetTexGendv(glx::GetTexGendvRequest::try_parse_request(header, remaining)?)),
2525 glx::GET_TEX_GENFV_REQUEST => return Ok(Request::GlxGetTexGenfv(glx::GetTexGenfvRequest::try_parse_request(header, remaining)?)),
2526 glx::GET_TEX_GENIV_REQUEST => return Ok(Request::GlxGetTexGeniv(glx::GetTexGenivRequest::try_parse_request(header, remaining)?)),
2527 glx::GET_TEX_IMAGE_REQUEST => return Ok(Request::GlxGetTexImage(glx::GetTexImageRequest::try_parse_request(header, remaining)?)),
2528 glx::GET_TEX_PARAMETERFV_REQUEST => return Ok(Request::GlxGetTexParameterfv(glx::GetTexParameterfvRequest::try_parse_request(header, remaining)?)),
2529 glx::GET_TEX_PARAMETERIV_REQUEST => return Ok(Request::GlxGetTexParameteriv(glx::GetTexParameterivRequest::try_parse_request(header, remaining)?)),
2530 glx::GET_TEX_LEVEL_PARAMETERFV_REQUEST => return Ok(Request::GlxGetTexLevelParameterfv(glx::GetTexLevelParameterfvRequest::try_parse_request(header, remaining)?)),
2531 glx::GET_TEX_LEVEL_PARAMETERIV_REQUEST => return Ok(Request::GlxGetTexLevelParameteriv(glx::GetTexLevelParameterivRequest::try_parse_request(header, remaining)?)),
2532 glx::IS_ENABLED_REQUEST => return Ok(Request::GlxIsEnabled(glx::IsEnabledRequest::try_parse_request(header, remaining)?)),
2533 glx::IS_LIST_REQUEST => return Ok(Request::GlxIsList(glx::IsListRequest::try_parse_request(header, remaining)?)),
2534 glx::FLUSH_REQUEST => return Ok(Request::GlxFlush(glx::FlushRequest::try_parse_request(header, remaining)?)),
2535 glx::ARE_TEXTURES_RESIDENT_REQUEST => return Ok(Request::GlxAreTexturesResident(glx::AreTexturesResidentRequest::try_parse_request(header, remaining)?)),
2536 glx::DELETE_TEXTURES_REQUEST => return Ok(Request::GlxDeleteTextures(glx::DeleteTexturesRequest::try_parse_request(header, remaining)?)),
2537 glx::GEN_TEXTURES_REQUEST => return Ok(Request::GlxGenTextures(glx::GenTexturesRequest::try_parse_request(header, remaining)?)),
2538 glx::IS_TEXTURE_REQUEST => return Ok(Request::GlxIsTexture(glx::IsTextureRequest::try_parse_request(header, remaining)?)),
2539 glx::GET_COLOR_TABLE_REQUEST => return Ok(Request::GlxGetColorTable(glx::GetColorTableRequest::try_parse_request(header, remaining)?)),
2540 glx::GET_COLOR_TABLE_PARAMETERFV_REQUEST => return Ok(Request::GlxGetColorTableParameterfv(glx::GetColorTableParameterfvRequest::try_parse_request(header, remaining)?)),
2541 glx::GET_COLOR_TABLE_PARAMETERIV_REQUEST => return Ok(Request::GlxGetColorTableParameteriv(glx::GetColorTableParameterivRequest::try_parse_request(header, remaining)?)),
2542 glx::GET_CONVOLUTION_FILTER_REQUEST => return Ok(Request::GlxGetConvolutionFilter(glx::GetConvolutionFilterRequest::try_parse_request(header, remaining)?)),
2543 glx::GET_CONVOLUTION_PARAMETERFV_REQUEST => return Ok(Request::GlxGetConvolutionParameterfv(glx::GetConvolutionParameterfvRequest::try_parse_request(header, remaining)?)),
2544 glx::GET_CONVOLUTION_PARAMETERIV_REQUEST => return Ok(Request::GlxGetConvolutionParameteriv(glx::GetConvolutionParameterivRequest::try_parse_request(header, remaining)?)),
2545 glx::GET_SEPARABLE_FILTER_REQUEST => return Ok(Request::GlxGetSeparableFilter(glx::GetSeparableFilterRequest::try_parse_request(header, remaining)?)),
2546 glx::GET_HISTOGRAM_REQUEST => return Ok(Request::GlxGetHistogram(glx::GetHistogramRequest::try_parse_request(header, remaining)?)),
2547 glx::GET_HISTOGRAM_PARAMETERFV_REQUEST => return Ok(Request::GlxGetHistogramParameterfv(glx::GetHistogramParameterfvRequest::try_parse_request(header, remaining)?)),
2548 glx::GET_HISTOGRAM_PARAMETERIV_REQUEST => return Ok(Request::GlxGetHistogramParameteriv(glx::GetHistogramParameterivRequest::try_parse_request(header, remaining)?)),
2549 glx::GET_MINMAX_REQUEST => return Ok(Request::GlxGetMinmax(glx::GetMinmaxRequest::try_parse_request(header, remaining)?)),
2550 glx::GET_MINMAX_PARAMETERFV_REQUEST => return Ok(Request::GlxGetMinmaxParameterfv(glx::GetMinmaxParameterfvRequest::try_parse_request(header, remaining)?)),
2551 glx::GET_MINMAX_PARAMETERIV_REQUEST => return Ok(Request::GlxGetMinmaxParameteriv(glx::GetMinmaxParameterivRequest::try_parse_request(header, remaining)?)),
2552 glx::GET_COMPRESSED_TEX_IMAGE_ARB_REQUEST => return Ok(Request::GlxGetCompressedTexImageARB(glx::GetCompressedTexImageARBRequest::try_parse_request(header, remaining)?)),
2553 glx::DELETE_QUERIES_ARB_REQUEST => return Ok(Request::GlxDeleteQueriesARB(glx::DeleteQueriesARBRequest::try_parse_request(header, remaining)?)),
2554 glx::GEN_QUERIES_ARB_REQUEST => return Ok(Request::GlxGenQueriesARB(glx::GenQueriesARBRequest::try_parse_request(header, remaining)?)),
2555 glx::IS_QUERY_ARB_REQUEST => return Ok(Request::GlxIsQueryARB(glx::IsQueryARBRequest::try_parse_request(header, remaining)?)),
2556 glx::GET_QUERYIV_ARB_REQUEST => return Ok(Request::GlxGetQueryivARB(glx::GetQueryivARBRequest::try_parse_request(header, remaining)?)),
2557 glx::GET_QUERY_OBJECTIV_ARB_REQUEST => return Ok(Request::GlxGetQueryObjectivARB(glx::GetQueryObjectivARBRequest::try_parse_request(header, remaining)?)),
2558 glx::GET_QUERY_OBJECTUIV_ARB_REQUEST => return Ok(Request::GlxGetQueryObjectuivARB(glx::GetQueryObjectuivARBRequest::try_parse_request(header, remaining)?)),
2559 _ => (),
2560 }
2561 }
2562 #[cfg(feature = "present")]
2563 Some((present::X11_EXTENSION_NAME, _)) => {
2564 match header.minor_opcode {
2565 present::QUERY_VERSION_REQUEST => return Ok(Request::PresentQueryVersion(present::QueryVersionRequest::try_parse_request(header, remaining)?)),
2566 present::PIXMAP_REQUEST => return Ok(Request::PresentPixmap(present::PixmapRequest::try_parse_request(header, remaining)?)),
2567 present::NOTIFY_MSC_REQUEST => return Ok(Request::PresentNotifyMSC(present::NotifyMSCRequest::try_parse_request(header, remaining)?)),
2568 present::SELECT_INPUT_REQUEST => return Ok(Request::PresentSelectInput(present::SelectInputRequest::try_parse_request(header, remaining)?)),
2569 present::QUERY_CAPABILITIES_REQUEST => return Ok(Request::PresentQueryCapabilities(present::QueryCapabilitiesRequest::try_parse_request(header, remaining)?)),
2570 _ => (),
2571 }
2572 }
2573 #[cfg(feature = "randr")]
2574 Some((randr::X11_EXTENSION_NAME, _)) => {
2575 match header.minor_opcode {
2576 randr::QUERY_VERSION_REQUEST => return Ok(Request::RandrQueryVersion(randr::QueryVersionRequest::try_parse_request(header, remaining)?)),
2577 randr::SET_SCREEN_CONFIG_REQUEST => return Ok(Request::RandrSetScreenConfig(randr::SetScreenConfigRequest::try_parse_request(header, remaining)?)),
2578 randr::SELECT_INPUT_REQUEST => return Ok(Request::RandrSelectInput(randr::SelectInputRequest::try_parse_request(header, remaining)?)),
2579 randr::GET_SCREEN_INFO_REQUEST => return Ok(Request::RandrGetScreenInfo(randr::GetScreenInfoRequest::try_parse_request(header, remaining)?)),
2580 randr::GET_SCREEN_SIZE_RANGE_REQUEST => return Ok(Request::RandrGetScreenSizeRange(randr::GetScreenSizeRangeRequest::try_parse_request(header, remaining)?)),
2581 randr::SET_SCREEN_SIZE_REQUEST => return Ok(Request::RandrSetScreenSize(randr::SetScreenSizeRequest::try_parse_request(header, remaining)?)),
2582 randr::GET_SCREEN_RESOURCES_REQUEST => return Ok(Request::RandrGetScreenResources(randr::GetScreenResourcesRequest::try_parse_request(header, remaining)?)),
2583 randr::GET_OUTPUT_INFO_REQUEST => return Ok(Request::RandrGetOutputInfo(randr::GetOutputInfoRequest::try_parse_request(header, remaining)?)),
2584 randr::LIST_OUTPUT_PROPERTIES_REQUEST => return Ok(Request::RandrListOutputProperties(randr::ListOutputPropertiesRequest::try_parse_request(header, remaining)?)),
2585 randr::QUERY_OUTPUT_PROPERTY_REQUEST => return Ok(Request::RandrQueryOutputProperty(randr::QueryOutputPropertyRequest::try_parse_request(header, remaining)?)),
2586 randr::CONFIGURE_OUTPUT_PROPERTY_REQUEST => return Ok(Request::RandrConfigureOutputProperty(randr::ConfigureOutputPropertyRequest::try_parse_request(header, remaining)?)),
2587 randr::CHANGE_OUTPUT_PROPERTY_REQUEST => return Ok(Request::RandrChangeOutputProperty(randr::ChangeOutputPropertyRequest::try_parse_request(header, remaining)?)),
2588 randr::DELETE_OUTPUT_PROPERTY_REQUEST => return Ok(Request::RandrDeleteOutputProperty(randr::DeleteOutputPropertyRequest::try_parse_request(header, remaining)?)),
2589 randr::GET_OUTPUT_PROPERTY_REQUEST => return Ok(Request::RandrGetOutputProperty(randr::GetOutputPropertyRequest::try_parse_request(header, remaining)?)),
2590 randr::CREATE_MODE_REQUEST => return Ok(Request::RandrCreateMode(randr::CreateModeRequest::try_parse_request(header, remaining)?)),
2591 randr::DESTROY_MODE_REQUEST => return Ok(Request::RandrDestroyMode(randr::DestroyModeRequest::try_parse_request(header, remaining)?)),
2592 randr::ADD_OUTPUT_MODE_REQUEST => return Ok(Request::RandrAddOutputMode(randr::AddOutputModeRequest::try_parse_request(header, remaining)?)),
2593 randr::DELETE_OUTPUT_MODE_REQUEST => return Ok(Request::RandrDeleteOutputMode(randr::DeleteOutputModeRequest::try_parse_request(header, remaining)?)),
2594 randr::GET_CRTC_INFO_REQUEST => return Ok(Request::RandrGetCrtcInfo(randr::GetCrtcInfoRequest::try_parse_request(header, remaining)?)),
2595 randr::SET_CRTC_CONFIG_REQUEST => return Ok(Request::RandrSetCrtcConfig(randr::SetCrtcConfigRequest::try_parse_request(header, remaining)?)),
2596 randr::GET_CRTC_GAMMA_SIZE_REQUEST => return Ok(Request::RandrGetCrtcGammaSize(randr::GetCrtcGammaSizeRequest::try_parse_request(header, remaining)?)),
2597 randr::GET_CRTC_GAMMA_REQUEST => return Ok(Request::RandrGetCrtcGamma(randr::GetCrtcGammaRequest::try_parse_request(header, remaining)?)),
2598 randr::SET_CRTC_GAMMA_REQUEST => return Ok(Request::RandrSetCrtcGamma(randr::SetCrtcGammaRequest::try_parse_request(header, remaining)?)),
2599 randr::GET_SCREEN_RESOURCES_CURRENT_REQUEST => return Ok(Request::RandrGetScreenResourcesCurrent(randr::GetScreenResourcesCurrentRequest::try_parse_request(header, remaining)?)),
2600 randr::SET_CRTC_TRANSFORM_REQUEST => return Ok(Request::RandrSetCrtcTransform(randr::SetCrtcTransformRequest::try_parse_request(header, remaining)?)),
2601 randr::GET_CRTC_TRANSFORM_REQUEST => return Ok(Request::RandrGetCrtcTransform(randr::GetCrtcTransformRequest::try_parse_request(header, remaining)?)),
2602 randr::GET_PANNING_REQUEST => return Ok(Request::RandrGetPanning(randr::GetPanningRequest::try_parse_request(header, remaining)?)),
2603 randr::SET_PANNING_REQUEST => return Ok(Request::RandrSetPanning(randr::SetPanningRequest::try_parse_request(header, remaining)?)),
2604 randr::SET_OUTPUT_PRIMARY_REQUEST => return Ok(Request::RandrSetOutputPrimary(randr::SetOutputPrimaryRequest::try_parse_request(header, remaining)?)),
2605 randr::GET_OUTPUT_PRIMARY_REQUEST => return Ok(Request::RandrGetOutputPrimary(randr::GetOutputPrimaryRequest::try_parse_request(header, remaining)?)),
2606 randr::GET_PROVIDERS_REQUEST => return Ok(Request::RandrGetProviders(randr::GetProvidersRequest::try_parse_request(header, remaining)?)),
2607 randr::GET_PROVIDER_INFO_REQUEST => return Ok(Request::RandrGetProviderInfo(randr::GetProviderInfoRequest::try_parse_request(header, remaining)?)),
2608 randr::SET_PROVIDER_OFFLOAD_SINK_REQUEST => return Ok(Request::RandrSetProviderOffloadSink(randr::SetProviderOffloadSinkRequest::try_parse_request(header, remaining)?)),
2609 randr::SET_PROVIDER_OUTPUT_SOURCE_REQUEST => return Ok(Request::RandrSetProviderOutputSource(randr::SetProviderOutputSourceRequest::try_parse_request(header, remaining)?)),
2610 randr::LIST_PROVIDER_PROPERTIES_REQUEST => return Ok(Request::RandrListProviderProperties(randr::ListProviderPropertiesRequest::try_parse_request(header, remaining)?)),
2611 randr::QUERY_PROVIDER_PROPERTY_REQUEST => return Ok(Request::RandrQueryProviderProperty(randr::QueryProviderPropertyRequest::try_parse_request(header, remaining)?)),
2612 randr::CONFIGURE_PROVIDER_PROPERTY_REQUEST => return Ok(Request::RandrConfigureProviderProperty(randr::ConfigureProviderPropertyRequest::try_parse_request(header, remaining)?)),
2613 randr::CHANGE_PROVIDER_PROPERTY_REQUEST => return Ok(Request::RandrChangeProviderProperty(randr::ChangeProviderPropertyRequest::try_parse_request(header, remaining)?)),
2614 randr::DELETE_PROVIDER_PROPERTY_REQUEST => return Ok(Request::RandrDeleteProviderProperty(randr::DeleteProviderPropertyRequest::try_parse_request(header, remaining)?)),
2615 randr::GET_PROVIDER_PROPERTY_REQUEST => return Ok(Request::RandrGetProviderProperty(randr::GetProviderPropertyRequest::try_parse_request(header, remaining)?)),
2616 randr::GET_MONITORS_REQUEST => return Ok(Request::RandrGetMonitors(randr::GetMonitorsRequest::try_parse_request(header, remaining)?)),
2617 randr::SET_MONITOR_REQUEST => return Ok(Request::RandrSetMonitor(randr::SetMonitorRequest::try_parse_request(header, remaining)?)),
2618 randr::DELETE_MONITOR_REQUEST => return Ok(Request::RandrDeleteMonitor(randr::DeleteMonitorRequest::try_parse_request(header, remaining)?)),
2619 randr::CREATE_LEASE_REQUEST => return Ok(Request::RandrCreateLease(randr::CreateLeaseRequest::try_parse_request(header, remaining)?)),
2620 randr::FREE_LEASE_REQUEST => return Ok(Request::RandrFreeLease(randr::FreeLeaseRequest::try_parse_request(header, remaining)?)),
2621 _ => (),
2622 }
2623 }
2624 #[cfg(feature = "record")]
2625 Some((record::X11_EXTENSION_NAME, _)) => {
2626 match header.minor_opcode {
2627 record::QUERY_VERSION_REQUEST => return Ok(Request::RecordQueryVersion(record::QueryVersionRequest::try_parse_request(header, remaining)?)),
2628 record::CREATE_CONTEXT_REQUEST => return Ok(Request::RecordCreateContext(record::CreateContextRequest::try_parse_request(header, remaining)?)),
2629 record::REGISTER_CLIENTS_REQUEST => return Ok(Request::RecordRegisterClients(record::RegisterClientsRequest::try_parse_request(header, remaining)?)),
2630 record::UNREGISTER_CLIENTS_REQUEST => return Ok(Request::RecordUnregisterClients(record::UnregisterClientsRequest::try_parse_request(header, remaining)?)),
2631 record::GET_CONTEXT_REQUEST => return Ok(Request::RecordGetContext(record::GetContextRequest::try_parse_request(header, remaining)?)),
2632 record::ENABLE_CONTEXT_REQUEST => return Ok(Request::RecordEnableContext(record::EnableContextRequest::try_parse_request(header, remaining)?)),
2633 record::DISABLE_CONTEXT_REQUEST => return Ok(Request::RecordDisableContext(record::DisableContextRequest::try_parse_request(header, remaining)?)),
2634 record::FREE_CONTEXT_REQUEST => return Ok(Request::RecordFreeContext(record::FreeContextRequest::try_parse_request(header, remaining)?)),
2635 _ => (),
2636 }
2637 }
2638 #[cfg(feature = "render")]
2639 Some((render::X11_EXTENSION_NAME, _)) => {
2640 match header.minor_opcode {
2641 render::QUERY_VERSION_REQUEST => return Ok(Request::RenderQueryVersion(render::QueryVersionRequest::try_parse_request(header, remaining)?)),
2642 render::QUERY_PICT_FORMATS_REQUEST => return Ok(Request::RenderQueryPictFormats(render::QueryPictFormatsRequest::try_parse_request(header, remaining)?)),
2643 render::QUERY_PICT_INDEX_VALUES_REQUEST => return Ok(Request::RenderQueryPictIndexValues(render::QueryPictIndexValuesRequest::try_parse_request(header, remaining)?)),
2644 render::CREATE_PICTURE_REQUEST => return Ok(Request::RenderCreatePicture(render::CreatePictureRequest::try_parse_request(header, remaining)?)),
2645 render::CHANGE_PICTURE_REQUEST => return Ok(Request::RenderChangePicture(render::ChangePictureRequest::try_parse_request(header, remaining)?)),
2646 render::SET_PICTURE_CLIP_RECTANGLES_REQUEST => return Ok(Request::RenderSetPictureClipRectangles(render::SetPictureClipRectanglesRequest::try_parse_request(header, remaining)?)),
2647 render::FREE_PICTURE_REQUEST => return Ok(Request::RenderFreePicture(render::FreePictureRequest::try_parse_request(header, remaining)?)),
2648 render::COMPOSITE_REQUEST => return Ok(Request::RenderComposite(render::CompositeRequest::try_parse_request(header, remaining)?)),
2649 render::TRAPEZOIDS_REQUEST => return Ok(Request::RenderTrapezoids(render::TrapezoidsRequest::try_parse_request(header, remaining)?)),
2650 render::TRIANGLES_REQUEST => return Ok(Request::RenderTriangles(render::TrianglesRequest::try_parse_request(header, remaining)?)),
2651 render::TRI_STRIP_REQUEST => return Ok(Request::RenderTriStrip(render::TriStripRequest::try_parse_request(header, remaining)?)),
2652 render::TRI_FAN_REQUEST => return Ok(Request::RenderTriFan(render::TriFanRequest::try_parse_request(header, remaining)?)),
2653 render::CREATE_GLYPH_SET_REQUEST => return Ok(Request::RenderCreateGlyphSet(render::CreateGlyphSetRequest::try_parse_request(header, remaining)?)),
2654 render::REFERENCE_GLYPH_SET_REQUEST => return Ok(Request::RenderReferenceGlyphSet(render::ReferenceGlyphSetRequest::try_parse_request(header, remaining)?)),
2655 render::FREE_GLYPH_SET_REQUEST => return Ok(Request::RenderFreeGlyphSet(render::FreeGlyphSetRequest::try_parse_request(header, remaining)?)),
2656 render::ADD_GLYPHS_REQUEST => return Ok(Request::RenderAddGlyphs(render::AddGlyphsRequest::try_parse_request(header, remaining)?)),
2657 render::FREE_GLYPHS_REQUEST => return Ok(Request::RenderFreeGlyphs(render::FreeGlyphsRequest::try_parse_request(header, remaining)?)),
2658 render::COMPOSITE_GLYPHS8_REQUEST => return Ok(Request::RenderCompositeGlyphs8(render::CompositeGlyphs8Request::try_parse_request(header, remaining)?)),
2659 render::COMPOSITE_GLYPHS16_REQUEST => return Ok(Request::RenderCompositeGlyphs16(render::CompositeGlyphs16Request::try_parse_request(header, remaining)?)),
2660 render::COMPOSITE_GLYPHS32_REQUEST => return Ok(Request::RenderCompositeGlyphs32(render::CompositeGlyphs32Request::try_parse_request(header, remaining)?)),
2661 render::FILL_RECTANGLES_REQUEST => return Ok(Request::RenderFillRectangles(render::FillRectanglesRequest::try_parse_request(header, remaining)?)),
2662 render::CREATE_CURSOR_REQUEST => return Ok(Request::RenderCreateCursor(render::CreateCursorRequest::try_parse_request(header, remaining)?)),
2663 render::SET_PICTURE_TRANSFORM_REQUEST => return Ok(Request::RenderSetPictureTransform(render::SetPictureTransformRequest::try_parse_request(header, remaining)?)),
2664 render::QUERY_FILTERS_REQUEST => return Ok(Request::RenderQueryFilters(render::QueryFiltersRequest::try_parse_request(header, remaining)?)),
2665 render::SET_PICTURE_FILTER_REQUEST => return Ok(Request::RenderSetPictureFilter(render::SetPictureFilterRequest::try_parse_request(header, remaining)?)),
2666 render::CREATE_ANIM_CURSOR_REQUEST => return Ok(Request::RenderCreateAnimCursor(render::CreateAnimCursorRequest::try_parse_request(header, remaining)?)),
2667 render::ADD_TRAPS_REQUEST => return Ok(Request::RenderAddTraps(render::AddTrapsRequest::try_parse_request(header, remaining)?)),
2668 render::CREATE_SOLID_FILL_REQUEST => return Ok(Request::RenderCreateSolidFill(render::CreateSolidFillRequest::try_parse_request(header, remaining)?)),
2669 render::CREATE_LINEAR_GRADIENT_REQUEST => return Ok(Request::RenderCreateLinearGradient(render::CreateLinearGradientRequest::try_parse_request(header, remaining)?)),
2670 render::CREATE_RADIAL_GRADIENT_REQUEST => return Ok(Request::RenderCreateRadialGradient(render::CreateRadialGradientRequest::try_parse_request(header, remaining)?)),
2671 render::CREATE_CONICAL_GRADIENT_REQUEST => return Ok(Request::RenderCreateConicalGradient(render::CreateConicalGradientRequest::try_parse_request(header, remaining)?)),
2672 _ => (),
2673 }
2674 }
2675 #[cfg(feature = "res")]
2676 Some((res::X11_EXTENSION_NAME, _)) => {
2677 match header.minor_opcode {
2678 res::QUERY_VERSION_REQUEST => return Ok(Request::ResQueryVersion(res::QueryVersionRequest::try_parse_request(header, remaining)?)),
2679 res::QUERY_CLIENTS_REQUEST => return Ok(Request::ResQueryClients(res::QueryClientsRequest::try_parse_request(header, remaining)?)),
2680 res::QUERY_CLIENT_RESOURCES_REQUEST => return Ok(Request::ResQueryClientResources(res::QueryClientResourcesRequest::try_parse_request(header, remaining)?)),
2681 res::QUERY_CLIENT_PIXMAP_BYTES_REQUEST => return Ok(Request::ResQueryClientPixmapBytes(res::QueryClientPixmapBytesRequest::try_parse_request(header, remaining)?)),
2682 res::QUERY_CLIENT_IDS_REQUEST => return Ok(Request::ResQueryClientIds(res::QueryClientIdsRequest::try_parse_request(header, remaining)?)),
2683 res::QUERY_RESOURCE_BYTES_REQUEST => return Ok(Request::ResQueryResourceBytes(res::QueryResourceBytesRequest::try_parse_request(header, remaining)?)),
2684 _ => (),
2685 }
2686 }
2687 #[cfg(feature = "screensaver")]
2688 Some((screensaver::X11_EXTENSION_NAME, _)) => {
2689 match header.minor_opcode {
2690 screensaver::QUERY_VERSION_REQUEST => return Ok(Request::ScreensaverQueryVersion(screensaver::QueryVersionRequest::try_parse_request(header, remaining)?)),
2691 screensaver::QUERY_INFO_REQUEST => return Ok(Request::ScreensaverQueryInfo(screensaver::QueryInfoRequest::try_parse_request(header, remaining)?)),
2692 screensaver::SELECT_INPUT_REQUEST => return Ok(Request::ScreensaverSelectInput(screensaver::SelectInputRequest::try_parse_request(header, remaining)?)),
2693 screensaver::SET_ATTRIBUTES_REQUEST => return Ok(Request::ScreensaverSetAttributes(screensaver::SetAttributesRequest::try_parse_request(header, remaining)?)),
2694 screensaver::UNSET_ATTRIBUTES_REQUEST => return Ok(Request::ScreensaverUnsetAttributes(screensaver::UnsetAttributesRequest::try_parse_request(header, remaining)?)),
2695 screensaver::SUSPEND_REQUEST => return Ok(Request::ScreensaverSuspend(screensaver::SuspendRequest::try_parse_request(header, remaining)?)),
2696 _ => (),
2697 }
2698 }
2699 #[cfg(feature = "shape")]
2700 Some((shape::X11_EXTENSION_NAME, _)) => {
2701 match header.minor_opcode {
2702 shape::QUERY_VERSION_REQUEST => return Ok(Request::ShapeQueryVersion(shape::QueryVersionRequest::try_parse_request(header, remaining)?)),
2703 shape::RECTANGLES_REQUEST => return Ok(Request::ShapeRectangles(shape::RectanglesRequest::try_parse_request(header, remaining)?)),
2704 shape::MASK_REQUEST => return Ok(Request::ShapeMask(shape::MaskRequest::try_parse_request(header, remaining)?)),
2705 shape::COMBINE_REQUEST => return Ok(Request::ShapeCombine(shape::CombineRequest::try_parse_request(header, remaining)?)),
2706 shape::OFFSET_REQUEST => return Ok(Request::ShapeOffset(shape::OffsetRequest::try_parse_request(header, remaining)?)),
2707 shape::QUERY_EXTENTS_REQUEST => return Ok(Request::ShapeQueryExtents(shape::QueryExtentsRequest::try_parse_request(header, remaining)?)),
2708 shape::SELECT_INPUT_REQUEST => return Ok(Request::ShapeSelectInput(shape::SelectInputRequest::try_parse_request(header, remaining)?)),
2709 shape::INPUT_SELECTED_REQUEST => return Ok(Request::ShapeInputSelected(shape::InputSelectedRequest::try_parse_request(header, remaining)?)),
2710 shape::GET_RECTANGLES_REQUEST => return Ok(Request::ShapeGetRectangles(shape::GetRectanglesRequest::try_parse_request(header, remaining)?)),
2711 _ => (),
2712 }
2713 }
2714 #[cfg(feature = "shm")]
2715 Some((shm::X11_EXTENSION_NAME, _)) => {
2716 match header.minor_opcode {
2717 shm::QUERY_VERSION_REQUEST => return Ok(Request::ShmQueryVersion(shm::QueryVersionRequest::try_parse_request(header, remaining)?)),
2718 shm::ATTACH_REQUEST => return Ok(Request::ShmAttach(shm::AttachRequest::try_parse_request(header, remaining)?)),
2719 shm::DETACH_REQUEST => return Ok(Request::ShmDetach(shm::DetachRequest::try_parse_request(header, remaining)?)),
2720 shm::PUT_IMAGE_REQUEST => return Ok(Request::ShmPutImage(shm::PutImageRequest::try_parse_request(header, remaining)?)),
2721 shm::GET_IMAGE_REQUEST => return Ok(Request::ShmGetImage(shm::GetImageRequest::try_parse_request(header, remaining)?)),
2722 shm::CREATE_PIXMAP_REQUEST => return Ok(Request::ShmCreatePixmap(shm::CreatePixmapRequest::try_parse_request(header, remaining)?)),
2723 shm::ATTACH_FD_REQUEST => return Ok(Request::ShmAttachFd(shm::AttachFdRequest::try_parse_request_fd(header, remaining, fds)?)),
2724 shm::CREATE_SEGMENT_REQUEST => return Ok(Request::ShmCreateSegment(shm::CreateSegmentRequest::try_parse_request(header, remaining)?)),
2725 _ => (),
2726 }
2727 }
2728 #[cfg(feature = "sync")]
2729 Some((sync::X11_EXTENSION_NAME, _)) => {
2730 match header.minor_opcode {
2731 sync::INITIALIZE_REQUEST => return Ok(Request::SyncInitialize(sync::InitializeRequest::try_parse_request(header, remaining)?)),
2732 sync::LIST_SYSTEM_COUNTERS_REQUEST => return Ok(Request::SyncListSystemCounters(sync::ListSystemCountersRequest::try_parse_request(header, remaining)?)),
2733 sync::CREATE_COUNTER_REQUEST => return Ok(Request::SyncCreateCounter(sync::CreateCounterRequest::try_parse_request(header, remaining)?)),
2734 sync::DESTROY_COUNTER_REQUEST => return Ok(Request::SyncDestroyCounter(sync::DestroyCounterRequest::try_parse_request(header, remaining)?)),
2735 sync::QUERY_COUNTER_REQUEST => return Ok(Request::SyncQueryCounter(sync::QueryCounterRequest::try_parse_request(header, remaining)?)),
2736 sync::AWAIT_REQUEST => return Ok(Request::SyncAwait(sync::AwaitRequest::try_parse_request(header, remaining)?)),
2737 sync::CHANGE_COUNTER_REQUEST => return Ok(Request::SyncChangeCounter(sync::ChangeCounterRequest::try_parse_request(header, remaining)?)),
2738 sync::SET_COUNTER_REQUEST => return Ok(Request::SyncSetCounter(sync::SetCounterRequest::try_parse_request(header, remaining)?)),
2739 sync::CREATE_ALARM_REQUEST => return Ok(Request::SyncCreateAlarm(sync::CreateAlarmRequest::try_parse_request(header, remaining)?)),
2740 sync::CHANGE_ALARM_REQUEST => return Ok(Request::SyncChangeAlarm(sync::ChangeAlarmRequest::try_parse_request(header, remaining)?)),
2741 sync::DESTROY_ALARM_REQUEST => return Ok(Request::SyncDestroyAlarm(sync::DestroyAlarmRequest::try_parse_request(header, remaining)?)),
2742 sync::QUERY_ALARM_REQUEST => return Ok(Request::SyncQueryAlarm(sync::QueryAlarmRequest::try_parse_request(header, remaining)?)),
2743 sync::SET_PRIORITY_REQUEST => return Ok(Request::SyncSetPriority(sync::SetPriorityRequest::try_parse_request(header, remaining)?)),
2744 sync::GET_PRIORITY_REQUEST => return Ok(Request::SyncGetPriority(sync::GetPriorityRequest::try_parse_request(header, remaining)?)),
2745 sync::CREATE_FENCE_REQUEST => return Ok(Request::SyncCreateFence(sync::CreateFenceRequest::try_parse_request(header, remaining)?)),
2746 sync::TRIGGER_FENCE_REQUEST => return Ok(Request::SyncTriggerFence(sync::TriggerFenceRequest::try_parse_request(header, remaining)?)),
2747 sync::RESET_FENCE_REQUEST => return Ok(Request::SyncResetFence(sync::ResetFenceRequest::try_parse_request(header, remaining)?)),
2748 sync::DESTROY_FENCE_REQUEST => return Ok(Request::SyncDestroyFence(sync::DestroyFenceRequest::try_parse_request(header, remaining)?)),
2749 sync::QUERY_FENCE_REQUEST => return Ok(Request::SyncQueryFence(sync::QueryFenceRequest::try_parse_request(header, remaining)?)),
2750 sync::AWAIT_FENCE_REQUEST => return Ok(Request::SyncAwaitFence(sync::AwaitFenceRequest::try_parse_request(header, remaining)?)),
2751 _ => (),
2752 }
2753 }
2754 Some((xc_misc::X11_EXTENSION_NAME, _)) => {
2755 match header.minor_opcode {
2756 xc_misc::GET_VERSION_REQUEST => return Ok(Request::XcMiscGetVersion(xc_misc::GetVersionRequest::try_parse_request(header, remaining)?)),
2757 xc_misc::GET_XID_RANGE_REQUEST => return Ok(Request::XcMiscGetXIDRange(xc_misc::GetXIDRangeRequest::try_parse_request(header, remaining)?)),
2758 xc_misc::GET_XID_LIST_REQUEST => return Ok(Request::XcMiscGetXIDList(xc_misc::GetXIDListRequest::try_parse_request(header, remaining)?)),
2759 _ => (),
2760 }
2761 }
2762 #[cfg(feature = "xevie")]
2763 Some((xevie::X11_EXTENSION_NAME, _)) => {
2764 match header.minor_opcode {
2765 xevie::QUERY_VERSION_REQUEST => return Ok(Request::XevieQueryVersion(xevie::QueryVersionRequest::try_parse_request(header, remaining)?)),
2766 xevie::START_REQUEST => return Ok(Request::XevieStart(xevie::StartRequest::try_parse_request(header, remaining)?)),
2767 xevie::END_REQUEST => return Ok(Request::XevieEnd(xevie::EndRequest::try_parse_request(header, remaining)?)),
2768 xevie::SEND_REQUEST => return Ok(Request::XevieSend(xevie::SendRequest::try_parse_request(header, remaining)?)),
2769 xevie::SELECT_INPUT_REQUEST => return Ok(Request::XevieSelectInput(xevie::SelectInputRequest::try_parse_request(header, remaining)?)),
2770 _ => (),
2771 }
2772 }
2773 #[cfg(feature = "xf86dri")]
2774 Some((xf86dri::X11_EXTENSION_NAME, _)) => {
2775 match header.minor_opcode {
2776 xf86dri::QUERY_VERSION_REQUEST => return Ok(Request::Xf86driQueryVersion(xf86dri::QueryVersionRequest::try_parse_request(header, remaining)?)),
2777 xf86dri::QUERY_DIRECT_RENDERING_CAPABLE_REQUEST => return Ok(Request::Xf86driQueryDirectRenderingCapable(xf86dri::QueryDirectRenderingCapableRequest::try_parse_request(header, remaining)?)),
2778 xf86dri::OPEN_CONNECTION_REQUEST => return Ok(Request::Xf86driOpenConnection(xf86dri::OpenConnectionRequest::try_parse_request(header, remaining)?)),
2779 xf86dri::CLOSE_CONNECTION_REQUEST => return Ok(Request::Xf86driCloseConnection(xf86dri::CloseConnectionRequest::try_parse_request(header, remaining)?)),
2780 xf86dri::GET_CLIENT_DRIVER_NAME_REQUEST => return Ok(Request::Xf86driGetClientDriverName(xf86dri::GetClientDriverNameRequest::try_parse_request(header, remaining)?)),
2781 xf86dri::CREATE_CONTEXT_REQUEST => return Ok(Request::Xf86driCreateContext(xf86dri::CreateContextRequest::try_parse_request(header, remaining)?)),
2782 xf86dri::DESTROY_CONTEXT_REQUEST => return Ok(Request::Xf86driDestroyContext(xf86dri::DestroyContextRequest::try_parse_request(header, remaining)?)),
2783 xf86dri::CREATE_DRAWABLE_REQUEST => return Ok(Request::Xf86driCreateDrawable(xf86dri::CreateDrawableRequest::try_parse_request(header, remaining)?)),
2784 xf86dri::DESTROY_DRAWABLE_REQUEST => return Ok(Request::Xf86driDestroyDrawable(xf86dri::DestroyDrawableRequest::try_parse_request(header, remaining)?)),
2785 xf86dri::GET_DRAWABLE_INFO_REQUEST => return Ok(Request::Xf86driGetDrawableInfo(xf86dri::GetDrawableInfoRequest::try_parse_request(header, remaining)?)),
2786 xf86dri::GET_DEVICE_INFO_REQUEST => return Ok(Request::Xf86driGetDeviceInfo(xf86dri::GetDeviceInfoRequest::try_parse_request(header, remaining)?)),
2787 xf86dri::AUTH_CONNECTION_REQUEST => return Ok(Request::Xf86driAuthConnection(xf86dri::AuthConnectionRequest::try_parse_request(header, remaining)?)),
2788 _ => (),
2789 }
2790 }
2791 #[cfg(feature = "xf86vidmode")]
2792 Some((xf86vidmode::X11_EXTENSION_NAME, _)) => {
2793 match header.minor_opcode {
2794 xf86vidmode::QUERY_VERSION_REQUEST => return Ok(Request::Xf86vidmodeQueryVersion(xf86vidmode::QueryVersionRequest::try_parse_request(header, remaining)?)),
2795 xf86vidmode::GET_MODE_LINE_REQUEST => return Ok(Request::Xf86vidmodeGetModeLine(xf86vidmode::GetModeLineRequest::try_parse_request(header, remaining)?)),
2796 xf86vidmode::MOD_MODE_LINE_REQUEST => return Ok(Request::Xf86vidmodeModModeLine(xf86vidmode::ModModeLineRequest::try_parse_request(header, remaining)?)),
2797 xf86vidmode::SWITCH_MODE_REQUEST => return Ok(Request::Xf86vidmodeSwitchMode(xf86vidmode::SwitchModeRequest::try_parse_request(header, remaining)?)),
2798 xf86vidmode::GET_MONITOR_REQUEST => return Ok(Request::Xf86vidmodeGetMonitor(xf86vidmode::GetMonitorRequest::try_parse_request(header, remaining)?)),
2799 xf86vidmode::LOCK_MODE_SWITCH_REQUEST => return Ok(Request::Xf86vidmodeLockModeSwitch(xf86vidmode::LockModeSwitchRequest::try_parse_request(header, remaining)?)),
2800 xf86vidmode::GET_ALL_MODE_LINES_REQUEST => return Ok(Request::Xf86vidmodeGetAllModeLines(xf86vidmode::GetAllModeLinesRequest::try_parse_request(header, remaining)?)),
2801 xf86vidmode::ADD_MODE_LINE_REQUEST => return Ok(Request::Xf86vidmodeAddModeLine(xf86vidmode::AddModeLineRequest::try_parse_request(header, remaining)?)),
2802 xf86vidmode::DELETE_MODE_LINE_REQUEST => return Ok(Request::Xf86vidmodeDeleteModeLine(xf86vidmode::DeleteModeLineRequest::try_parse_request(header, remaining)?)),
2803 xf86vidmode::VALIDATE_MODE_LINE_REQUEST => return Ok(Request::Xf86vidmodeValidateModeLine(xf86vidmode::ValidateModeLineRequest::try_parse_request(header, remaining)?)),
2804 xf86vidmode::SWITCH_TO_MODE_REQUEST => return Ok(Request::Xf86vidmodeSwitchToMode(xf86vidmode::SwitchToModeRequest::try_parse_request(header, remaining)?)),
2805 xf86vidmode::GET_VIEW_PORT_REQUEST => return Ok(Request::Xf86vidmodeGetViewPort(xf86vidmode::GetViewPortRequest::try_parse_request(header, remaining)?)),
2806 xf86vidmode::SET_VIEW_PORT_REQUEST => return Ok(Request::Xf86vidmodeSetViewPort(xf86vidmode::SetViewPortRequest::try_parse_request(header, remaining)?)),
2807 xf86vidmode::GET_DOT_CLOCKS_REQUEST => return Ok(Request::Xf86vidmodeGetDotClocks(xf86vidmode::GetDotClocksRequest::try_parse_request(header, remaining)?)),
2808 xf86vidmode::SET_CLIENT_VERSION_REQUEST => return Ok(Request::Xf86vidmodeSetClientVersion(xf86vidmode::SetClientVersionRequest::try_parse_request(header, remaining)?)),
2809 xf86vidmode::SET_GAMMA_REQUEST => return Ok(Request::Xf86vidmodeSetGamma(xf86vidmode::SetGammaRequest::try_parse_request(header, remaining)?)),
2810 xf86vidmode::GET_GAMMA_REQUEST => return Ok(Request::Xf86vidmodeGetGamma(xf86vidmode::GetGammaRequest::try_parse_request(header, remaining)?)),
2811 xf86vidmode::GET_GAMMA_RAMP_REQUEST => return Ok(Request::Xf86vidmodeGetGammaRamp(xf86vidmode::GetGammaRampRequest::try_parse_request(header, remaining)?)),
2812 xf86vidmode::SET_GAMMA_RAMP_REQUEST => return Ok(Request::Xf86vidmodeSetGammaRamp(xf86vidmode::SetGammaRampRequest::try_parse_request(header, remaining)?)),
2813 xf86vidmode::GET_GAMMA_RAMP_SIZE_REQUEST => return Ok(Request::Xf86vidmodeGetGammaRampSize(xf86vidmode::GetGammaRampSizeRequest::try_parse_request(header, remaining)?)),
2814 xf86vidmode::GET_PERMISSIONS_REQUEST => return Ok(Request::Xf86vidmodeGetPermissions(xf86vidmode::GetPermissionsRequest::try_parse_request(header, remaining)?)),
2815 _ => (),
2816 }
2817 }
2818 #[cfg(feature = "xfixes")]
2819 Some((xfixes::X11_EXTENSION_NAME, _)) => {
2820 match header.minor_opcode {
2821 xfixes::QUERY_VERSION_REQUEST => return Ok(Request::XfixesQueryVersion(xfixes::QueryVersionRequest::try_parse_request(header, remaining)?)),
2822 xfixes::CHANGE_SAVE_SET_REQUEST => return Ok(Request::XfixesChangeSaveSet(xfixes::ChangeSaveSetRequest::try_parse_request(header, remaining)?)),
2823 xfixes::SELECT_SELECTION_INPUT_REQUEST => return Ok(Request::XfixesSelectSelectionInput(xfixes::SelectSelectionInputRequest::try_parse_request(header, remaining)?)),
2824 xfixes::SELECT_CURSOR_INPUT_REQUEST => return Ok(Request::XfixesSelectCursorInput(xfixes::SelectCursorInputRequest::try_parse_request(header, remaining)?)),
2825 xfixes::GET_CURSOR_IMAGE_REQUEST => return Ok(Request::XfixesGetCursorImage(xfixes::GetCursorImageRequest::try_parse_request(header, remaining)?)),
2826 xfixes::CREATE_REGION_REQUEST => return Ok(Request::XfixesCreateRegion(xfixes::CreateRegionRequest::try_parse_request(header, remaining)?)),
2827 xfixes::CREATE_REGION_FROM_BITMAP_REQUEST => return Ok(Request::XfixesCreateRegionFromBitmap(xfixes::CreateRegionFromBitmapRequest::try_parse_request(header, remaining)?)),
2828 xfixes::CREATE_REGION_FROM_WINDOW_REQUEST => return Ok(Request::XfixesCreateRegionFromWindow(xfixes::CreateRegionFromWindowRequest::try_parse_request(header, remaining)?)),
2829 xfixes::CREATE_REGION_FROM_GC_REQUEST => return Ok(Request::XfixesCreateRegionFromGC(xfixes::CreateRegionFromGCRequest::try_parse_request(header, remaining)?)),
2830 xfixes::CREATE_REGION_FROM_PICTURE_REQUEST => return Ok(Request::XfixesCreateRegionFromPicture(xfixes::CreateRegionFromPictureRequest::try_parse_request(header, remaining)?)),
2831 xfixes::DESTROY_REGION_REQUEST => return Ok(Request::XfixesDestroyRegion(xfixes::DestroyRegionRequest::try_parse_request(header, remaining)?)),
2832 xfixes::SET_REGION_REQUEST => return Ok(Request::XfixesSetRegion(xfixes::SetRegionRequest::try_parse_request(header, remaining)?)),
2833 xfixes::COPY_REGION_REQUEST => return Ok(Request::XfixesCopyRegion(xfixes::CopyRegionRequest::try_parse_request(header, remaining)?)),
2834 xfixes::UNION_REGION_REQUEST => return Ok(Request::XfixesUnionRegion(xfixes::UnionRegionRequest::try_parse_request(header, remaining)?)),
2835 xfixes::INTERSECT_REGION_REQUEST => return Ok(Request::XfixesIntersectRegion(xfixes::IntersectRegionRequest::try_parse_request(header, remaining)?)),
2836 xfixes::SUBTRACT_REGION_REQUEST => return Ok(Request::XfixesSubtractRegion(xfixes::SubtractRegionRequest::try_parse_request(header, remaining)?)),
2837 xfixes::INVERT_REGION_REQUEST => return Ok(Request::XfixesInvertRegion(xfixes::InvertRegionRequest::try_parse_request(header, remaining)?)),
2838 xfixes::TRANSLATE_REGION_REQUEST => return Ok(Request::XfixesTranslateRegion(xfixes::TranslateRegionRequest::try_parse_request(header, remaining)?)),
2839 xfixes::REGION_EXTENTS_REQUEST => return Ok(Request::XfixesRegionExtents(xfixes::RegionExtentsRequest::try_parse_request(header, remaining)?)),
2840 xfixes::FETCH_REGION_REQUEST => return Ok(Request::XfixesFetchRegion(xfixes::FetchRegionRequest::try_parse_request(header, remaining)?)),
2841 xfixes::SET_GC_CLIP_REGION_REQUEST => return Ok(Request::XfixesSetGCClipRegion(xfixes::SetGCClipRegionRequest::try_parse_request(header, remaining)?)),
2842 xfixes::SET_WINDOW_SHAPE_REGION_REQUEST => return Ok(Request::XfixesSetWindowShapeRegion(xfixes::SetWindowShapeRegionRequest::try_parse_request(header, remaining)?)),
2843 xfixes::SET_PICTURE_CLIP_REGION_REQUEST => return Ok(Request::XfixesSetPictureClipRegion(xfixes::SetPictureClipRegionRequest::try_parse_request(header, remaining)?)),
2844 xfixes::SET_CURSOR_NAME_REQUEST => return Ok(Request::XfixesSetCursorName(xfixes::SetCursorNameRequest::try_parse_request(header, remaining)?)),
2845 xfixes::GET_CURSOR_NAME_REQUEST => return Ok(Request::XfixesGetCursorName(xfixes::GetCursorNameRequest::try_parse_request(header, remaining)?)),
2846 xfixes::GET_CURSOR_IMAGE_AND_NAME_REQUEST => return Ok(Request::XfixesGetCursorImageAndName(xfixes::GetCursorImageAndNameRequest::try_parse_request(header, remaining)?)),
2847 xfixes::CHANGE_CURSOR_REQUEST => return Ok(Request::XfixesChangeCursor(xfixes::ChangeCursorRequest::try_parse_request(header, remaining)?)),
2848 xfixes::CHANGE_CURSOR_BY_NAME_REQUEST => return Ok(Request::XfixesChangeCursorByName(xfixes::ChangeCursorByNameRequest::try_parse_request(header, remaining)?)),
2849 xfixes::EXPAND_REGION_REQUEST => return Ok(Request::XfixesExpandRegion(xfixes::ExpandRegionRequest::try_parse_request(header, remaining)?)),
2850 xfixes::HIDE_CURSOR_REQUEST => return Ok(Request::XfixesHideCursor(xfixes::HideCursorRequest::try_parse_request(header, remaining)?)),
2851 xfixes::SHOW_CURSOR_REQUEST => return Ok(Request::XfixesShowCursor(xfixes::ShowCursorRequest::try_parse_request(header, remaining)?)),
2852 xfixes::CREATE_POINTER_BARRIER_REQUEST => return Ok(Request::XfixesCreatePointerBarrier(xfixes::CreatePointerBarrierRequest::try_parse_request(header, remaining)?)),
2853 xfixes::DELETE_POINTER_BARRIER_REQUEST => return Ok(Request::XfixesDeletePointerBarrier(xfixes::DeletePointerBarrierRequest::try_parse_request(header, remaining)?)),
2854 xfixes::SET_CLIENT_DISCONNECT_MODE_REQUEST => return Ok(Request::XfixesSetClientDisconnectMode(xfixes::SetClientDisconnectModeRequest::try_parse_request(header, remaining)?)),
2855 xfixes::GET_CLIENT_DISCONNECT_MODE_REQUEST => return Ok(Request::XfixesGetClientDisconnectMode(xfixes::GetClientDisconnectModeRequest::try_parse_request(header, remaining)?)),
2856 _ => (),
2857 }
2858 }
2859 #[cfg(feature = "xinerama")]
2860 Some((xinerama::X11_EXTENSION_NAME, _)) => {
2861 match header.minor_opcode {
2862 xinerama::QUERY_VERSION_REQUEST => return Ok(Request::XineramaQueryVersion(xinerama::QueryVersionRequest::try_parse_request(header, remaining)?)),
2863 xinerama::GET_STATE_REQUEST => return Ok(Request::XineramaGetState(xinerama::GetStateRequest::try_parse_request(header, remaining)?)),
2864 xinerama::GET_SCREEN_COUNT_REQUEST => return Ok(Request::XineramaGetScreenCount(xinerama::GetScreenCountRequest::try_parse_request(header, remaining)?)),
2865 xinerama::GET_SCREEN_SIZE_REQUEST => return Ok(Request::XineramaGetScreenSize(xinerama::GetScreenSizeRequest::try_parse_request(header, remaining)?)),
2866 xinerama::IS_ACTIVE_REQUEST => return Ok(Request::XineramaIsActive(xinerama::IsActiveRequest::try_parse_request(header, remaining)?)),
2867 xinerama::QUERY_SCREENS_REQUEST => return Ok(Request::XineramaQueryScreens(xinerama::QueryScreensRequest::try_parse_request(header, remaining)?)),
2868 _ => (),
2869 }
2870 }
2871 #[cfg(feature = "xinput")]
2872 Some((xinput::X11_EXTENSION_NAME, _)) => {
2873 match header.minor_opcode {
2874 xinput::GET_EXTENSION_VERSION_REQUEST => return Ok(Request::XinputGetExtensionVersion(xinput::GetExtensionVersionRequest::try_parse_request(header, remaining)?)),
2875 xinput::LIST_INPUT_DEVICES_REQUEST => return Ok(Request::XinputListInputDevices(xinput::ListInputDevicesRequest::try_parse_request(header, remaining)?)),
2876 xinput::OPEN_DEVICE_REQUEST => return Ok(Request::XinputOpenDevice(xinput::OpenDeviceRequest::try_parse_request(header, remaining)?)),
2877 xinput::CLOSE_DEVICE_REQUEST => return Ok(Request::XinputCloseDevice(xinput::CloseDeviceRequest::try_parse_request(header, remaining)?)),
2878 xinput::SET_DEVICE_MODE_REQUEST => return Ok(Request::XinputSetDeviceMode(xinput::SetDeviceModeRequest::try_parse_request(header, remaining)?)),
2879 xinput::SELECT_EXTENSION_EVENT_REQUEST => return Ok(Request::XinputSelectExtensionEvent(xinput::SelectExtensionEventRequest::try_parse_request(header, remaining)?)),
2880 xinput::GET_SELECTED_EXTENSION_EVENTS_REQUEST => return Ok(Request::XinputGetSelectedExtensionEvents(xinput::GetSelectedExtensionEventsRequest::try_parse_request(header, remaining)?)),
2881 xinput::CHANGE_DEVICE_DONT_PROPAGATE_LIST_REQUEST => return Ok(Request::XinputChangeDeviceDontPropagateList(xinput::ChangeDeviceDontPropagateListRequest::try_parse_request(header, remaining)?)),
2882 xinput::GET_DEVICE_DONT_PROPAGATE_LIST_REQUEST => return Ok(Request::XinputGetDeviceDontPropagateList(xinput::GetDeviceDontPropagateListRequest::try_parse_request(header, remaining)?)),
2883 xinput::GET_DEVICE_MOTION_EVENTS_REQUEST => return Ok(Request::XinputGetDeviceMotionEvents(xinput::GetDeviceMotionEventsRequest::try_parse_request(header, remaining)?)),
2884 xinput::CHANGE_KEYBOARD_DEVICE_REQUEST => return Ok(Request::XinputChangeKeyboardDevice(xinput::ChangeKeyboardDeviceRequest::try_parse_request(header, remaining)?)),
2885 xinput::CHANGE_POINTER_DEVICE_REQUEST => return Ok(Request::XinputChangePointerDevice(xinput::ChangePointerDeviceRequest::try_parse_request(header, remaining)?)),
2886 xinput::GRAB_DEVICE_REQUEST => return Ok(Request::XinputGrabDevice(xinput::GrabDeviceRequest::try_parse_request(header, remaining)?)),
2887 xinput::UNGRAB_DEVICE_REQUEST => return Ok(Request::XinputUngrabDevice(xinput::UngrabDeviceRequest::try_parse_request(header, remaining)?)),
2888 xinput::GRAB_DEVICE_KEY_REQUEST => return Ok(Request::XinputGrabDeviceKey(xinput::GrabDeviceKeyRequest::try_parse_request(header, remaining)?)),
2889 xinput::UNGRAB_DEVICE_KEY_REQUEST => return Ok(Request::XinputUngrabDeviceKey(xinput::UngrabDeviceKeyRequest::try_parse_request(header, remaining)?)),
2890 xinput::GRAB_DEVICE_BUTTON_REQUEST => return Ok(Request::XinputGrabDeviceButton(xinput::GrabDeviceButtonRequest::try_parse_request(header, remaining)?)),
2891 xinput::UNGRAB_DEVICE_BUTTON_REQUEST => return Ok(Request::XinputUngrabDeviceButton(xinput::UngrabDeviceButtonRequest::try_parse_request(header, remaining)?)),
2892 xinput::ALLOW_DEVICE_EVENTS_REQUEST => return Ok(Request::XinputAllowDeviceEvents(xinput::AllowDeviceEventsRequest::try_parse_request(header, remaining)?)),
2893 xinput::GET_DEVICE_FOCUS_REQUEST => return Ok(Request::XinputGetDeviceFocus(xinput::GetDeviceFocusRequest::try_parse_request(header, remaining)?)),
2894 xinput::SET_DEVICE_FOCUS_REQUEST => return Ok(Request::XinputSetDeviceFocus(xinput::SetDeviceFocusRequest::try_parse_request(header, remaining)?)),
2895 xinput::GET_FEEDBACK_CONTROL_REQUEST => return Ok(Request::XinputGetFeedbackControl(xinput::GetFeedbackControlRequest::try_parse_request(header, remaining)?)),
2896 xinput::CHANGE_FEEDBACK_CONTROL_REQUEST => return Ok(Request::XinputChangeFeedbackControl(xinput::ChangeFeedbackControlRequest::try_parse_request(header, remaining)?)),
2897 xinput::GET_DEVICE_KEY_MAPPING_REQUEST => return Ok(Request::XinputGetDeviceKeyMapping(xinput::GetDeviceKeyMappingRequest::try_parse_request(header, remaining)?)),
2898 xinput::CHANGE_DEVICE_KEY_MAPPING_REQUEST => return Ok(Request::XinputChangeDeviceKeyMapping(xinput::ChangeDeviceKeyMappingRequest::try_parse_request(header, remaining)?)),
2899 xinput::GET_DEVICE_MODIFIER_MAPPING_REQUEST => return Ok(Request::XinputGetDeviceModifierMapping(xinput::GetDeviceModifierMappingRequest::try_parse_request(header, remaining)?)),
2900 xinput::SET_DEVICE_MODIFIER_MAPPING_REQUEST => return Ok(Request::XinputSetDeviceModifierMapping(xinput::SetDeviceModifierMappingRequest::try_parse_request(header, remaining)?)),
2901 xinput::GET_DEVICE_BUTTON_MAPPING_REQUEST => return Ok(Request::XinputGetDeviceButtonMapping(xinput::GetDeviceButtonMappingRequest::try_parse_request(header, remaining)?)),
2902 xinput::SET_DEVICE_BUTTON_MAPPING_REQUEST => return Ok(Request::XinputSetDeviceButtonMapping(xinput::SetDeviceButtonMappingRequest::try_parse_request(header, remaining)?)),
2903 xinput::QUERY_DEVICE_STATE_REQUEST => return Ok(Request::XinputQueryDeviceState(xinput::QueryDeviceStateRequest::try_parse_request(header, remaining)?)),
2904 xinput::DEVICE_BELL_REQUEST => return Ok(Request::XinputDeviceBell(xinput::DeviceBellRequest::try_parse_request(header, remaining)?)),
2905 xinput::SET_DEVICE_VALUATORS_REQUEST => return Ok(Request::XinputSetDeviceValuators(xinput::SetDeviceValuatorsRequest::try_parse_request(header, remaining)?)),
2906 xinput::GET_DEVICE_CONTROL_REQUEST => return Ok(Request::XinputGetDeviceControl(xinput::GetDeviceControlRequest::try_parse_request(header, remaining)?)),
2907 xinput::CHANGE_DEVICE_CONTROL_REQUEST => return Ok(Request::XinputChangeDeviceControl(xinput::ChangeDeviceControlRequest::try_parse_request(header, remaining)?)),
2908 xinput::LIST_DEVICE_PROPERTIES_REQUEST => return Ok(Request::XinputListDeviceProperties(xinput::ListDevicePropertiesRequest::try_parse_request(header, remaining)?)),
2909 xinput::CHANGE_DEVICE_PROPERTY_REQUEST => return Ok(Request::XinputChangeDeviceProperty(xinput::ChangeDevicePropertyRequest::try_parse_request(header, remaining)?)),
2910 xinput::DELETE_DEVICE_PROPERTY_REQUEST => return Ok(Request::XinputDeleteDeviceProperty(xinput::DeleteDevicePropertyRequest::try_parse_request(header, remaining)?)),
2911 xinput::GET_DEVICE_PROPERTY_REQUEST => return Ok(Request::XinputGetDeviceProperty(xinput::GetDevicePropertyRequest::try_parse_request(header, remaining)?)),
2912 xinput::XI_QUERY_POINTER_REQUEST => return Ok(Request::XinputXIQueryPointer(xinput::XIQueryPointerRequest::try_parse_request(header, remaining)?)),
2913 xinput::XI_WARP_POINTER_REQUEST => return Ok(Request::XinputXIWarpPointer(xinput::XIWarpPointerRequest::try_parse_request(header, remaining)?)),
2914 xinput::XI_CHANGE_CURSOR_REQUEST => return Ok(Request::XinputXIChangeCursor(xinput::XIChangeCursorRequest::try_parse_request(header, remaining)?)),
2915 xinput::XI_CHANGE_HIERARCHY_REQUEST => return Ok(Request::XinputXIChangeHierarchy(xinput::XIChangeHierarchyRequest::try_parse_request(header, remaining)?)),
2916 xinput::XI_SET_CLIENT_POINTER_REQUEST => return Ok(Request::XinputXISetClientPointer(xinput::XISetClientPointerRequest::try_parse_request(header, remaining)?)),
2917 xinput::XI_GET_CLIENT_POINTER_REQUEST => return Ok(Request::XinputXIGetClientPointer(xinput::XIGetClientPointerRequest::try_parse_request(header, remaining)?)),
2918 xinput::XI_SELECT_EVENTS_REQUEST => return Ok(Request::XinputXISelectEvents(xinput::XISelectEventsRequest::try_parse_request(header, remaining)?)),
2919 xinput::XI_QUERY_VERSION_REQUEST => return Ok(Request::XinputXIQueryVersion(xinput::XIQueryVersionRequest::try_parse_request(header, remaining)?)),
2920 xinput::XI_QUERY_DEVICE_REQUEST => return Ok(Request::XinputXIQueryDevice(xinput::XIQueryDeviceRequest::try_parse_request(header, remaining)?)),
2921 xinput::XI_SET_FOCUS_REQUEST => return Ok(Request::XinputXISetFocus(xinput::XISetFocusRequest::try_parse_request(header, remaining)?)),
2922 xinput::XI_GET_FOCUS_REQUEST => return Ok(Request::XinputXIGetFocus(xinput::XIGetFocusRequest::try_parse_request(header, remaining)?)),
2923 xinput::XI_GRAB_DEVICE_REQUEST => return Ok(Request::XinputXIGrabDevice(xinput::XIGrabDeviceRequest::try_parse_request(header, remaining)?)),
2924 xinput::XI_UNGRAB_DEVICE_REQUEST => return Ok(Request::XinputXIUngrabDevice(xinput::XIUngrabDeviceRequest::try_parse_request(header, remaining)?)),
2925 xinput::XI_ALLOW_EVENTS_REQUEST => return Ok(Request::XinputXIAllowEvents(xinput::XIAllowEventsRequest::try_parse_request(header, remaining)?)),
2926 xinput::XI_PASSIVE_GRAB_DEVICE_REQUEST => return Ok(Request::XinputXIPassiveGrabDevice(xinput::XIPassiveGrabDeviceRequest::try_parse_request(header, remaining)?)),
2927 xinput::XI_PASSIVE_UNGRAB_DEVICE_REQUEST => return Ok(Request::XinputXIPassiveUngrabDevice(xinput::XIPassiveUngrabDeviceRequest::try_parse_request(header, remaining)?)),
2928 xinput::XI_LIST_PROPERTIES_REQUEST => return Ok(Request::XinputXIListProperties(xinput::XIListPropertiesRequest::try_parse_request(header, remaining)?)),
2929 xinput::XI_CHANGE_PROPERTY_REQUEST => return Ok(Request::XinputXIChangeProperty(xinput::XIChangePropertyRequest::try_parse_request(header, remaining)?)),
2930 xinput::XI_DELETE_PROPERTY_REQUEST => return Ok(Request::XinputXIDeleteProperty(xinput::XIDeletePropertyRequest::try_parse_request(header, remaining)?)),
2931 xinput::XI_GET_PROPERTY_REQUEST => return Ok(Request::XinputXIGetProperty(xinput::XIGetPropertyRequest::try_parse_request(header, remaining)?)),
2932 xinput::XI_GET_SELECTED_EVENTS_REQUEST => return Ok(Request::XinputXIGetSelectedEvents(xinput::XIGetSelectedEventsRequest::try_parse_request(header, remaining)?)),
2933 xinput::XI_BARRIER_RELEASE_POINTER_REQUEST => return Ok(Request::XinputXIBarrierReleasePointer(xinput::XIBarrierReleasePointerRequest::try_parse_request(header, remaining)?)),
2934 xinput::SEND_EXTENSION_EVENT_REQUEST => return Ok(Request::XinputSendExtensionEvent(xinput::SendExtensionEventRequest::try_parse_request(header, remaining)?)),
2935 _ => (),
2936 }
2937 }
2938 #[cfg(feature = "xkb")]
2939 Some((xkb::X11_EXTENSION_NAME, _)) => {
2940 match header.minor_opcode {
2941 xkb::USE_EXTENSION_REQUEST => return Ok(Request::XkbUseExtension(xkb::UseExtensionRequest::try_parse_request(header, remaining)?)),
2942 xkb::SELECT_EVENTS_REQUEST => return Ok(Request::XkbSelectEvents(xkb::SelectEventsRequest::try_parse_request(header, remaining)?)),
2943 xkb::BELL_REQUEST => return Ok(Request::XkbBell(xkb::BellRequest::try_parse_request(header, remaining)?)),
2944 xkb::GET_STATE_REQUEST => return Ok(Request::XkbGetState(xkb::GetStateRequest::try_parse_request(header, remaining)?)),
2945 xkb::LATCH_LOCK_STATE_REQUEST => return Ok(Request::XkbLatchLockState(xkb::LatchLockStateRequest::try_parse_request(header, remaining)?)),
2946 xkb::GET_CONTROLS_REQUEST => return Ok(Request::XkbGetControls(xkb::GetControlsRequest::try_parse_request(header, remaining)?)),
2947 xkb::SET_CONTROLS_REQUEST => return Ok(Request::XkbSetControls(xkb::SetControlsRequest::try_parse_request(header, remaining)?)),
2948 xkb::GET_MAP_REQUEST => return Ok(Request::XkbGetMap(xkb::GetMapRequest::try_parse_request(header, remaining)?)),
2949 xkb::SET_MAP_REQUEST => return Ok(Request::XkbSetMap(xkb::SetMapRequest::try_parse_request(header, remaining)?)),
2950 xkb::GET_COMPAT_MAP_REQUEST => return Ok(Request::XkbGetCompatMap(xkb::GetCompatMapRequest::try_parse_request(header, remaining)?)),
2951 xkb::SET_COMPAT_MAP_REQUEST => return Ok(Request::XkbSetCompatMap(xkb::SetCompatMapRequest::try_parse_request(header, remaining)?)),
2952 xkb::GET_INDICATOR_STATE_REQUEST => return Ok(Request::XkbGetIndicatorState(xkb::GetIndicatorStateRequest::try_parse_request(header, remaining)?)),
2953 xkb::GET_INDICATOR_MAP_REQUEST => return Ok(Request::XkbGetIndicatorMap(xkb::GetIndicatorMapRequest::try_parse_request(header, remaining)?)),
2954 xkb::SET_INDICATOR_MAP_REQUEST => return Ok(Request::XkbSetIndicatorMap(xkb::SetIndicatorMapRequest::try_parse_request(header, remaining)?)),
2955 xkb::GET_NAMED_INDICATOR_REQUEST => return Ok(Request::XkbGetNamedIndicator(xkb::GetNamedIndicatorRequest::try_parse_request(header, remaining)?)),
2956 xkb::SET_NAMED_INDICATOR_REQUEST => return Ok(Request::XkbSetNamedIndicator(xkb::SetNamedIndicatorRequest::try_parse_request(header, remaining)?)),
2957 xkb::GET_NAMES_REQUEST => return Ok(Request::XkbGetNames(xkb::GetNamesRequest::try_parse_request(header, remaining)?)),
2958 xkb::SET_NAMES_REQUEST => return Ok(Request::XkbSetNames(xkb::SetNamesRequest::try_parse_request(header, remaining)?)),
2959 xkb::PER_CLIENT_FLAGS_REQUEST => return Ok(Request::XkbPerClientFlags(xkb::PerClientFlagsRequest::try_parse_request(header, remaining)?)),
2960 xkb::LIST_COMPONENTS_REQUEST => return Ok(Request::XkbListComponents(xkb::ListComponentsRequest::try_parse_request(header, remaining)?)),
2961 xkb::GET_KBD_BY_NAME_REQUEST => return Ok(Request::XkbGetKbdByName(xkb::GetKbdByNameRequest::try_parse_request(header, remaining)?)),
2962 xkb::GET_DEVICE_INFO_REQUEST => return Ok(Request::XkbGetDeviceInfo(xkb::GetDeviceInfoRequest::try_parse_request(header, remaining)?)),
2963 xkb::SET_DEVICE_INFO_REQUEST => return Ok(Request::XkbSetDeviceInfo(xkb::SetDeviceInfoRequest::try_parse_request(header, remaining)?)),
2964 xkb::SET_DEBUGGING_FLAGS_REQUEST => return Ok(Request::XkbSetDebuggingFlags(xkb::SetDebuggingFlagsRequest::try_parse_request(header, remaining)?)),
2965 _ => (),
2966 }
2967 }
2968 #[cfg(feature = "xprint")]
2969 Some((xprint::X11_EXTENSION_NAME, _)) => {
2970 match header.minor_opcode {
2971 xprint::PRINT_QUERY_VERSION_REQUEST => return Ok(Request::XprintPrintQueryVersion(xprint::PrintQueryVersionRequest::try_parse_request(header, remaining)?)),
2972 xprint::PRINT_GET_PRINTER_LIST_REQUEST => return Ok(Request::XprintPrintGetPrinterList(xprint::PrintGetPrinterListRequest::try_parse_request(header, remaining)?)),
2973 xprint::PRINT_REHASH_PRINTER_LIST_REQUEST => return Ok(Request::XprintPrintRehashPrinterList(xprint::PrintRehashPrinterListRequest::try_parse_request(header, remaining)?)),
2974 xprint::CREATE_CONTEXT_REQUEST => return Ok(Request::XprintCreateContext(xprint::CreateContextRequest::try_parse_request(header, remaining)?)),
2975 xprint::PRINT_SET_CONTEXT_REQUEST => return Ok(Request::XprintPrintSetContext(xprint::PrintSetContextRequest::try_parse_request(header, remaining)?)),
2976 xprint::PRINT_GET_CONTEXT_REQUEST => return Ok(Request::XprintPrintGetContext(xprint::PrintGetContextRequest::try_parse_request(header, remaining)?)),
2977 xprint::PRINT_DESTROY_CONTEXT_REQUEST => return Ok(Request::XprintPrintDestroyContext(xprint::PrintDestroyContextRequest::try_parse_request(header, remaining)?)),
2978 xprint::PRINT_GET_SCREEN_OF_CONTEXT_REQUEST => return Ok(Request::XprintPrintGetScreenOfContext(xprint::PrintGetScreenOfContextRequest::try_parse_request(header, remaining)?)),
2979 xprint::PRINT_START_JOB_REQUEST => return Ok(Request::XprintPrintStartJob(xprint::PrintStartJobRequest::try_parse_request(header, remaining)?)),
2980 xprint::PRINT_END_JOB_REQUEST => return Ok(Request::XprintPrintEndJob(xprint::PrintEndJobRequest::try_parse_request(header, remaining)?)),
2981 xprint::PRINT_START_DOC_REQUEST => return Ok(Request::XprintPrintStartDoc(xprint::PrintStartDocRequest::try_parse_request(header, remaining)?)),
2982 xprint::PRINT_END_DOC_REQUEST => return Ok(Request::XprintPrintEndDoc(xprint::PrintEndDocRequest::try_parse_request(header, remaining)?)),
2983 xprint::PRINT_PUT_DOCUMENT_DATA_REQUEST => return Ok(Request::XprintPrintPutDocumentData(xprint::PrintPutDocumentDataRequest::try_parse_request(header, remaining)?)),
2984 xprint::PRINT_GET_DOCUMENT_DATA_REQUEST => return Ok(Request::XprintPrintGetDocumentData(xprint::PrintGetDocumentDataRequest::try_parse_request(header, remaining)?)),
2985 xprint::PRINT_START_PAGE_REQUEST => return Ok(Request::XprintPrintStartPage(xprint::PrintStartPageRequest::try_parse_request(header, remaining)?)),
2986 xprint::PRINT_END_PAGE_REQUEST => return Ok(Request::XprintPrintEndPage(xprint::PrintEndPageRequest::try_parse_request(header, remaining)?)),
2987 xprint::PRINT_SELECT_INPUT_REQUEST => return Ok(Request::XprintPrintSelectInput(xprint::PrintSelectInputRequest::try_parse_request(header, remaining)?)),
2988 xprint::PRINT_INPUT_SELECTED_REQUEST => return Ok(Request::XprintPrintInputSelected(xprint::PrintInputSelectedRequest::try_parse_request(header, remaining)?)),
2989 xprint::PRINT_GET_ATTRIBUTES_REQUEST => return Ok(Request::XprintPrintGetAttributes(xprint::PrintGetAttributesRequest::try_parse_request(header, remaining)?)),
2990 xprint::PRINT_GET_ONE_ATTRIBUTES_REQUEST => return Ok(Request::XprintPrintGetOneAttributes(xprint::PrintGetOneAttributesRequest::try_parse_request(header, remaining)?)),
2991 xprint::PRINT_SET_ATTRIBUTES_REQUEST => return Ok(Request::XprintPrintSetAttributes(xprint::PrintSetAttributesRequest::try_parse_request(header, remaining)?)),
2992 xprint::PRINT_GET_PAGE_DIMENSIONS_REQUEST => return Ok(Request::XprintPrintGetPageDimensions(xprint::PrintGetPageDimensionsRequest::try_parse_request(header, remaining)?)),
2993 xprint::PRINT_QUERY_SCREENS_REQUEST => return Ok(Request::XprintPrintQueryScreens(xprint::PrintQueryScreensRequest::try_parse_request(header, remaining)?)),
2994 xprint::PRINT_SET_IMAGE_RESOLUTION_REQUEST => return Ok(Request::XprintPrintSetImageResolution(xprint::PrintSetImageResolutionRequest::try_parse_request(header, remaining)?)),
2995 xprint::PRINT_GET_IMAGE_RESOLUTION_REQUEST => return Ok(Request::XprintPrintGetImageResolution(xprint::PrintGetImageResolutionRequest::try_parse_request(header, remaining)?)),
2996 _ => (),
2997 }
2998 }
2999 #[cfg(feature = "xselinux")]
3000 Some((xselinux::X11_EXTENSION_NAME, _)) => {
3001 match header.minor_opcode {
3002 xselinux::QUERY_VERSION_REQUEST => return Ok(Request::XselinuxQueryVersion(xselinux::QueryVersionRequest::try_parse_request(header, remaining)?)),
3003 xselinux::SET_DEVICE_CREATE_CONTEXT_REQUEST => return Ok(Request::XselinuxSetDeviceCreateContext(xselinux::SetDeviceCreateContextRequest::try_parse_request(header, remaining)?)),
3004 xselinux::GET_DEVICE_CREATE_CONTEXT_REQUEST => return Ok(Request::XselinuxGetDeviceCreateContext(xselinux::GetDeviceCreateContextRequest::try_parse_request(header, remaining)?)),
3005 xselinux::SET_DEVICE_CONTEXT_REQUEST => return Ok(Request::XselinuxSetDeviceContext(xselinux::SetDeviceContextRequest::try_parse_request(header, remaining)?)),
3006 xselinux::GET_DEVICE_CONTEXT_REQUEST => return Ok(Request::XselinuxGetDeviceContext(xselinux::GetDeviceContextRequest::try_parse_request(header, remaining)?)),
3007 xselinux::SET_WINDOW_CREATE_CONTEXT_REQUEST => return Ok(Request::XselinuxSetWindowCreateContext(xselinux::SetWindowCreateContextRequest::try_parse_request(header, remaining)?)),
3008 xselinux::GET_WINDOW_CREATE_CONTEXT_REQUEST => return Ok(Request::XselinuxGetWindowCreateContext(xselinux::GetWindowCreateContextRequest::try_parse_request(header, remaining)?)),
3009 xselinux::GET_WINDOW_CONTEXT_REQUEST => return Ok(Request::XselinuxGetWindowContext(xselinux::GetWindowContextRequest::try_parse_request(header, remaining)?)),
3010 xselinux::SET_PROPERTY_CREATE_CONTEXT_REQUEST => return Ok(Request::XselinuxSetPropertyCreateContext(xselinux::SetPropertyCreateContextRequest::try_parse_request(header, remaining)?)),
3011 xselinux::GET_PROPERTY_CREATE_CONTEXT_REQUEST => return Ok(Request::XselinuxGetPropertyCreateContext(xselinux::GetPropertyCreateContextRequest::try_parse_request(header, remaining)?)),
3012 xselinux::SET_PROPERTY_USE_CONTEXT_REQUEST => return Ok(Request::XselinuxSetPropertyUseContext(xselinux::SetPropertyUseContextRequest::try_parse_request(header, remaining)?)),
3013 xselinux::GET_PROPERTY_USE_CONTEXT_REQUEST => return Ok(Request::XselinuxGetPropertyUseContext(xselinux::GetPropertyUseContextRequest::try_parse_request(header, remaining)?)),
3014 xselinux::GET_PROPERTY_CONTEXT_REQUEST => return Ok(Request::XselinuxGetPropertyContext(xselinux::GetPropertyContextRequest::try_parse_request(header, remaining)?)),
3015 xselinux::GET_PROPERTY_DATA_CONTEXT_REQUEST => return Ok(Request::XselinuxGetPropertyDataContext(xselinux::GetPropertyDataContextRequest::try_parse_request(header, remaining)?)),
3016 xselinux::LIST_PROPERTIES_REQUEST => return Ok(Request::XselinuxListProperties(xselinux::ListPropertiesRequest::try_parse_request(header, remaining)?)),
3017 xselinux::SET_SELECTION_CREATE_CONTEXT_REQUEST => return Ok(Request::XselinuxSetSelectionCreateContext(xselinux::SetSelectionCreateContextRequest::try_parse_request(header, remaining)?)),
3018 xselinux::GET_SELECTION_CREATE_CONTEXT_REQUEST => return Ok(Request::XselinuxGetSelectionCreateContext(xselinux::GetSelectionCreateContextRequest::try_parse_request(header, remaining)?)),
3019 xselinux::SET_SELECTION_USE_CONTEXT_REQUEST => return Ok(Request::XselinuxSetSelectionUseContext(xselinux::SetSelectionUseContextRequest::try_parse_request(header, remaining)?)),
3020 xselinux::GET_SELECTION_USE_CONTEXT_REQUEST => return Ok(Request::XselinuxGetSelectionUseContext(xselinux::GetSelectionUseContextRequest::try_parse_request(header, remaining)?)),
3021 xselinux::GET_SELECTION_CONTEXT_REQUEST => return Ok(Request::XselinuxGetSelectionContext(xselinux::GetSelectionContextRequest::try_parse_request(header, remaining)?)),
3022 xselinux::GET_SELECTION_DATA_CONTEXT_REQUEST => return Ok(Request::XselinuxGetSelectionDataContext(xselinux::GetSelectionDataContextRequest::try_parse_request(header, remaining)?)),
3023 xselinux::LIST_SELECTIONS_REQUEST => return Ok(Request::XselinuxListSelections(xselinux::ListSelectionsRequest::try_parse_request(header, remaining)?)),
3024 xselinux::GET_CLIENT_CONTEXT_REQUEST => return Ok(Request::XselinuxGetClientContext(xselinux::GetClientContextRequest::try_parse_request(header, remaining)?)),
3025 _ => (),
3026 }
3027 }
3028 #[cfg(feature = "xtest")]
3029 Some((xtest::X11_EXTENSION_NAME, _)) => {
3030 match header.minor_opcode {
3031 xtest::GET_VERSION_REQUEST => return Ok(Request::XtestGetVersion(xtest::GetVersionRequest::try_parse_request(header, remaining)?)),
3032 xtest::COMPARE_CURSOR_REQUEST => return Ok(Request::XtestCompareCursor(xtest::CompareCursorRequest::try_parse_request(header, remaining)?)),
3033 xtest::FAKE_INPUT_REQUEST => return Ok(Request::XtestFakeInput(xtest::FakeInputRequest::try_parse_request(header, remaining)?)),
3034 xtest::GRAB_CONTROL_REQUEST => return Ok(Request::XtestGrabControl(xtest::GrabControlRequest::try_parse_request(header, remaining)?)),
3035 _ => (),
3036 }
3037 }
3038 #[cfg(feature = "xv")]
3039 Some((xv::X11_EXTENSION_NAME, _)) => {
3040 match header.minor_opcode {
3041 xv::QUERY_EXTENSION_REQUEST => return Ok(Request::XvQueryExtension(xv::QueryExtensionRequest::try_parse_request(header, remaining)?)),
3042 xv::QUERY_ADAPTORS_REQUEST => return Ok(Request::XvQueryAdaptors(xv::QueryAdaptorsRequest::try_parse_request(header, remaining)?)),
3043 xv::QUERY_ENCODINGS_REQUEST => return Ok(Request::XvQueryEncodings(xv::QueryEncodingsRequest::try_parse_request(header, remaining)?)),
3044 xv::GRAB_PORT_REQUEST => return Ok(Request::XvGrabPort(xv::GrabPortRequest::try_parse_request(header, remaining)?)),
3045 xv::UNGRAB_PORT_REQUEST => return Ok(Request::XvUngrabPort(xv::UngrabPortRequest::try_parse_request(header, remaining)?)),
3046 xv::PUT_VIDEO_REQUEST => return Ok(Request::XvPutVideo(xv::PutVideoRequest::try_parse_request(header, remaining)?)),
3047 xv::PUT_STILL_REQUEST => return Ok(Request::XvPutStill(xv::PutStillRequest::try_parse_request(header, remaining)?)),
3048 xv::GET_VIDEO_REQUEST => return Ok(Request::XvGetVideo(xv::GetVideoRequest::try_parse_request(header, remaining)?)),
3049 xv::GET_STILL_REQUEST => return Ok(Request::XvGetStill(xv::GetStillRequest::try_parse_request(header, remaining)?)),
3050 xv::STOP_VIDEO_REQUEST => return Ok(Request::XvStopVideo(xv::StopVideoRequest::try_parse_request(header, remaining)?)),
3051 xv::SELECT_VIDEO_NOTIFY_REQUEST => return Ok(Request::XvSelectVideoNotify(xv::SelectVideoNotifyRequest::try_parse_request(header, remaining)?)),
3052 xv::SELECT_PORT_NOTIFY_REQUEST => return Ok(Request::XvSelectPortNotify(xv::SelectPortNotifyRequest::try_parse_request(header, remaining)?)),
3053 xv::QUERY_BEST_SIZE_REQUEST => return Ok(Request::XvQueryBestSize(xv::QueryBestSizeRequest::try_parse_request(header, remaining)?)),
3054 xv::SET_PORT_ATTRIBUTE_REQUEST => return Ok(Request::XvSetPortAttribute(xv::SetPortAttributeRequest::try_parse_request(header, remaining)?)),
3055 xv::GET_PORT_ATTRIBUTE_REQUEST => return Ok(Request::XvGetPortAttribute(xv::GetPortAttributeRequest::try_parse_request(header, remaining)?)),
3056 xv::QUERY_PORT_ATTRIBUTES_REQUEST => return Ok(Request::XvQueryPortAttributes(xv::QueryPortAttributesRequest::try_parse_request(header, remaining)?)),
3057 xv::LIST_IMAGE_FORMATS_REQUEST => return Ok(Request::XvListImageFormats(xv::ListImageFormatsRequest::try_parse_request(header, remaining)?)),
3058 xv::QUERY_IMAGE_ATTRIBUTES_REQUEST => return Ok(Request::XvQueryImageAttributes(xv::QueryImageAttributesRequest::try_parse_request(header, remaining)?)),
3059 xv::PUT_IMAGE_REQUEST => return Ok(Request::XvPutImage(xv::PutImageRequest::try_parse_request(header, remaining)?)),
3060 xv::SHM_PUT_IMAGE_REQUEST => return Ok(Request::XvShmPutImage(xv::ShmPutImageRequest::try_parse_request(header, remaining)?)),
3061 _ => (),
3062 }
3063 }
3064 #[cfg(feature = "xvmc")]
3065 Some((xvmc::X11_EXTENSION_NAME, _)) => {
3066 match header.minor_opcode {
3067 xvmc::QUERY_VERSION_REQUEST => return Ok(Request::XvmcQueryVersion(xvmc::QueryVersionRequest::try_parse_request(header, remaining)?)),
3068 xvmc::LIST_SURFACE_TYPES_REQUEST => return Ok(Request::XvmcListSurfaceTypes(xvmc::ListSurfaceTypesRequest::try_parse_request(header, remaining)?)),
3069 xvmc::CREATE_CONTEXT_REQUEST => return Ok(Request::XvmcCreateContext(xvmc::CreateContextRequest::try_parse_request(header, remaining)?)),
3070 xvmc::DESTROY_CONTEXT_REQUEST => return Ok(Request::XvmcDestroyContext(xvmc::DestroyContextRequest::try_parse_request(header, remaining)?)),
3071 xvmc::CREATE_SURFACE_REQUEST => return Ok(Request::XvmcCreateSurface(xvmc::CreateSurfaceRequest::try_parse_request(header, remaining)?)),
3072 xvmc::DESTROY_SURFACE_REQUEST => return Ok(Request::XvmcDestroySurface(xvmc::DestroySurfaceRequest::try_parse_request(header, remaining)?)),
3073 xvmc::CREATE_SUBPICTURE_REQUEST => return Ok(Request::XvmcCreateSubpicture(xvmc::CreateSubpictureRequest::try_parse_request(header, remaining)?)),
3074 xvmc::DESTROY_SUBPICTURE_REQUEST => return Ok(Request::XvmcDestroySubpicture(xvmc::DestroySubpictureRequest::try_parse_request(header, remaining)?)),
3075 xvmc::LIST_SUBPICTURE_TYPES_REQUEST => return Ok(Request::XvmcListSubpictureTypes(xvmc::ListSubpictureTypesRequest::try_parse_request(header, remaining)?)),
3076 _ => (),
3077 }
3078 }
3079 _ => (),
3080 }
3081 Ok(Request::Unknown(header, Cow::Borrowed(remaining)))
3082 }
3083 /// Get the matching reply parser (if any) for this request.
3084 /// For `Request::Unknown`, `None` is also returned.
3085 pub fn reply_parser(&self) -> Option<ReplyParsingFunction> {
3086 match self {
3087 Request::Unknown(_, _) => None,
3088 Request::CreateWindow(_) => None,
3089 Request::ChangeWindowAttributes(_) => None,
3090 Request::GetWindowAttributes(_) => Some(parse_reply::<xproto::GetWindowAttributesRequest>),
3091 Request::DestroyWindow(_) => None,
3092 Request::DestroySubwindows(_) => None,
3093 Request::ChangeSaveSet(_) => None,
3094 Request::ReparentWindow(_) => None,
3095 Request::MapWindow(_) => None,
3096 Request::MapSubwindows(_) => None,
3097 Request::UnmapWindow(_) => None,
3098 Request::UnmapSubwindows(_) => None,
3099 Request::ConfigureWindow(_) => None,
3100 Request::CirculateWindow(_) => None,
3101 Request::GetGeometry(_) => Some(parse_reply::<xproto::GetGeometryRequest>),
3102 Request::QueryTree(_) => Some(parse_reply::<xproto::QueryTreeRequest>),
3103 Request::InternAtom(_) => Some(parse_reply::<xproto::InternAtomRequest<'_>>),
3104 Request::GetAtomName(_) => Some(parse_reply::<xproto::GetAtomNameRequest>),
3105 Request::ChangeProperty(_) => None,
3106 Request::DeleteProperty(_) => None,
3107 Request::GetProperty(_) => Some(parse_reply::<xproto::GetPropertyRequest>),
3108 Request::ListProperties(_) => Some(parse_reply::<xproto::ListPropertiesRequest>),
3109 Request::SetSelectionOwner(_) => None,
3110 Request::GetSelectionOwner(_) => Some(parse_reply::<xproto::GetSelectionOwnerRequest>),
3111 Request::ConvertSelection(_) => None,
3112 Request::SendEvent(_) => None,
3113 Request::GrabPointer(_) => Some(parse_reply::<xproto::GrabPointerRequest>),
3114 Request::UngrabPointer(_) => None,
3115 Request::GrabButton(_) => None,
3116 Request::UngrabButton(_) => None,
3117 Request::ChangeActivePointerGrab(_) => None,
3118 Request::GrabKeyboard(_) => Some(parse_reply::<xproto::GrabKeyboardRequest>),
3119 Request::UngrabKeyboard(_) => None,
3120 Request::GrabKey(_) => None,
3121 Request::UngrabKey(_) => None,
3122 Request::AllowEvents(_) => None,
3123 Request::GrabServer(_) => None,
3124 Request::UngrabServer(_) => None,
3125 Request::QueryPointer(_) => Some(parse_reply::<xproto::QueryPointerRequest>),
3126 Request::GetMotionEvents(_) => Some(parse_reply::<xproto::GetMotionEventsRequest>),
3127 Request::TranslateCoordinates(_) => Some(parse_reply::<xproto::TranslateCoordinatesRequest>),
3128 Request::WarpPointer(_) => None,
3129 Request::SetInputFocus(_) => None,
3130 Request::GetInputFocus(_) => Some(parse_reply::<xproto::GetInputFocusRequest>),
3131 Request::QueryKeymap(_) => Some(parse_reply::<xproto::QueryKeymapRequest>),
3132 Request::OpenFont(_) => None,
3133 Request::CloseFont(_) => None,
3134 Request::QueryFont(_) => Some(parse_reply::<xproto::QueryFontRequest>),
3135 Request::QueryTextExtents(_) => Some(parse_reply::<xproto::QueryTextExtentsRequest<'_>>),
3136 Request::ListFonts(_) => Some(parse_reply::<xproto::ListFontsRequest<'_>>),
3137 Request::ListFontsWithInfo(_) => Some(parse_reply::<xproto::ListFontsWithInfoRequest<'_>>),
3138 Request::SetFontPath(_) => None,
3139 Request::GetFontPath(_) => Some(parse_reply::<xproto::GetFontPathRequest>),
3140 Request::CreatePixmap(_) => None,
3141 Request::FreePixmap(_) => None,
3142 Request::CreateGC(_) => None,
3143 Request::ChangeGC(_) => None,
3144 Request::CopyGC(_) => None,
3145 Request::SetDashes(_) => None,
3146 Request::SetClipRectangles(_) => None,
3147 Request::FreeGC(_) => None,
3148 Request::ClearArea(_) => None,
3149 Request::CopyArea(_) => None,
3150 Request::CopyPlane(_) => None,
3151 Request::PolyPoint(_) => None,
3152 Request::PolyLine(_) => None,
3153 Request::PolySegment(_) => None,
3154 Request::PolyRectangle(_) => None,
3155 Request::PolyArc(_) => None,
3156 Request::FillPoly(_) => None,
3157 Request::PolyFillRectangle(_) => None,
3158 Request::PolyFillArc(_) => None,
3159 Request::PutImage(_) => None,
3160 Request::GetImage(_) => Some(parse_reply::<xproto::GetImageRequest>),
3161 Request::PolyText8(_) => None,
3162 Request::PolyText16(_) => None,
3163 Request::ImageText8(_) => None,
3164 Request::ImageText16(_) => None,
3165 Request::CreateColormap(_) => None,
3166 Request::FreeColormap(_) => None,
3167 Request::CopyColormapAndFree(_) => None,
3168 Request::InstallColormap(_) => None,
3169 Request::UninstallColormap(_) => None,
3170 Request::ListInstalledColormaps(_) => Some(parse_reply::<xproto::ListInstalledColormapsRequest>),
3171 Request::AllocColor(_) => Some(parse_reply::<xproto::AllocColorRequest>),
3172 Request::AllocNamedColor(_) => Some(parse_reply::<xproto::AllocNamedColorRequest<'_>>),
3173 Request::AllocColorCells(_) => Some(parse_reply::<xproto::AllocColorCellsRequest>),
3174 Request::AllocColorPlanes(_) => Some(parse_reply::<xproto::AllocColorPlanesRequest>),
3175 Request::FreeColors(_) => None,
3176 Request::StoreColors(_) => None,
3177 Request::StoreNamedColor(_) => None,
3178 Request::QueryColors(_) => Some(parse_reply::<xproto::QueryColorsRequest<'_>>),
3179 Request::LookupColor(_) => Some(parse_reply::<xproto::LookupColorRequest<'_>>),
3180 Request::CreateCursor(_) => None,
3181 Request::CreateGlyphCursor(_) => None,
3182 Request::FreeCursor(_) => None,
3183 Request::RecolorCursor(_) => None,
3184 Request::QueryBestSize(_) => Some(parse_reply::<xproto::QueryBestSizeRequest>),
3185 Request::QueryExtension(_) => Some(parse_reply::<xproto::QueryExtensionRequest<'_>>),
3186 Request::ListExtensions(_) => Some(parse_reply::<xproto::ListExtensionsRequest>),
3187 Request::ChangeKeyboardMapping(_) => None,
3188 Request::GetKeyboardMapping(_) => Some(parse_reply::<xproto::GetKeyboardMappingRequest>),
3189 Request::ChangeKeyboardControl(_) => None,
3190 Request::GetKeyboardControl(_) => Some(parse_reply::<xproto::GetKeyboardControlRequest>),
3191 Request::Bell(_) => None,
3192 Request::ChangePointerControl(_) => None,
3193 Request::GetPointerControl(_) => Some(parse_reply::<xproto::GetPointerControlRequest>),
3194 Request::SetScreenSaver(_) => None,
3195 Request::GetScreenSaver(_) => Some(parse_reply::<xproto::GetScreenSaverRequest>),
3196 Request::ChangeHosts(_) => None,
3197 Request::ListHosts(_) => Some(parse_reply::<xproto::ListHostsRequest>),
3198 Request::SetAccessControl(_) => None,
3199 Request::SetCloseDownMode(_) => None,
3200 Request::KillClient(_) => None,
3201 Request::RotateProperties(_) => None,
3202 Request::ForceScreenSaver(_) => None,
3203 Request::SetPointerMapping(_) => Some(parse_reply::<xproto::SetPointerMappingRequest<'_>>),
3204 Request::GetPointerMapping(_) => Some(parse_reply::<xproto::GetPointerMappingRequest>),
3205 Request::SetModifierMapping(_) => Some(parse_reply::<xproto::SetModifierMappingRequest<'_>>),
3206 Request::GetModifierMapping(_) => Some(parse_reply::<xproto::GetModifierMappingRequest>),
3207 Request::NoOperation(_) => None,
3208 Request::BigreqEnable(_) => Some(parse_reply::<bigreq::EnableRequest>),
3209 #[cfg(feature = "composite")]
3210 Request::CompositeQueryVersion(_) => Some(parse_reply::<composite::QueryVersionRequest>),
3211 #[cfg(feature = "composite")]
3212 Request::CompositeRedirectWindow(_) => None,
3213 #[cfg(feature = "composite")]
3214 Request::CompositeRedirectSubwindows(_) => None,
3215 #[cfg(feature = "composite")]
3216 Request::CompositeUnredirectWindow(_) => None,
3217 #[cfg(feature = "composite")]
3218 Request::CompositeUnredirectSubwindows(_) => None,
3219 #[cfg(feature = "composite")]
3220 Request::CompositeCreateRegionFromBorderClip(_) => None,
3221 #[cfg(feature = "composite")]
3222 Request::CompositeNameWindowPixmap(_) => None,
3223 #[cfg(feature = "composite")]
3224 Request::CompositeGetOverlayWindow(_) => Some(parse_reply::<composite::GetOverlayWindowRequest>),
3225 #[cfg(feature = "composite")]
3226 Request::CompositeReleaseOverlayWindow(_) => None,
3227 #[cfg(feature = "damage")]
3228 Request::DamageQueryVersion(_) => Some(parse_reply::<damage::QueryVersionRequest>),
3229 #[cfg(feature = "damage")]
3230 Request::DamageCreate(_) => None,
3231 #[cfg(feature = "damage")]
3232 Request::DamageDestroy(_) => None,
3233 #[cfg(feature = "damage")]
3234 Request::DamageSubtract(_) => None,
3235 #[cfg(feature = "damage")]
3236 Request::DamageAdd(_) => None,
3237 #[cfg(feature = "dbe")]
3238 Request::DbeQueryVersion(_) => Some(parse_reply::<dbe::QueryVersionRequest>),
3239 #[cfg(feature = "dbe")]
3240 Request::DbeAllocateBackBuffer(_) => None,
3241 #[cfg(feature = "dbe")]
3242 Request::DbeDeallocateBackBuffer(_) => None,
3243 #[cfg(feature = "dbe")]
3244 Request::DbeSwapBuffers(_) => None,
3245 #[cfg(feature = "dbe")]
3246 Request::DbeBeginIdiom(_) => None,
3247 #[cfg(feature = "dbe")]
3248 Request::DbeEndIdiom(_) => None,
3249 #[cfg(feature = "dbe")]
3250 Request::DbeGetVisualInfo(_) => Some(parse_reply::<dbe::GetVisualInfoRequest<'_>>),
3251 #[cfg(feature = "dbe")]
3252 Request::DbeGetBackBufferAttributes(_) => Some(parse_reply::<dbe::GetBackBufferAttributesRequest>),
3253 #[cfg(feature = "dpms")]
3254 Request::DpmsGetVersion(_) => Some(parse_reply::<dpms::GetVersionRequest>),
3255 #[cfg(feature = "dpms")]
3256 Request::DpmsCapable(_) => Some(parse_reply::<dpms::CapableRequest>),
3257 #[cfg(feature = "dpms")]
3258 Request::DpmsGetTimeouts(_) => Some(parse_reply::<dpms::GetTimeoutsRequest>),
3259 #[cfg(feature = "dpms")]
3260 Request::DpmsSetTimeouts(_) => None,
3261 #[cfg(feature = "dpms")]
3262 Request::DpmsEnable(_) => None,
3263 #[cfg(feature = "dpms")]
3264 Request::DpmsDisable(_) => None,
3265 #[cfg(feature = "dpms")]
3266 Request::DpmsForceLevel(_) => None,
3267 #[cfg(feature = "dpms")]
3268 Request::DpmsInfo(_) => Some(parse_reply::<dpms::InfoRequest>),
3269 #[cfg(feature = "dri2")]
3270 Request::Dri2QueryVersion(_) => Some(parse_reply::<dri2::QueryVersionRequest>),
3271 #[cfg(feature = "dri2")]
3272 Request::Dri2Connect(_) => Some(parse_reply::<dri2::ConnectRequest>),
3273 #[cfg(feature = "dri2")]
3274 Request::Dri2Authenticate(_) => Some(parse_reply::<dri2::AuthenticateRequest>),
3275 #[cfg(feature = "dri2")]
3276 Request::Dri2CreateDrawable(_) => None,
3277 #[cfg(feature = "dri2")]
3278 Request::Dri2DestroyDrawable(_) => None,
3279 #[cfg(feature = "dri2")]
3280 Request::Dri2GetBuffers(_) => Some(parse_reply::<dri2::GetBuffersRequest<'_>>),
3281 #[cfg(feature = "dri2")]
3282 Request::Dri2CopyRegion(_) => Some(parse_reply::<dri2::CopyRegionRequest>),
3283 #[cfg(feature = "dri2")]
3284 Request::Dri2GetBuffersWithFormat(_) => Some(parse_reply::<dri2::GetBuffersWithFormatRequest<'_>>),
3285 #[cfg(feature = "dri2")]
3286 Request::Dri2SwapBuffers(_) => Some(parse_reply::<dri2::SwapBuffersRequest>),
3287 #[cfg(feature = "dri2")]
3288 Request::Dri2GetMSC(_) => Some(parse_reply::<dri2::GetMSCRequest>),
3289 #[cfg(feature = "dri2")]
3290 Request::Dri2WaitMSC(_) => Some(parse_reply::<dri2::WaitMSCRequest>),
3291 #[cfg(feature = "dri2")]
3292 Request::Dri2WaitSBC(_) => Some(parse_reply::<dri2::WaitSBCRequest>),
3293 #[cfg(feature = "dri2")]
3294 Request::Dri2SwapInterval(_) => None,
3295 #[cfg(feature = "dri2")]
3296 Request::Dri2GetParam(_) => Some(parse_reply::<dri2::GetParamRequest>),
3297 #[cfg(feature = "dri3")]
3298 Request::Dri3QueryVersion(_) => Some(parse_reply::<dri3::QueryVersionRequest>),
3299 #[cfg(feature = "dri3")]
3300 Request::Dri3Open(_) => Some(parse_reply_fds::<dri3::OpenRequest>),
3301 #[cfg(feature = "dri3")]
3302 Request::Dri3PixmapFromBuffer(_) => None,
3303 #[cfg(feature = "dri3")]
3304 Request::Dri3BufferFromPixmap(_) => Some(parse_reply_fds::<dri3::BufferFromPixmapRequest>),
3305 #[cfg(feature = "dri3")]
3306 Request::Dri3FenceFromFD(_) => None,
3307 #[cfg(feature = "dri3")]
3308 Request::Dri3FDFromFence(_) => Some(parse_reply_fds::<dri3::FDFromFenceRequest>),
3309 #[cfg(feature = "dri3")]
3310 Request::Dri3GetSupportedModifiers(_) => Some(parse_reply::<dri3::GetSupportedModifiersRequest>),
3311 #[cfg(feature = "dri3")]
3312 Request::Dri3PixmapFromBuffers(_) => None,
3313 #[cfg(feature = "dri3")]
3314 Request::Dri3BuffersFromPixmap(_) => Some(parse_reply_fds::<dri3::BuffersFromPixmapRequest>),
3315 #[cfg(feature = "dri3")]
3316 Request::Dri3SetDRMDeviceInUse(_) => None,
3317 Request::GeQueryVersion(_) => Some(parse_reply::<ge::QueryVersionRequest>),
3318 #[cfg(feature = "glx")]
3319 Request::GlxRender(_) => None,
3320 #[cfg(feature = "glx")]
3321 Request::GlxRenderLarge(_) => None,
3322 #[cfg(feature = "glx")]
3323 Request::GlxCreateContext(_) => None,
3324 #[cfg(feature = "glx")]
3325 Request::GlxDestroyContext(_) => None,
3326 #[cfg(feature = "glx")]
3327 Request::GlxMakeCurrent(_) => Some(parse_reply::<glx::MakeCurrentRequest>),
3328 #[cfg(feature = "glx")]
3329 Request::GlxIsDirect(_) => Some(parse_reply::<glx::IsDirectRequest>),
3330 #[cfg(feature = "glx")]
3331 Request::GlxQueryVersion(_) => Some(parse_reply::<glx::QueryVersionRequest>),
3332 #[cfg(feature = "glx")]
3333 Request::GlxWaitGL(_) => None,
3334 #[cfg(feature = "glx")]
3335 Request::GlxWaitX(_) => None,
3336 #[cfg(feature = "glx")]
3337 Request::GlxCopyContext(_) => None,
3338 #[cfg(feature = "glx")]
3339 Request::GlxSwapBuffers(_) => None,
3340 #[cfg(feature = "glx")]
3341 Request::GlxUseXFont(_) => None,
3342 #[cfg(feature = "glx")]
3343 Request::GlxCreateGLXPixmap(_) => None,
3344 #[cfg(feature = "glx")]
3345 Request::GlxGetVisualConfigs(_) => Some(parse_reply::<glx::GetVisualConfigsRequest>),
3346 #[cfg(feature = "glx")]
3347 Request::GlxDestroyGLXPixmap(_) => None,
3348 #[cfg(feature = "glx")]
3349 Request::GlxVendorPrivate(_) => None,
3350 #[cfg(feature = "glx")]
3351 Request::GlxVendorPrivateWithReply(_) => Some(parse_reply::<glx::VendorPrivateWithReplyRequest<'_>>),
3352 #[cfg(feature = "glx")]
3353 Request::GlxQueryExtensionsString(_) => Some(parse_reply::<glx::QueryExtensionsStringRequest>),
3354 #[cfg(feature = "glx")]
3355 Request::GlxQueryServerString(_) => Some(parse_reply::<glx::QueryServerStringRequest>),
3356 #[cfg(feature = "glx")]
3357 Request::GlxClientInfo(_) => None,
3358 #[cfg(feature = "glx")]
3359 Request::GlxGetFBConfigs(_) => Some(parse_reply::<glx::GetFBConfigsRequest>),
3360 #[cfg(feature = "glx")]
3361 Request::GlxCreatePixmap(_) => None,
3362 #[cfg(feature = "glx")]
3363 Request::GlxDestroyPixmap(_) => None,
3364 #[cfg(feature = "glx")]
3365 Request::GlxCreateNewContext(_) => None,
3366 #[cfg(feature = "glx")]
3367 Request::GlxQueryContext(_) => Some(parse_reply::<glx::QueryContextRequest>),
3368 #[cfg(feature = "glx")]
3369 Request::GlxMakeContextCurrent(_) => Some(parse_reply::<glx::MakeContextCurrentRequest>),
3370 #[cfg(feature = "glx")]
3371 Request::GlxCreatePbuffer(_) => None,
3372 #[cfg(feature = "glx")]
3373 Request::GlxDestroyPbuffer(_) => None,
3374 #[cfg(feature = "glx")]
3375 Request::GlxGetDrawableAttributes(_) => Some(parse_reply::<glx::GetDrawableAttributesRequest>),
3376 #[cfg(feature = "glx")]
3377 Request::GlxChangeDrawableAttributes(_) => None,
3378 #[cfg(feature = "glx")]
3379 Request::GlxCreateWindow(_) => None,
3380 #[cfg(feature = "glx")]
3381 Request::GlxDeleteWindow(_) => None,
3382 #[cfg(feature = "glx")]
3383 Request::GlxSetClientInfoARB(_) => None,
3384 #[cfg(feature = "glx")]
3385 Request::GlxCreateContextAttribsARB(_) => None,
3386 #[cfg(feature = "glx")]
3387 Request::GlxSetClientInfo2ARB(_) => None,
3388 #[cfg(feature = "glx")]
3389 Request::GlxNewList(_) => None,
3390 #[cfg(feature = "glx")]
3391 Request::GlxEndList(_) => None,
3392 #[cfg(feature = "glx")]
3393 Request::GlxDeleteLists(_) => None,
3394 #[cfg(feature = "glx")]
3395 Request::GlxGenLists(_) => Some(parse_reply::<glx::GenListsRequest>),
3396 #[cfg(feature = "glx")]
3397 Request::GlxFeedbackBuffer(_) => None,
3398 #[cfg(feature = "glx")]
3399 Request::GlxSelectBuffer(_) => None,
3400 #[cfg(feature = "glx")]
3401 Request::GlxRenderMode(_) => Some(parse_reply::<glx::RenderModeRequest>),
3402 #[cfg(feature = "glx")]
3403 Request::GlxFinish(_) => Some(parse_reply::<glx::FinishRequest>),
3404 #[cfg(feature = "glx")]
3405 Request::GlxPixelStoref(_) => None,
3406 #[cfg(feature = "glx")]
3407 Request::GlxPixelStorei(_) => None,
3408 #[cfg(feature = "glx")]
3409 Request::GlxReadPixels(_) => Some(parse_reply::<glx::ReadPixelsRequest>),
3410 #[cfg(feature = "glx")]
3411 Request::GlxGetBooleanv(_) => Some(parse_reply::<glx::GetBooleanvRequest>),
3412 #[cfg(feature = "glx")]
3413 Request::GlxGetClipPlane(_) => Some(parse_reply::<glx::GetClipPlaneRequest>),
3414 #[cfg(feature = "glx")]
3415 Request::GlxGetDoublev(_) => Some(parse_reply::<glx::GetDoublevRequest>),
3416 #[cfg(feature = "glx")]
3417 Request::GlxGetError(_) => Some(parse_reply::<glx::GetErrorRequest>),
3418 #[cfg(feature = "glx")]
3419 Request::GlxGetFloatv(_) => Some(parse_reply::<glx::GetFloatvRequest>),
3420 #[cfg(feature = "glx")]
3421 Request::GlxGetIntegerv(_) => Some(parse_reply::<glx::GetIntegervRequest>),
3422 #[cfg(feature = "glx")]
3423 Request::GlxGetLightfv(_) => Some(parse_reply::<glx::GetLightfvRequest>),
3424 #[cfg(feature = "glx")]
3425 Request::GlxGetLightiv(_) => Some(parse_reply::<glx::GetLightivRequest>),
3426 #[cfg(feature = "glx")]
3427 Request::GlxGetMapdv(_) => Some(parse_reply::<glx::GetMapdvRequest>),
3428 #[cfg(feature = "glx")]
3429 Request::GlxGetMapfv(_) => Some(parse_reply::<glx::GetMapfvRequest>),
3430 #[cfg(feature = "glx")]
3431 Request::GlxGetMapiv(_) => Some(parse_reply::<glx::GetMapivRequest>),
3432 #[cfg(feature = "glx")]
3433 Request::GlxGetMaterialfv(_) => Some(parse_reply::<glx::GetMaterialfvRequest>),
3434 #[cfg(feature = "glx")]
3435 Request::GlxGetMaterialiv(_) => Some(parse_reply::<glx::GetMaterialivRequest>),
3436 #[cfg(feature = "glx")]
3437 Request::GlxGetPixelMapfv(_) => Some(parse_reply::<glx::GetPixelMapfvRequest>),
3438 #[cfg(feature = "glx")]
3439 Request::GlxGetPixelMapuiv(_) => Some(parse_reply::<glx::GetPixelMapuivRequest>),
3440 #[cfg(feature = "glx")]
3441 Request::GlxGetPixelMapusv(_) => Some(parse_reply::<glx::GetPixelMapusvRequest>),
3442 #[cfg(feature = "glx")]
3443 Request::GlxGetPolygonStipple(_) => Some(parse_reply::<glx::GetPolygonStippleRequest>),
3444 #[cfg(feature = "glx")]
3445 Request::GlxGetString(_) => Some(parse_reply::<glx::GetStringRequest>),
3446 #[cfg(feature = "glx")]
3447 Request::GlxGetTexEnvfv(_) => Some(parse_reply::<glx::GetTexEnvfvRequest>),
3448 #[cfg(feature = "glx")]
3449 Request::GlxGetTexEnviv(_) => Some(parse_reply::<glx::GetTexEnvivRequest>),
3450 #[cfg(feature = "glx")]
3451 Request::GlxGetTexGendv(_) => Some(parse_reply::<glx::GetTexGendvRequest>),
3452 #[cfg(feature = "glx")]
3453 Request::GlxGetTexGenfv(_) => Some(parse_reply::<glx::GetTexGenfvRequest>),
3454 #[cfg(feature = "glx")]
3455 Request::GlxGetTexGeniv(_) => Some(parse_reply::<glx::GetTexGenivRequest>),
3456 #[cfg(feature = "glx")]
3457 Request::GlxGetTexImage(_) => Some(parse_reply::<glx::GetTexImageRequest>),
3458 #[cfg(feature = "glx")]
3459 Request::GlxGetTexParameterfv(_) => Some(parse_reply::<glx::GetTexParameterfvRequest>),
3460 #[cfg(feature = "glx")]
3461 Request::GlxGetTexParameteriv(_) => Some(parse_reply::<glx::GetTexParameterivRequest>),
3462 #[cfg(feature = "glx")]
3463 Request::GlxGetTexLevelParameterfv(_) => Some(parse_reply::<glx::GetTexLevelParameterfvRequest>),
3464 #[cfg(feature = "glx")]
3465 Request::GlxGetTexLevelParameteriv(_) => Some(parse_reply::<glx::GetTexLevelParameterivRequest>),
3466 #[cfg(feature = "glx")]
3467 Request::GlxIsEnabled(_) => Some(parse_reply::<glx::IsEnabledRequest>),
3468 #[cfg(feature = "glx")]
3469 Request::GlxIsList(_) => Some(parse_reply::<glx::IsListRequest>),
3470 #[cfg(feature = "glx")]
3471 Request::GlxFlush(_) => None,
3472 #[cfg(feature = "glx")]
3473 Request::GlxAreTexturesResident(_) => Some(parse_reply::<glx::AreTexturesResidentRequest<'_>>),
3474 #[cfg(feature = "glx")]
3475 Request::GlxDeleteTextures(_) => None,
3476 #[cfg(feature = "glx")]
3477 Request::GlxGenTextures(_) => Some(parse_reply::<glx::GenTexturesRequest>),
3478 #[cfg(feature = "glx")]
3479 Request::GlxIsTexture(_) => Some(parse_reply::<glx::IsTextureRequest>),
3480 #[cfg(feature = "glx")]
3481 Request::GlxGetColorTable(_) => Some(parse_reply::<glx::GetColorTableRequest>),
3482 #[cfg(feature = "glx")]
3483 Request::GlxGetColorTableParameterfv(_) => Some(parse_reply::<glx::GetColorTableParameterfvRequest>),
3484 #[cfg(feature = "glx")]
3485 Request::GlxGetColorTableParameteriv(_) => Some(parse_reply::<glx::GetColorTableParameterivRequest>),
3486 #[cfg(feature = "glx")]
3487 Request::GlxGetConvolutionFilter(_) => Some(parse_reply::<glx::GetConvolutionFilterRequest>),
3488 #[cfg(feature = "glx")]
3489 Request::GlxGetConvolutionParameterfv(_) => Some(parse_reply::<glx::GetConvolutionParameterfvRequest>),
3490 #[cfg(feature = "glx")]
3491 Request::GlxGetConvolutionParameteriv(_) => Some(parse_reply::<glx::GetConvolutionParameterivRequest>),
3492 #[cfg(feature = "glx")]
3493 Request::GlxGetSeparableFilter(_) => Some(parse_reply::<glx::GetSeparableFilterRequest>),
3494 #[cfg(feature = "glx")]
3495 Request::GlxGetHistogram(_) => Some(parse_reply::<glx::GetHistogramRequest>),
3496 #[cfg(feature = "glx")]
3497 Request::GlxGetHistogramParameterfv(_) => Some(parse_reply::<glx::GetHistogramParameterfvRequest>),
3498 #[cfg(feature = "glx")]
3499 Request::GlxGetHistogramParameteriv(_) => Some(parse_reply::<glx::GetHistogramParameterivRequest>),
3500 #[cfg(feature = "glx")]
3501 Request::GlxGetMinmax(_) => Some(parse_reply::<glx::GetMinmaxRequest>),
3502 #[cfg(feature = "glx")]
3503 Request::GlxGetMinmaxParameterfv(_) => Some(parse_reply::<glx::GetMinmaxParameterfvRequest>),
3504 #[cfg(feature = "glx")]
3505 Request::GlxGetMinmaxParameteriv(_) => Some(parse_reply::<glx::GetMinmaxParameterivRequest>),
3506 #[cfg(feature = "glx")]
3507 Request::GlxGetCompressedTexImageARB(_) => Some(parse_reply::<glx::GetCompressedTexImageARBRequest>),
3508 #[cfg(feature = "glx")]
3509 Request::GlxDeleteQueriesARB(_) => None,
3510 #[cfg(feature = "glx")]
3511 Request::GlxGenQueriesARB(_) => Some(parse_reply::<glx::GenQueriesARBRequest>),
3512 #[cfg(feature = "glx")]
3513 Request::GlxIsQueryARB(_) => Some(parse_reply::<glx::IsQueryARBRequest>),
3514 #[cfg(feature = "glx")]
3515 Request::GlxGetQueryivARB(_) => Some(parse_reply::<glx::GetQueryivARBRequest>),
3516 #[cfg(feature = "glx")]
3517 Request::GlxGetQueryObjectivARB(_) => Some(parse_reply::<glx::GetQueryObjectivARBRequest>),
3518 #[cfg(feature = "glx")]
3519 Request::GlxGetQueryObjectuivARB(_) => Some(parse_reply::<glx::GetQueryObjectuivARBRequest>),
3520 #[cfg(feature = "present")]
3521 Request::PresentQueryVersion(_) => Some(parse_reply::<present::QueryVersionRequest>),
3522 #[cfg(feature = "present")]
3523 Request::PresentPixmap(_) => None,
3524 #[cfg(feature = "present")]
3525 Request::PresentNotifyMSC(_) => None,
3526 #[cfg(feature = "present")]
3527 Request::PresentSelectInput(_) => None,
3528 #[cfg(feature = "present")]
3529 Request::PresentQueryCapabilities(_) => Some(parse_reply::<present::QueryCapabilitiesRequest>),
3530 #[cfg(feature = "randr")]
3531 Request::RandrQueryVersion(_) => Some(parse_reply::<randr::QueryVersionRequest>),
3532 #[cfg(feature = "randr")]
3533 Request::RandrSetScreenConfig(_) => Some(parse_reply::<randr::SetScreenConfigRequest>),
3534 #[cfg(feature = "randr")]
3535 Request::RandrSelectInput(_) => None,
3536 #[cfg(feature = "randr")]
3537 Request::RandrGetScreenInfo(_) => Some(parse_reply::<randr::GetScreenInfoRequest>),
3538 #[cfg(feature = "randr")]
3539 Request::RandrGetScreenSizeRange(_) => Some(parse_reply::<randr::GetScreenSizeRangeRequest>),
3540 #[cfg(feature = "randr")]
3541 Request::RandrSetScreenSize(_) => None,
3542 #[cfg(feature = "randr")]
3543 Request::RandrGetScreenResources(_) => Some(parse_reply::<randr::GetScreenResourcesRequest>),
3544 #[cfg(feature = "randr")]
3545 Request::RandrGetOutputInfo(_) => Some(parse_reply::<randr::GetOutputInfoRequest>),
3546 #[cfg(feature = "randr")]
3547 Request::RandrListOutputProperties(_) => Some(parse_reply::<randr::ListOutputPropertiesRequest>),
3548 #[cfg(feature = "randr")]
3549 Request::RandrQueryOutputProperty(_) => Some(parse_reply::<randr::QueryOutputPropertyRequest>),
3550 #[cfg(feature = "randr")]
3551 Request::RandrConfigureOutputProperty(_) => None,
3552 #[cfg(feature = "randr")]
3553 Request::RandrChangeOutputProperty(_) => None,
3554 #[cfg(feature = "randr")]
3555 Request::RandrDeleteOutputProperty(_) => None,
3556 #[cfg(feature = "randr")]
3557 Request::RandrGetOutputProperty(_) => Some(parse_reply::<randr::GetOutputPropertyRequest>),
3558 #[cfg(feature = "randr")]
3559 Request::RandrCreateMode(_) => Some(parse_reply::<randr::CreateModeRequest<'_>>),
3560 #[cfg(feature = "randr")]
3561 Request::RandrDestroyMode(_) => None,
3562 #[cfg(feature = "randr")]
3563 Request::RandrAddOutputMode(_) => None,
3564 #[cfg(feature = "randr")]
3565 Request::RandrDeleteOutputMode(_) => None,
3566 #[cfg(feature = "randr")]
3567 Request::RandrGetCrtcInfo(_) => Some(parse_reply::<randr::GetCrtcInfoRequest>),
3568 #[cfg(feature = "randr")]
3569 Request::RandrSetCrtcConfig(_) => Some(parse_reply::<randr::SetCrtcConfigRequest<'_>>),
3570 #[cfg(feature = "randr")]
3571 Request::RandrGetCrtcGammaSize(_) => Some(parse_reply::<randr::GetCrtcGammaSizeRequest>),
3572 #[cfg(feature = "randr")]
3573 Request::RandrGetCrtcGamma(_) => Some(parse_reply::<randr::GetCrtcGammaRequest>),
3574 #[cfg(feature = "randr")]
3575 Request::RandrSetCrtcGamma(_) => None,
3576 #[cfg(feature = "randr")]
3577 Request::RandrGetScreenResourcesCurrent(_) => Some(parse_reply::<randr::GetScreenResourcesCurrentRequest>),
3578 #[cfg(feature = "randr")]
3579 Request::RandrSetCrtcTransform(_) => None,
3580 #[cfg(feature = "randr")]
3581 Request::RandrGetCrtcTransform(_) => Some(parse_reply::<randr::GetCrtcTransformRequest>),
3582 #[cfg(feature = "randr")]
3583 Request::RandrGetPanning(_) => Some(parse_reply::<randr::GetPanningRequest>),
3584 #[cfg(feature = "randr")]
3585 Request::RandrSetPanning(_) => Some(parse_reply::<randr::SetPanningRequest>),
3586 #[cfg(feature = "randr")]
3587 Request::RandrSetOutputPrimary(_) => None,
3588 #[cfg(feature = "randr")]
3589 Request::RandrGetOutputPrimary(_) => Some(parse_reply::<randr::GetOutputPrimaryRequest>),
3590 #[cfg(feature = "randr")]
3591 Request::RandrGetProviders(_) => Some(parse_reply::<randr::GetProvidersRequest>),
3592 #[cfg(feature = "randr")]
3593 Request::RandrGetProviderInfo(_) => Some(parse_reply::<randr::GetProviderInfoRequest>),
3594 #[cfg(feature = "randr")]
3595 Request::RandrSetProviderOffloadSink(_) => None,
3596 #[cfg(feature = "randr")]
3597 Request::RandrSetProviderOutputSource(_) => None,
3598 #[cfg(feature = "randr")]
3599 Request::RandrListProviderProperties(_) => Some(parse_reply::<randr::ListProviderPropertiesRequest>),
3600 #[cfg(feature = "randr")]
3601 Request::RandrQueryProviderProperty(_) => Some(parse_reply::<randr::QueryProviderPropertyRequest>),
3602 #[cfg(feature = "randr")]
3603 Request::RandrConfigureProviderProperty(_) => None,
3604 #[cfg(feature = "randr")]
3605 Request::RandrChangeProviderProperty(_) => None,
3606 #[cfg(feature = "randr")]
3607 Request::RandrDeleteProviderProperty(_) => None,
3608 #[cfg(feature = "randr")]
3609 Request::RandrGetProviderProperty(_) => Some(parse_reply::<randr::GetProviderPropertyRequest>),
3610 #[cfg(feature = "randr")]
3611 Request::RandrGetMonitors(_) => Some(parse_reply::<randr::GetMonitorsRequest>),
3612 #[cfg(feature = "randr")]
3613 Request::RandrSetMonitor(_) => None,
3614 #[cfg(feature = "randr")]
3615 Request::RandrDeleteMonitor(_) => None,
3616 #[cfg(feature = "randr")]
3617 Request::RandrCreateLease(_) => Some(parse_reply_fds::<randr::CreateLeaseRequest<'_>>),
3618 #[cfg(feature = "randr")]
3619 Request::RandrFreeLease(_) => None,
3620 #[cfg(feature = "record")]
3621 Request::RecordQueryVersion(_) => Some(parse_reply::<record::QueryVersionRequest>),
3622 #[cfg(feature = "record")]
3623 Request::RecordCreateContext(_) => None,
3624 #[cfg(feature = "record")]
3625 Request::RecordRegisterClients(_) => None,
3626 #[cfg(feature = "record")]
3627 Request::RecordUnregisterClients(_) => None,
3628 #[cfg(feature = "record")]
3629 Request::RecordGetContext(_) => Some(parse_reply::<record::GetContextRequest>),
3630 #[cfg(feature = "record")]
3631 Request::RecordEnableContext(_) => Some(parse_reply::<record::EnableContextRequest>),
3632 #[cfg(feature = "record")]
3633 Request::RecordDisableContext(_) => None,
3634 #[cfg(feature = "record")]
3635 Request::RecordFreeContext(_) => None,
3636 #[cfg(feature = "render")]
3637 Request::RenderQueryVersion(_) => Some(parse_reply::<render::QueryVersionRequest>),
3638 #[cfg(feature = "render")]
3639 Request::RenderQueryPictFormats(_) => Some(parse_reply::<render::QueryPictFormatsRequest>),
3640 #[cfg(feature = "render")]
3641 Request::RenderQueryPictIndexValues(_) => Some(parse_reply::<render::QueryPictIndexValuesRequest>),
3642 #[cfg(feature = "render")]
3643 Request::RenderCreatePicture(_) => None,
3644 #[cfg(feature = "render")]
3645 Request::RenderChangePicture(_) => None,
3646 #[cfg(feature = "render")]
3647 Request::RenderSetPictureClipRectangles(_) => None,
3648 #[cfg(feature = "render")]
3649 Request::RenderFreePicture(_) => None,
3650 #[cfg(feature = "render")]
3651 Request::RenderComposite(_) => None,
3652 #[cfg(feature = "render")]
3653 Request::RenderTrapezoids(_) => None,
3654 #[cfg(feature = "render")]
3655 Request::RenderTriangles(_) => None,
3656 #[cfg(feature = "render")]
3657 Request::RenderTriStrip(_) => None,
3658 #[cfg(feature = "render")]
3659 Request::RenderTriFan(_) => None,
3660 #[cfg(feature = "render")]
3661 Request::RenderCreateGlyphSet(_) => None,
3662 #[cfg(feature = "render")]
3663 Request::RenderReferenceGlyphSet(_) => None,
3664 #[cfg(feature = "render")]
3665 Request::RenderFreeGlyphSet(_) => None,
3666 #[cfg(feature = "render")]
3667 Request::RenderAddGlyphs(_) => None,
3668 #[cfg(feature = "render")]
3669 Request::RenderFreeGlyphs(_) => None,
3670 #[cfg(feature = "render")]
3671 Request::RenderCompositeGlyphs8(_) => None,
3672 #[cfg(feature = "render")]
3673 Request::RenderCompositeGlyphs16(_) => None,
3674 #[cfg(feature = "render")]
3675 Request::RenderCompositeGlyphs32(_) => None,
3676 #[cfg(feature = "render")]
3677 Request::RenderFillRectangles(_) => None,
3678 #[cfg(feature = "render")]
3679 Request::RenderCreateCursor(_) => None,
3680 #[cfg(feature = "render")]
3681 Request::RenderSetPictureTransform(_) => None,
3682 #[cfg(feature = "render")]
3683 Request::RenderQueryFilters(_) => Some(parse_reply::<render::QueryFiltersRequest>),
3684 #[cfg(feature = "render")]
3685 Request::RenderSetPictureFilter(_) => None,
3686 #[cfg(feature = "render")]
3687 Request::RenderCreateAnimCursor(_) => None,
3688 #[cfg(feature = "render")]
3689 Request::RenderAddTraps(_) => None,
3690 #[cfg(feature = "render")]
3691 Request::RenderCreateSolidFill(_) => None,
3692 #[cfg(feature = "render")]
3693 Request::RenderCreateLinearGradient(_) => None,
3694 #[cfg(feature = "render")]
3695 Request::RenderCreateRadialGradient(_) => None,
3696 #[cfg(feature = "render")]
3697 Request::RenderCreateConicalGradient(_) => None,
3698 #[cfg(feature = "res")]
3699 Request::ResQueryVersion(_) => Some(parse_reply::<res::QueryVersionRequest>),
3700 #[cfg(feature = "res")]
3701 Request::ResQueryClients(_) => Some(parse_reply::<res::QueryClientsRequest>),
3702 #[cfg(feature = "res")]
3703 Request::ResQueryClientResources(_) => Some(parse_reply::<res::QueryClientResourcesRequest>),
3704 #[cfg(feature = "res")]
3705 Request::ResQueryClientPixmapBytes(_) => Some(parse_reply::<res::QueryClientPixmapBytesRequest>),
3706 #[cfg(feature = "res")]
3707 Request::ResQueryClientIds(_) => Some(parse_reply::<res::QueryClientIdsRequest<'_>>),
3708 #[cfg(feature = "res")]
3709 Request::ResQueryResourceBytes(_) => Some(parse_reply::<res::QueryResourceBytesRequest<'_>>),
3710 #[cfg(feature = "screensaver")]
3711 Request::ScreensaverQueryVersion(_) => Some(parse_reply::<screensaver::QueryVersionRequest>),
3712 #[cfg(feature = "screensaver")]
3713 Request::ScreensaverQueryInfo(_) => Some(parse_reply::<screensaver::QueryInfoRequest>),
3714 #[cfg(feature = "screensaver")]
3715 Request::ScreensaverSelectInput(_) => None,
3716 #[cfg(feature = "screensaver")]
3717 Request::ScreensaverSetAttributes(_) => None,
3718 #[cfg(feature = "screensaver")]
3719 Request::ScreensaverUnsetAttributes(_) => None,
3720 #[cfg(feature = "screensaver")]
3721 Request::ScreensaverSuspend(_) => None,
3722 #[cfg(feature = "shape")]
3723 Request::ShapeQueryVersion(_) => Some(parse_reply::<shape::QueryVersionRequest>),
3724 #[cfg(feature = "shape")]
3725 Request::ShapeRectangles(_) => None,
3726 #[cfg(feature = "shape")]
3727 Request::ShapeMask(_) => None,
3728 #[cfg(feature = "shape")]
3729 Request::ShapeCombine(_) => None,
3730 #[cfg(feature = "shape")]
3731 Request::ShapeOffset(_) => None,
3732 #[cfg(feature = "shape")]
3733 Request::ShapeQueryExtents(_) => Some(parse_reply::<shape::QueryExtentsRequest>),
3734 #[cfg(feature = "shape")]
3735 Request::ShapeSelectInput(_) => None,
3736 #[cfg(feature = "shape")]
3737 Request::ShapeInputSelected(_) => Some(parse_reply::<shape::InputSelectedRequest>),
3738 #[cfg(feature = "shape")]
3739 Request::ShapeGetRectangles(_) => Some(parse_reply::<shape::GetRectanglesRequest>),
3740 #[cfg(feature = "shm")]
3741 Request::ShmQueryVersion(_) => Some(parse_reply::<shm::QueryVersionRequest>),
3742 #[cfg(feature = "shm")]
3743 Request::ShmAttach(_) => None,
3744 #[cfg(feature = "shm")]
3745 Request::ShmDetach(_) => None,
3746 #[cfg(feature = "shm")]
3747 Request::ShmPutImage(_) => None,
3748 #[cfg(feature = "shm")]
3749 Request::ShmGetImage(_) => Some(parse_reply::<shm::GetImageRequest>),
3750 #[cfg(feature = "shm")]
3751 Request::ShmCreatePixmap(_) => None,
3752 #[cfg(feature = "shm")]
3753 Request::ShmAttachFd(_) => None,
3754 #[cfg(feature = "shm")]
3755 Request::ShmCreateSegment(_) => Some(parse_reply_fds::<shm::CreateSegmentRequest>),
3756 #[cfg(feature = "sync")]
3757 Request::SyncInitialize(_) => Some(parse_reply::<sync::InitializeRequest>),
3758 #[cfg(feature = "sync")]
3759 Request::SyncListSystemCounters(_) => Some(parse_reply::<sync::ListSystemCountersRequest>),
3760 #[cfg(feature = "sync")]
3761 Request::SyncCreateCounter(_) => None,
3762 #[cfg(feature = "sync")]
3763 Request::SyncDestroyCounter(_) => None,
3764 #[cfg(feature = "sync")]
3765 Request::SyncQueryCounter(_) => Some(parse_reply::<sync::QueryCounterRequest>),
3766 #[cfg(feature = "sync")]
3767 Request::SyncAwait(_) => None,
3768 #[cfg(feature = "sync")]
3769 Request::SyncChangeCounter(_) => None,
3770 #[cfg(feature = "sync")]
3771 Request::SyncSetCounter(_) => None,
3772 #[cfg(feature = "sync")]
3773 Request::SyncCreateAlarm(_) => None,
3774 #[cfg(feature = "sync")]
3775 Request::SyncChangeAlarm(_) => None,
3776 #[cfg(feature = "sync")]
3777 Request::SyncDestroyAlarm(_) => None,
3778 #[cfg(feature = "sync")]
3779 Request::SyncQueryAlarm(_) => Some(parse_reply::<sync::QueryAlarmRequest>),
3780 #[cfg(feature = "sync")]
3781 Request::SyncSetPriority(_) => None,
3782 #[cfg(feature = "sync")]
3783 Request::SyncGetPriority(_) => Some(parse_reply::<sync::GetPriorityRequest>),
3784 #[cfg(feature = "sync")]
3785 Request::SyncCreateFence(_) => None,
3786 #[cfg(feature = "sync")]
3787 Request::SyncTriggerFence(_) => None,
3788 #[cfg(feature = "sync")]
3789 Request::SyncResetFence(_) => None,
3790 #[cfg(feature = "sync")]
3791 Request::SyncDestroyFence(_) => None,
3792 #[cfg(feature = "sync")]
3793 Request::SyncQueryFence(_) => Some(parse_reply::<sync::QueryFenceRequest>),
3794 #[cfg(feature = "sync")]
3795 Request::SyncAwaitFence(_) => None,
3796 Request::XcMiscGetVersion(_) => Some(parse_reply::<xc_misc::GetVersionRequest>),
3797 Request::XcMiscGetXIDRange(_) => Some(parse_reply::<xc_misc::GetXIDRangeRequest>),
3798 Request::XcMiscGetXIDList(_) => Some(parse_reply::<xc_misc::GetXIDListRequest>),
3799 #[cfg(feature = "xevie")]
3800 Request::XevieQueryVersion(_) => Some(parse_reply::<xevie::QueryVersionRequest>),
3801 #[cfg(feature = "xevie")]
3802 Request::XevieStart(_) => Some(parse_reply::<xevie::StartRequest>),
3803 #[cfg(feature = "xevie")]
3804 Request::XevieEnd(_) => Some(parse_reply::<xevie::EndRequest>),
3805 #[cfg(feature = "xevie")]
3806 Request::XevieSend(_) => Some(parse_reply::<xevie::SendRequest>),
3807 #[cfg(feature = "xevie")]
3808 Request::XevieSelectInput(_) => Some(parse_reply::<xevie::SelectInputRequest>),
3809 #[cfg(feature = "xf86dri")]
3810 Request::Xf86driQueryVersion(_) => Some(parse_reply::<xf86dri::QueryVersionRequest>),
3811 #[cfg(feature = "xf86dri")]
3812 Request::Xf86driQueryDirectRenderingCapable(_) => Some(parse_reply::<xf86dri::QueryDirectRenderingCapableRequest>),
3813 #[cfg(feature = "xf86dri")]
3814 Request::Xf86driOpenConnection(_) => Some(parse_reply::<xf86dri::OpenConnectionRequest>),
3815 #[cfg(feature = "xf86dri")]
3816 Request::Xf86driCloseConnection(_) => None,
3817 #[cfg(feature = "xf86dri")]
3818 Request::Xf86driGetClientDriverName(_) => Some(parse_reply::<xf86dri::GetClientDriverNameRequest>),
3819 #[cfg(feature = "xf86dri")]
3820 Request::Xf86driCreateContext(_) => Some(parse_reply::<xf86dri::CreateContextRequest>),
3821 #[cfg(feature = "xf86dri")]
3822 Request::Xf86driDestroyContext(_) => None,
3823 #[cfg(feature = "xf86dri")]
3824 Request::Xf86driCreateDrawable(_) => Some(parse_reply::<xf86dri::CreateDrawableRequest>),
3825 #[cfg(feature = "xf86dri")]
3826 Request::Xf86driDestroyDrawable(_) => None,
3827 #[cfg(feature = "xf86dri")]
3828 Request::Xf86driGetDrawableInfo(_) => Some(parse_reply::<xf86dri::GetDrawableInfoRequest>),
3829 #[cfg(feature = "xf86dri")]
3830 Request::Xf86driGetDeviceInfo(_) => Some(parse_reply::<xf86dri::GetDeviceInfoRequest>),
3831 #[cfg(feature = "xf86dri")]
3832 Request::Xf86driAuthConnection(_) => Some(parse_reply::<xf86dri::AuthConnectionRequest>),
3833 #[cfg(feature = "xf86vidmode")]
3834 Request::Xf86vidmodeQueryVersion(_) => Some(parse_reply::<xf86vidmode::QueryVersionRequest>),
3835 #[cfg(feature = "xf86vidmode")]
3836 Request::Xf86vidmodeGetModeLine(_) => Some(parse_reply::<xf86vidmode::GetModeLineRequest>),
3837 #[cfg(feature = "xf86vidmode")]
3838 Request::Xf86vidmodeModModeLine(_) => None,
3839 #[cfg(feature = "xf86vidmode")]
3840 Request::Xf86vidmodeSwitchMode(_) => None,
3841 #[cfg(feature = "xf86vidmode")]
3842 Request::Xf86vidmodeGetMonitor(_) => Some(parse_reply::<xf86vidmode::GetMonitorRequest>),
3843 #[cfg(feature = "xf86vidmode")]
3844 Request::Xf86vidmodeLockModeSwitch(_) => None,
3845 #[cfg(feature = "xf86vidmode")]
3846 Request::Xf86vidmodeGetAllModeLines(_) => Some(parse_reply::<xf86vidmode::GetAllModeLinesRequest>),
3847 #[cfg(feature = "xf86vidmode")]
3848 Request::Xf86vidmodeAddModeLine(_) => None,
3849 #[cfg(feature = "xf86vidmode")]
3850 Request::Xf86vidmodeDeleteModeLine(_) => None,
3851 #[cfg(feature = "xf86vidmode")]
3852 Request::Xf86vidmodeValidateModeLine(_) => Some(parse_reply::<xf86vidmode::ValidateModeLineRequest<'_>>),
3853 #[cfg(feature = "xf86vidmode")]
3854 Request::Xf86vidmodeSwitchToMode(_) => None,
3855 #[cfg(feature = "xf86vidmode")]
3856 Request::Xf86vidmodeGetViewPort(_) => Some(parse_reply::<xf86vidmode::GetViewPortRequest>),
3857 #[cfg(feature = "xf86vidmode")]
3858 Request::Xf86vidmodeSetViewPort(_) => None,
3859 #[cfg(feature = "xf86vidmode")]
3860 Request::Xf86vidmodeGetDotClocks(_) => Some(parse_reply::<xf86vidmode::GetDotClocksRequest>),
3861 #[cfg(feature = "xf86vidmode")]
3862 Request::Xf86vidmodeSetClientVersion(_) => None,
3863 #[cfg(feature = "xf86vidmode")]
3864 Request::Xf86vidmodeSetGamma(_) => None,
3865 #[cfg(feature = "xf86vidmode")]
3866 Request::Xf86vidmodeGetGamma(_) => Some(parse_reply::<xf86vidmode::GetGammaRequest>),
3867 #[cfg(feature = "xf86vidmode")]
3868 Request::Xf86vidmodeGetGammaRamp(_) => Some(parse_reply::<xf86vidmode::GetGammaRampRequest>),
3869 #[cfg(feature = "xf86vidmode")]
3870 Request::Xf86vidmodeSetGammaRamp(_) => None,
3871 #[cfg(feature = "xf86vidmode")]
3872 Request::Xf86vidmodeGetGammaRampSize(_) => Some(parse_reply::<xf86vidmode::GetGammaRampSizeRequest>),
3873 #[cfg(feature = "xf86vidmode")]
3874 Request::Xf86vidmodeGetPermissions(_) => Some(parse_reply::<xf86vidmode::GetPermissionsRequest>),
3875 #[cfg(feature = "xfixes")]
3876 Request::XfixesQueryVersion(_) => Some(parse_reply::<xfixes::QueryVersionRequest>),
3877 #[cfg(feature = "xfixes")]
3878 Request::XfixesChangeSaveSet(_) => None,
3879 #[cfg(feature = "xfixes")]
3880 Request::XfixesSelectSelectionInput(_) => None,
3881 #[cfg(feature = "xfixes")]
3882 Request::XfixesSelectCursorInput(_) => None,
3883 #[cfg(feature = "xfixes")]
3884 Request::XfixesGetCursorImage(_) => Some(parse_reply::<xfixes::GetCursorImageRequest>),
3885 #[cfg(feature = "xfixes")]
3886 Request::XfixesCreateRegion(_) => None,
3887 #[cfg(feature = "xfixes")]
3888 Request::XfixesCreateRegionFromBitmap(_) => None,
3889 #[cfg(feature = "xfixes")]
3890 Request::XfixesCreateRegionFromWindow(_) => None,
3891 #[cfg(feature = "xfixes")]
3892 Request::XfixesCreateRegionFromGC(_) => None,
3893 #[cfg(feature = "xfixes")]
3894 Request::XfixesCreateRegionFromPicture(_) => None,
3895 #[cfg(feature = "xfixes")]
3896 Request::XfixesDestroyRegion(_) => None,
3897 #[cfg(feature = "xfixes")]
3898 Request::XfixesSetRegion(_) => None,
3899 #[cfg(feature = "xfixes")]
3900 Request::XfixesCopyRegion(_) => None,
3901 #[cfg(feature = "xfixes")]
3902 Request::XfixesUnionRegion(_) => None,
3903 #[cfg(feature = "xfixes")]
3904 Request::XfixesIntersectRegion(_) => None,
3905 #[cfg(feature = "xfixes")]
3906 Request::XfixesSubtractRegion(_) => None,
3907 #[cfg(feature = "xfixes")]
3908 Request::XfixesInvertRegion(_) => None,
3909 #[cfg(feature = "xfixes")]
3910 Request::XfixesTranslateRegion(_) => None,
3911 #[cfg(feature = "xfixes")]
3912 Request::XfixesRegionExtents(_) => None,
3913 #[cfg(feature = "xfixes")]
3914 Request::XfixesFetchRegion(_) => Some(parse_reply::<xfixes::FetchRegionRequest>),
3915 #[cfg(feature = "xfixes")]
3916 Request::XfixesSetGCClipRegion(_) => None,
3917 #[cfg(feature = "xfixes")]
3918 Request::XfixesSetWindowShapeRegion(_) => None,
3919 #[cfg(feature = "xfixes")]
3920 Request::XfixesSetPictureClipRegion(_) => None,
3921 #[cfg(feature = "xfixes")]
3922 Request::XfixesSetCursorName(_) => None,
3923 #[cfg(feature = "xfixes")]
3924 Request::XfixesGetCursorName(_) => Some(parse_reply::<xfixes::GetCursorNameRequest>),
3925 #[cfg(feature = "xfixes")]
3926 Request::XfixesGetCursorImageAndName(_) => Some(parse_reply::<xfixes::GetCursorImageAndNameRequest>),
3927 #[cfg(feature = "xfixes")]
3928 Request::XfixesChangeCursor(_) => None,
3929 #[cfg(feature = "xfixes")]
3930 Request::XfixesChangeCursorByName(_) => None,
3931 #[cfg(feature = "xfixes")]
3932 Request::XfixesExpandRegion(_) => None,
3933 #[cfg(feature = "xfixes")]
3934 Request::XfixesHideCursor(_) => None,
3935 #[cfg(feature = "xfixes")]
3936 Request::XfixesShowCursor(_) => None,
3937 #[cfg(feature = "xfixes")]
3938 Request::XfixesCreatePointerBarrier(_) => None,
3939 #[cfg(feature = "xfixes")]
3940 Request::XfixesDeletePointerBarrier(_) => None,
3941 #[cfg(feature = "xfixes")]
3942 Request::XfixesSetClientDisconnectMode(_) => None,
3943 #[cfg(feature = "xfixes")]
3944 Request::XfixesGetClientDisconnectMode(_) => Some(parse_reply::<xfixes::GetClientDisconnectModeRequest>),
3945 #[cfg(feature = "xinerama")]
3946 Request::XineramaQueryVersion(_) => Some(parse_reply::<xinerama::QueryVersionRequest>),
3947 #[cfg(feature = "xinerama")]
3948 Request::XineramaGetState(_) => Some(parse_reply::<xinerama::GetStateRequest>),
3949 #[cfg(feature = "xinerama")]
3950 Request::XineramaGetScreenCount(_) => Some(parse_reply::<xinerama::GetScreenCountRequest>),
3951 #[cfg(feature = "xinerama")]
3952 Request::XineramaGetScreenSize(_) => Some(parse_reply::<xinerama::GetScreenSizeRequest>),
3953 #[cfg(feature = "xinerama")]
3954 Request::XineramaIsActive(_) => Some(parse_reply::<xinerama::IsActiveRequest>),
3955 #[cfg(feature = "xinerama")]
3956 Request::XineramaQueryScreens(_) => Some(parse_reply::<xinerama::QueryScreensRequest>),
3957 #[cfg(feature = "xinput")]
3958 Request::XinputGetExtensionVersion(_) => Some(parse_reply::<xinput::GetExtensionVersionRequest<'_>>),
3959 #[cfg(feature = "xinput")]
3960 Request::XinputListInputDevices(_) => Some(parse_reply::<xinput::ListInputDevicesRequest>),
3961 #[cfg(feature = "xinput")]
3962 Request::XinputOpenDevice(_) => Some(parse_reply::<xinput::OpenDeviceRequest>),
3963 #[cfg(feature = "xinput")]
3964 Request::XinputCloseDevice(_) => None,
3965 #[cfg(feature = "xinput")]
3966 Request::XinputSetDeviceMode(_) => Some(parse_reply::<xinput::SetDeviceModeRequest>),
3967 #[cfg(feature = "xinput")]
3968 Request::XinputSelectExtensionEvent(_) => None,
3969 #[cfg(feature = "xinput")]
3970 Request::XinputGetSelectedExtensionEvents(_) => Some(parse_reply::<xinput::GetSelectedExtensionEventsRequest>),
3971 #[cfg(feature = "xinput")]
3972 Request::XinputChangeDeviceDontPropagateList(_) => None,
3973 #[cfg(feature = "xinput")]
3974 Request::XinputGetDeviceDontPropagateList(_) => Some(parse_reply::<xinput::GetDeviceDontPropagateListRequest>),
3975 #[cfg(feature = "xinput")]
3976 Request::XinputGetDeviceMotionEvents(_) => Some(parse_reply::<xinput::GetDeviceMotionEventsRequest>),
3977 #[cfg(feature = "xinput")]
3978 Request::XinputChangeKeyboardDevice(_) => Some(parse_reply::<xinput::ChangeKeyboardDeviceRequest>),
3979 #[cfg(feature = "xinput")]
3980 Request::XinputChangePointerDevice(_) => Some(parse_reply::<xinput::ChangePointerDeviceRequest>),
3981 #[cfg(feature = "xinput")]
3982 Request::XinputGrabDevice(_) => Some(parse_reply::<xinput::GrabDeviceRequest<'_>>),
3983 #[cfg(feature = "xinput")]
3984 Request::XinputUngrabDevice(_) => None,
3985 #[cfg(feature = "xinput")]
3986 Request::XinputGrabDeviceKey(_) => None,
3987 #[cfg(feature = "xinput")]
3988 Request::XinputUngrabDeviceKey(_) => None,
3989 #[cfg(feature = "xinput")]
3990 Request::XinputGrabDeviceButton(_) => None,
3991 #[cfg(feature = "xinput")]
3992 Request::XinputUngrabDeviceButton(_) => None,
3993 #[cfg(feature = "xinput")]
3994 Request::XinputAllowDeviceEvents(_) => None,
3995 #[cfg(feature = "xinput")]
3996 Request::XinputGetDeviceFocus(_) => Some(parse_reply::<xinput::GetDeviceFocusRequest>),
3997 #[cfg(feature = "xinput")]
3998 Request::XinputSetDeviceFocus(_) => None,
3999 #[cfg(feature = "xinput")]
4000 Request::XinputGetFeedbackControl(_) => Some(parse_reply::<xinput::GetFeedbackControlRequest>),
4001 #[cfg(feature = "xinput")]
4002 Request::XinputChangeFeedbackControl(_) => None,
4003 #[cfg(feature = "xinput")]
4004 Request::XinputGetDeviceKeyMapping(_) => Some(parse_reply::<xinput::GetDeviceKeyMappingRequest>),
4005 #[cfg(feature = "xinput")]
4006 Request::XinputChangeDeviceKeyMapping(_) => None,
4007 #[cfg(feature = "xinput")]
4008 Request::XinputGetDeviceModifierMapping(_) => Some(parse_reply::<xinput::GetDeviceModifierMappingRequest>),
4009 #[cfg(feature = "xinput")]
4010 Request::XinputSetDeviceModifierMapping(_) => Some(parse_reply::<xinput::SetDeviceModifierMappingRequest<'_>>),
4011 #[cfg(feature = "xinput")]
4012 Request::XinputGetDeviceButtonMapping(_) => Some(parse_reply::<xinput::GetDeviceButtonMappingRequest>),
4013 #[cfg(feature = "xinput")]
4014 Request::XinputSetDeviceButtonMapping(_) => Some(parse_reply::<xinput::SetDeviceButtonMappingRequest<'_>>),
4015 #[cfg(feature = "xinput")]
4016 Request::XinputQueryDeviceState(_) => Some(parse_reply::<xinput::QueryDeviceStateRequest>),
4017 #[cfg(feature = "xinput")]
4018 Request::XinputDeviceBell(_) => None,
4019 #[cfg(feature = "xinput")]
4020 Request::XinputSetDeviceValuators(_) => Some(parse_reply::<xinput::SetDeviceValuatorsRequest<'_>>),
4021 #[cfg(feature = "xinput")]
4022 Request::XinputGetDeviceControl(_) => Some(parse_reply::<xinput::GetDeviceControlRequest>),
4023 #[cfg(feature = "xinput")]
4024 Request::XinputChangeDeviceControl(_) => Some(parse_reply::<xinput::ChangeDeviceControlRequest>),
4025 #[cfg(feature = "xinput")]
4026 Request::XinputListDeviceProperties(_) => Some(parse_reply::<xinput::ListDevicePropertiesRequest>),
4027 #[cfg(feature = "xinput")]
4028 Request::XinputChangeDeviceProperty(_) => None,
4029 #[cfg(feature = "xinput")]
4030 Request::XinputDeleteDeviceProperty(_) => None,
4031 #[cfg(feature = "xinput")]
4032 Request::XinputGetDeviceProperty(_) => Some(parse_reply::<xinput::GetDevicePropertyRequest>),
4033 #[cfg(feature = "xinput")]
4034 Request::XinputXIQueryPointer(_) => Some(parse_reply::<xinput::XIQueryPointerRequest>),
4035 #[cfg(feature = "xinput")]
4036 Request::XinputXIWarpPointer(_) => None,
4037 #[cfg(feature = "xinput")]
4038 Request::XinputXIChangeCursor(_) => None,
4039 #[cfg(feature = "xinput")]
4040 Request::XinputXIChangeHierarchy(_) => None,
4041 #[cfg(feature = "xinput")]
4042 Request::XinputXISetClientPointer(_) => None,
4043 #[cfg(feature = "xinput")]
4044 Request::XinputXIGetClientPointer(_) => Some(parse_reply::<xinput::XIGetClientPointerRequest>),
4045 #[cfg(feature = "xinput")]
4046 Request::XinputXISelectEvents(_) => None,
4047 #[cfg(feature = "xinput")]
4048 Request::XinputXIQueryVersion(_) => Some(parse_reply::<xinput::XIQueryVersionRequest>),
4049 #[cfg(feature = "xinput")]
4050 Request::XinputXIQueryDevice(_) => Some(parse_reply::<xinput::XIQueryDeviceRequest>),
4051 #[cfg(feature = "xinput")]
4052 Request::XinputXISetFocus(_) => None,
4053 #[cfg(feature = "xinput")]
4054 Request::XinputXIGetFocus(_) => Some(parse_reply::<xinput::XIGetFocusRequest>),
4055 #[cfg(feature = "xinput")]
4056 Request::XinputXIGrabDevice(_) => Some(parse_reply::<xinput::XIGrabDeviceRequest<'_>>),
4057 #[cfg(feature = "xinput")]
4058 Request::XinputXIUngrabDevice(_) => None,
4059 #[cfg(feature = "xinput")]
4060 Request::XinputXIAllowEvents(_) => None,
4061 #[cfg(feature = "xinput")]
4062 Request::XinputXIPassiveGrabDevice(_) => Some(parse_reply::<xinput::XIPassiveGrabDeviceRequest<'_>>),
4063 #[cfg(feature = "xinput")]
4064 Request::XinputXIPassiveUngrabDevice(_) => None,
4065 #[cfg(feature = "xinput")]
4066 Request::XinputXIListProperties(_) => Some(parse_reply::<xinput::XIListPropertiesRequest>),
4067 #[cfg(feature = "xinput")]
4068 Request::XinputXIChangeProperty(_) => None,
4069 #[cfg(feature = "xinput")]
4070 Request::XinputXIDeleteProperty(_) => None,
4071 #[cfg(feature = "xinput")]
4072 Request::XinputXIGetProperty(_) => Some(parse_reply::<xinput::XIGetPropertyRequest>),
4073 #[cfg(feature = "xinput")]
4074 Request::XinputXIGetSelectedEvents(_) => Some(parse_reply::<xinput::XIGetSelectedEventsRequest>),
4075 #[cfg(feature = "xinput")]
4076 Request::XinputXIBarrierReleasePointer(_) => None,
4077 #[cfg(feature = "xinput")]
4078 Request::XinputSendExtensionEvent(_) => None,
4079 #[cfg(feature = "xkb")]
4080 Request::XkbUseExtension(_) => Some(parse_reply::<xkb::UseExtensionRequest>),
4081 #[cfg(feature = "xkb")]
4082 Request::XkbSelectEvents(_) => None,
4083 #[cfg(feature = "xkb")]
4084 Request::XkbBell(_) => None,
4085 #[cfg(feature = "xkb")]
4086 Request::XkbGetState(_) => Some(parse_reply::<xkb::GetStateRequest>),
4087 #[cfg(feature = "xkb")]
4088 Request::XkbLatchLockState(_) => None,
4089 #[cfg(feature = "xkb")]
4090 Request::XkbGetControls(_) => Some(parse_reply::<xkb::GetControlsRequest>),
4091 #[cfg(feature = "xkb")]
4092 Request::XkbSetControls(_) => None,
4093 #[cfg(feature = "xkb")]
4094 Request::XkbGetMap(_) => Some(parse_reply::<xkb::GetMapRequest>),
4095 #[cfg(feature = "xkb")]
4096 Request::XkbSetMap(_) => None,
4097 #[cfg(feature = "xkb")]
4098 Request::XkbGetCompatMap(_) => Some(parse_reply::<xkb::GetCompatMapRequest>),
4099 #[cfg(feature = "xkb")]
4100 Request::XkbSetCompatMap(_) => None,
4101 #[cfg(feature = "xkb")]
4102 Request::XkbGetIndicatorState(_) => Some(parse_reply::<xkb::GetIndicatorStateRequest>),
4103 #[cfg(feature = "xkb")]
4104 Request::XkbGetIndicatorMap(_) => Some(parse_reply::<xkb::GetIndicatorMapRequest>),
4105 #[cfg(feature = "xkb")]
4106 Request::XkbSetIndicatorMap(_) => None,
4107 #[cfg(feature = "xkb")]
4108 Request::XkbGetNamedIndicator(_) => Some(parse_reply::<xkb::GetNamedIndicatorRequest>),
4109 #[cfg(feature = "xkb")]
4110 Request::XkbSetNamedIndicator(_) => None,
4111 #[cfg(feature = "xkb")]
4112 Request::XkbGetNames(_) => Some(parse_reply::<xkb::GetNamesRequest>),
4113 #[cfg(feature = "xkb")]
4114 Request::XkbSetNames(_) => None,
4115 #[cfg(feature = "xkb")]
4116 Request::XkbPerClientFlags(_) => Some(parse_reply::<xkb::PerClientFlagsRequest>),
4117 #[cfg(feature = "xkb")]
4118 Request::XkbListComponents(_) => Some(parse_reply::<xkb::ListComponentsRequest>),
4119 #[cfg(feature = "xkb")]
4120 Request::XkbGetKbdByName(_) => Some(parse_reply::<xkb::GetKbdByNameRequest>),
4121 #[cfg(feature = "xkb")]
4122 Request::XkbGetDeviceInfo(_) => Some(parse_reply::<xkb::GetDeviceInfoRequest>),
4123 #[cfg(feature = "xkb")]
4124 Request::XkbSetDeviceInfo(_) => None,
4125 #[cfg(feature = "xkb")]
4126 Request::XkbSetDebuggingFlags(_) => Some(parse_reply::<xkb::SetDebuggingFlagsRequest<'_>>),
4127 #[cfg(feature = "xprint")]
4128 Request::XprintPrintQueryVersion(_) => Some(parse_reply::<xprint::PrintQueryVersionRequest>),
4129 #[cfg(feature = "xprint")]
4130 Request::XprintPrintGetPrinterList(_) => Some(parse_reply::<xprint::PrintGetPrinterListRequest<'_>>),
4131 #[cfg(feature = "xprint")]
4132 Request::XprintPrintRehashPrinterList(_) => None,
4133 #[cfg(feature = "xprint")]
4134 Request::XprintCreateContext(_) => None,
4135 #[cfg(feature = "xprint")]
4136 Request::XprintPrintSetContext(_) => None,
4137 #[cfg(feature = "xprint")]
4138 Request::XprintPrintGetContext(_) => Some(parse_reply::<xprint::PrintGetContextRequest>),
4139 #[cfg(feature = "xprint")]
4140 Request::XprintPrintDestroyContext(_) => None,
4141 #[cfg(feature = "xprint")]
4142 Request::XprintPrintGetScreenOfContext(_) => Some(parse_reply::<xprint::PrintGetScreenOfContextRequest>),
4143 #[cfg(feature = "xprint")]
4144 Request::XprintPrintStartJob(_) => None,
4145 #[cfg(feature = "xprint")]
4146 Request::XprintPrintEndJob(_) => None,
4147 #[cfg(feature = "xprint")]
4148 Request::XprintPrintStartDoc(_) => None,
4149 #[cfg(feature = "xprint")]
4150 Request::XprintPrintEndDoc(_) => None,
4151 #[cfg(feature = "xprint")]
4152 Request::XprintPrintPutDocumentData(_) => None,
4153 #[cfg(feature = "xprint")]
4154 Request::XprintPrintGetDocumentData(_) => Some(parse_reply::<xprint::PrintGetDocumentDataRequest>),
4155 #[cfg(feature = "xprint")]
4156 Request::XprintPrintStartPage(_) => None,
4157 #[cfg(feature = "xprint")]
4158 Request::XprintPrintEndPage(_) => None,
4159 #[cfg(feature = "xprint")]
4160 Request::XprintPrintSelectInput(_) => None,
4161 #[cfg(feature = "xprint")]
4162 Request::XprintPrintInputSelected(_) => Some(parse_reply::<xprint::PrintInputSelectedRequest>),
4163 #[cfg(feature = "xprint")]
4164 Request::XprintPrintGetAttributes(_) => Some(parse_reply::<xprint::PrintGetAttributesRequest>),
4165 #[cfg(feature = "xprint")]
4166 Request::XprintPrintGetOneAttributes(_) => Some(parse_reply::<xprint::PrintGetOneAttributesRequest<'_>>),
4167 #[cfg(feature = "xprint")]
4168 Request::XprintPrintSetAttributes(_) => None,
4169 #[cfg(feature = "xprint")]
4170 Request::XprintPrintGetPageDimensions(_) => Some(parse_reply::<xprint::PrintGetPageDimensionsRequest>),
4171 #[cfg(feature = "xprint")]
4172 Request::XprintPrintQueryScreens(_) => Some(parse_reply::<xprint::PrintQueryScreensRequest>),
4173 #[cfg(feature = "xprint")]
4174 Request::XprintPrintSetImageResolution(_) => Some(parse_reply::<xprint::PrintSetImageResolutionRequest>),
4175 #[cfg(feature = "xprint")]
4176 Request::XprintPrintGetImageResolution(_) => Some(parse_reply::<xprint::PrintGetImageResolutionRequest>),
4177 #[cfg(feature = "xselinux")]
4178 Request::XselinuxQueryVersion(_) => Some(parse_reply::<xselinux::QueryVersionRequest>),
4179 #[cfg(feature = "xselinux")]
4180 Request::XselinuxSetDeviceCreateContext(_) => None,
4181 #[cfg(feature = "xselinux")]
4182 Request::XselinuxGetDeviceCreateContext(_) => Some(parse_reply::<xselinux::GetDeviceCreateContextRequest>),
4183 #[cfg(feature = "xselinux")]
4184 Request::XselinuxSetDeviceContext(_) => None,
4185 #[cfg(feature = "xselinux")]
4186 Request::XselinuxGetDeviceContext(_) => Some(parse_reply::<xselinux::GetDeviceContextRequest>),
4187 #[cfg(feature = "xselinux")]
4188 Request::XselinuxSetWindowCreateContext(_) => None,
4189 #[cfg(feature = "xselinux")]
4190 Request::XselinuxGetWindowCreateContext(_) => Some(parse_reply::<xselinux::GetWindowCreateContextRequest>),
4191 #[cfg(feature = "xselinux")]
4192 Request::XselinuxGetWindowContext(_) => Some(parse_reply::<xselinux::GetWindowContextRequest>),
4193 #[cfg(feature = "xselinux")]
4194 Request::XselinuxSetPropertyCreateContext(_) => None,
4195 #[cfg(feature = "xselinux")]
4196 Request::XselinuxGetPropertyCreateContext(_) => Some(parse_reply::<xselinux::GetPropertyCreateContextRequest>),
4197 #[cfg(feature = "xselinux")]
4198 Request::XselinuxSetPropertyUseContext(_) => None,
4199 #[cfg(feature = "xselinux")]
4200 Request::XselinuxGetPropertyUseContext(_) => Some(parse_reply::<xselinux::GetPropertyUseContextRequest>),
4201 #[cfg(feature = "xselinux")]
4202 Request::XselinuxGetPropertyContext(_) => Some(parse_reply::<xselinux::GetPropertyContextRequest>),
4203 #[cfg(feature = "xselinux")]
4204 Request::XselinuxGetPropertyDataContext(_) => Some(parse_reply::<xselinux::GetPropertyDataContextRequest>),
4205 #[cfg(feature = "xselinux")]
4206 Request::XselinuxListProperties(_) => Some(parse_reply::<xselinux::ListPropertiesRequest>),
4207 #[cfg(feature = "xselinux")]
4208 Request::XselinuxSetSelectionCreateContext(_) => None,
4209 #[cfg(feature = "xselinux")]
4210 Request::XselinuxGetSelectionCreateContext(_) => Some(parse_reply::<xselinux::GetSelectionCreateContextRequest>),
4211 #[cfg(feature = "xselinux")]
4212 Request::XselinuxSetSelectionUseContext(_) => None,
4213 #[cfg(feature = "xselinux")]
4214 Request::XselinuxGetSelectionUseContext(_) => Some(parse_reply::<xselinux::GetSelectionUseContextRequest>),
4215 #[cfg(feature = "xselinux")]
4216 Request::XselinuxGetSelectionContext(_) => Some(parse_reply::<xselinux::GetSelectionContextRequest>),
4217 #[cfg(feature = "xselinux")]
4218 Request::XselinuxGetSelectionDataContext(_) => Some(parse_reply::<xselinux::GetSelectionDataContextRequest>),
4219 #[cfg(feature = "xselinux")]
4220 Request::XselinuxListSelections(_) => Some(parse_reply::<xselinux::ListSelectionsRequest>),
4221 #[cfg(feature = "xselinux")]
4222 Request::XselinuxGetClientContext(_) => Some(parse_reply::<xselinux::GetClientContextRequest>),
4223 #[cfg(feature = "xtest")]
4224 Request::XtestGetVersion(_) => Some(parse_reply::<xtest::GetVersionRequest>),
4225 #[cfg(feature = "xtest")]
4226 Request::XtestCompareCursor(_) => Some(parse_reply::<xtest::CompareCursorRequest>),
4227 #[cfg(feature = "xtest")]
4228 Request::XtestFakeInput(_) => None,
4229 #[cfg(feature = "xtest")]
4230 Request::XtestGrabControl(_) => None,
4231 #[cfg(feature = "xv")]
4232 Request::XvQueryExtension(_) => Some(parse_reply::<xv::QueryExtensionRequest>),
4233 #[cfg(feature = "xv")]
4234 Request::XvQueryAdaptors(_) => Some(parse_reply::<xv::QueryAdaptorsRequest>),
4235 #[cfg(feature = "xv")]
4236 Request::XvQueryEncodings(_) => Some(parse_reply::<xv::QueryEncodingsRequest>),
4237 #[cfg(feature = "xv")]
4238 Request::XvGrabPort(_) => Some(parse_reply::<xv::GrabPortRequest>),
4239 #[cfg(feature = "xv")]
4240 Request::XvUngrabPort(_) => None,
4241 #[cfg(feature = "xv")]
4242 Request::XvPutVideo(_) => None,
4243 #[cfg(feature = "xv")]
4244 Request::XvPutStill(_) => None,
4245 #[cfg(feature = "xv")]
4246 Request::XvGetVideo(_) => None,
4247 #[cfg(feature = "xv")]
4248 Request::XvGetStill(_) => None,
4249 #[cfg(feature = "xv")]
4250 Request::XvStopVideo(_) => None,
4251 #[cfg(feature = "xv")]
4252 Request::XvSelectVideoNotify(_) => None,
4253 #[cfg(feature = "xv")]
4254 Request::XvSelectPortNotify(_) => None,
4255 #[cfg(feature = "xv")]
4256 Request::XvQueryBestSize(_) => Some(parse_reply::<xv::QueryBestSizeRequest>),
4257 #[cfg(feature = "xv")]
4258 Request::XvSetPortAttribute(_) => None,
4259 #[cfg(feature = "xv")]
4260 Request::XvGetPortAttribute(_) => Some(parse_reply::<xv::GetPortAttributeRequest>),
4261 #[cfg(feature = "xv")]
4262 Request::XvQueryPortAttributes(_) => Some(parse_reply::<xv::QueryPortAttributesRequest>),
4263 #[cfg(feature = "xv")]
4264 Request::XvListImageFormats(_) => Some(parse_reply::<xv::ListImageFormatsRequest>),
4265 #[cfg(feature = "xv")]
4266 Request::XvQueryImageAttributes(_) => Some(parse_reply::<xv::QueryImageAttributesRequest>),
4267 #[cfg(feature = "xv")]
4268 Request::XvPutImage(_) => None,
4269 #[cfg(feature = "xv")]
4270 Request::XvShmPutImage(_) => None,
4271 #[cfg(feature = "xvmc")]
4272 Request::XvmcQueryVersion(_) => Some(parse_reply::<xvmc::QueryVersionRequest>),
4273 #[cfg(feature = "xvmc")]
4274 Request::XvmcListSurfaceTypes(_) => Some(parse_reply::<xvmc::ListSurfaceTypesRequest>),
4275 #[cfg(feature = "xvmc")]
4276 Request::XvmcCreateContext(_) => Some(parse_reply::<xvmc::CreateContextRequest>),
4277 #[cfg(feature = "xvmc")]
4278 Request::XvmcDestroyContext(_) => None,
4279 #[cfg(feature = "xvmc")]
4280 Request::XvmcCreateSurface(_) => Some(parse_reply::<xvmc::CreateSurfaceRequest>),
4281 #[cfg(feature = "xvmc")]
4282 Request::XvmcDestroySurface(_) => None,
4283 #[cfg(feature = "xvmc")]
4284 Request::XvmcCreateSubpicture(_) => Some(parse_reply::<xvmc::CreateSubpictureRequest>),
4285 #[cfg(feature = "xvmc")]
4286 Request::XvmcDestroySubpicture(_) => None,
4287 #[cfg(feature = "xvmc")]
4288 Request::XvmcListSubpictureTypes(_) => Some(parse_reply::<xvmc::ListSubpictureTypesRequest>),
4289 }
4290 }
4291 /// Convert this Request into an owned version with no borrows.
4292 pub fn into_owned(self) -> Request<'static> {
4293 match self {
4294 Request::Unknown(header, body) => Request::Unknown(header, Cow::Owned(body.into_owned())),
4295 Request::CreateWindow(req) => Request::CreateWindow(req.into_owned()),
4296 Request::ChangeWindowAttributes(req) => Request::ChangeWindowAttributes(req.into_owned()),
4297 Request::GetWindowAttributes(req) => Request::GetWindowAttributes(req),
4298 Request::DestroyWindow(req) => Request::DestroyWindow(req),
4299 Request::DestroySubwindows(req) => Request::DestroySubwindows(req),
4300 Request::ChangeSaveSet(req) => Request::ChangeSaveSet(req),
4301 Request::ReparentWindow(req) => Request::ReparentWindow(req),
4302 Request::MapWindow(req) => Request::MapWindow(req),
4303 Request::MapSubwindows(req) => Request::MapSubwindows(req),
4304 Request::UnmapWindow(req) => Request::UnmapWindow(req),
4305 Request::UnmapSubwindows(req) => Request::UnmapSubwindows(req),
4306 Request::ConfigureWindow(req) => Request::ConfigureWindow(req.into_owned()),
4307 Request::CirculateWindow(req) => Request::CirculateWindow(req),
4308 Request::GetGeometry(req) => Request::GetGeometry(req),
4309 Request::QueryTree(req) => Request::QueryTree(req),
4310 Request::InternAtom(req) => Request::InternAtom(req.into_owned()),
4311 Request::GetAtomName(req) => Request::GetAtomName(req),
4312 Request::ChangeProperty(req) => Request::ChangeProperty(req.into_owned()),
4313 Request::DeleteProperty(req) => Request::DeleteProperty(req),
4314 Request::GetProperty(req) => Request::GetProperty(req),
4315 Request::ListProperties(req) => Request::ListProperties(req),
4316 Request::SetSelectionOwner(req) => Request::SetSelectionOwner(req),
4317 Request::GetSelectionOwner(req) => Request::GetSelectionOwner(req),
4318 Request::ConvertSelection(req) => Request::ConvertSelection(req),
4319 Request::SendEvent(req) => Request::SendEvent(req.into_owned()),
4320 Request::GrabPointer(req) => Request::GrabPointer(req),
4321 Request::UngrabPointer(req) => Request::UngrabPointer(req),
4322 Request::GrabButton(req) => Request::GrabButton(req),
4323 Request::UngrabButton(req) => Request::UngrabButton(req),
4324 Request::ChangeActivePointerGrab(req) => Request::ChangeActivePointerGrab(req),
4325 Request::GrabKeyboard(req) => Request::GrabKeyboard(req),
4326 Request::UngrabKeyboard(req) => Request::UngrabKeyboard(req),
4327 Request::GrabKey(req) => Request::GrabKey(req),
4328 Request::UngrabKey(req) => Request::UngrabKey(req),
4329 Request::AllowEvents(req) => Request::AllowEvents(req),
4330 Request::GrabServer(req) => Request::GrabServer(req),
4331 Request::UngrabServer(req) => Request::UngrabServer(req),
4332 Request::QueryPointer(req) => Request::QueryPointer(req),
4333 Request::GetMotionEvents(req) => Request::GetMotionEvents(req),
4334 Request::TranslateCoordinates(req) => Request::TranslateCoordinates(req),
4335 Request::WarpPointer(req) => Request::WarpPointer(req),
4336 Request::SetInputFocus(req) => Request::SetInputFocus(req),
4337 Request::GetInputFocus(req) => Request::GetInputFocus(req),
4338 Request::QueryKeymap(req) => Request::QueryKeymap(req),
4339 Request::OpenFont(req) => Request::OpenFont(req.into_owned()),
4340 Request::CloseFont(req) => Request::CloseFont(req),
4341 Request::QueryFont(req) => Request::QueryFont(req),
4342 Request::QueryTextExtents(req) => Request::QueryTextExtents(req.into_owned()),
4343 Request::ListFonts(req) => Request::ListFonts(req.into_owned()),
4344 Request::ListFontsWithInfo(req) => Request::ListFontsWithInfo(req.into_owned()),
4345 Request::SetFontPath(req) => Request::SetFontPath(req.into_owned()),
4346 Request::GetFontPath(req) => Request::GetFontPath(req),
4347 Request::CreatePixmap(req) => Request::CreatePixmap(req),
4348 Request::FreePixmap(req) => Request::FreePixmap(req),
4349 Request::CreateGC(req) => Request::CreateGC(req.into_owned()),
4350 Request::ChangeGC(req) => Request::ChangeGC(req.into_owned()),
4351 Request::CopyGC(req) => Request::CopyGC(req),
4352 Request::SetDashes(req) => Request::SetDashes(req.into_owned()),
4353 Request::SetClipRectangles(req) => Request::SetClipRectangles(req.into_owned()),
4354 Request::FreeGC(req) => Request::FreeGC(req),
4355 Request::ClearArea(req) => Request::ClearArea(req),
4356 Request::CopyArea(req) => Request::CopyArea(req),
4357 Request::CopyPlane(req) => Request::CopyPlane(req),
4358 Request::PolyPoint(req) => Request::PolyPoint(req.into_owned()),
4359 Request::PolyLine(req) => Request::PolyLine(req.into_owned()),
4360 Request::PolySegment(req) => Request::PolySegment(req.into_owned()),
4361 Request::PolyRectangle(req) => Request::PolyRectangle(req.into_owned()),
4362 Request::PolyArc(req) => Request::PolyArc(req.into_owned()),
4363 Request::FillPoly(req) => Request::FillPoly(req.into_owned()),
4364 Request::PolyFillRectangle(req) => Request::PolyFillRectangle(req.into_owned()),
4365 Request::PolyFillArc(req) => Request::PolyFillArc(req.into_owned()),
4366 Request::PutImage(req) => Request::PutImage(req.into_owned()),
4367 Request::GetImage(req) => Request::GetImage(req),
4368 Request::PolyText8(req) => Request::PolyText8(req.into_owned()),
4369 Request::PolyText16(req) => Request::PolyText16(req.into_owned()),
4370 Request::ImageText8(req) => Request::ImageText8(req.into_owned()),
4371 Request::ImageText16(req) => Request::ImageText16(req.into_owned()),
4372 Request::CreateColormap(req) => Request::CreateColormap(req),
4373 Request::FreeColormap(req) => Request::FreeColormap(req),
4374 Request::CopyColormapAndFree(req) => Request::CopyColormapAndFree(req),
4375 Request::InstallColormap(req) => Request::InstallColormap(req),
4376 Request::UninstallColormap(req) => Request::UninstallColormap(req),
4377 Request::ListInstalledColormaps(req) => Request::ListInstalledColormaps(req),
4378 Request::AllocColor(req) => Request::AllocColor(req),
4379 Request::AllocNamedColor(req) => Request::AllocNamedColor(req.into_owned()),
4380 Request::AllocColorCells(req) => Request::AllocColorCells(req),
4381 Request::AllocColorPlanes(req) => Request::AllocColorPlanes(req),
4382 Request::FreeColors(req) => Request::FreeColors(req.into_owned()),
4383 Request::StoreColors(req) => Request::StoreColors(req.into_owned()),
4384 Request::StoreNamedColor(req) => Request::StoreNamedColor(req.into_owned()),
4385 Request::QueryColors(req) => Request::QueryColors(req.into_owned()),
4386 Request::LookupColor(req) => Request::LookupColor(req.into_owned()),
4387 Request::CreateCursor(req) => Request::CreateCursor(req),
4388 Request::CreateGlyphCursor(req) => Request::CreateGlyphCursor(req),
4389 Request::FreeCursor(req) => Request::FreeCursor(req),
4390 Request::RecolorCursor(req) => Request::RecolorCursor(req),
4391 Request::QueryBestSize(req) => Request::QueryBestSize(req),
4392 Request::QueryExtension(req) => Request::QueryExtension(req.into_owned()),
4393 Request::ListExtensions(req) => Request::ListExtensions(req),
4394 Request::ChangeKeyboardMapping(req) => Request::ChangeKeyboardMapping(req.into_owned()),
4395 Request::GetKeyboardMapping(req) => Request::GetKeyboardMapping(req),
4396 Request::ChangeKeyboardControl(req) => Request::ChangeKeyboardControl(req.into_owned()),
4397 Request::GetKeyboardControl(req) => Request::GetKeyboardControl(req),
4398 Request::Bell(req) => Request::Bell(req),
4399 Request::ChangePointerControl(req) => Request::ChangePointerControl(req),
4400 Request::GetPointerControl(req) => Request::GetPointerControl(req),
4401 Request::SetScreenSaver(req) => Request::SetScreenSaver(req),
4402 Request::GetScreenSaver(req) => Request::GetScreenSaver(req),
4403 Request::ChangeHosts(req) => Request::ChangeHosts(req.into_owned()),
4404 Request::ListHosts(req) => Request::ListHosts(req),
4405 Request::SetAccessControl(req) => Request::SetAccessControl(req),
4406 Request::SetCloseDownMode(req) => Request::SetCloseDownMode(req),
4407 Request::KillClient(req) => Request::KillClient(req),
4408 Request::RotateProperties(req) => Request::RotateProperties(req.into_owned()),
4409 Request::ForceScreenSaver(req) => Request::ForceScreenSaver(req),
4410 Request::SetPointerMapping(req) => Request::SetPointerMapping(req.into_owned()),
4411 Request::GetPointerMapping(req) => Request::GetPointerMapping(req),
4412 Request::SetModifierMapping(req) => Request::SetModifierMapping(req.into_owned()),
4413 Request::GetModifierMapping(req) => Request::GetModifierMapping(req),
4414 Request::NoOperation(req) => Request::NoOperation(req),
4415 Request::BigreqEnable(req) => Request::BigreqEnable(req),
4416 #[cfg(feature = "composite")]
4417 Request::CompositeQueryVersion(req) => Request::CompositeQueryVersion(req),
4418 #[cfg(feature = "composite")]
4419 Request::CompositeRedirectWindow(req) => Request::CompositeRedirectWindow(req),
4420 #[cfg(feature = "composite")]
4421 Request::CompositeRedirectSubwindows(req) => Request::CompositeRedirectSubwindows(req),
4422 #[cfg(feature = "composite")]
4423 Request::CompositeUnredirectWindow(req) => Request::CompositeUnredirectWindow(req),
4424 #[cfg(feature = "composite")]
4425 Request::CompositeUnredirectSubwindows(req) => Request::CompositeUnredirectSubwindows(req),
4426 #[cfg(feature = "composite")]
4427 Request::CompositeCreateRegionFromBorderClip(req) => Request::CompositeCreateRegionFromBorderClip(req),
4428 #[cfg(feature = "composite")]
4429 Request::CompositeNameWindowPixmap(req) => Request::CompositeNameWindowPixmap(req),
4430 #[cfg(feature = "composite")]
4431 Request::CompositeGetOverlayWindow(req) => Request::CompositeGetOverlayWindow(req),
4432 #[cfg(feature = "composite")]
4433 Request::CompositeReleaseOverlayWindow(req) => Request::CompositeReleaseOverlayWindow(req),
4434 #[cfg(feature = "damage")]
4435 Request::DamageQueryVersion(req) => Request::DamageQueryVersion(req),
4436 #[cfg(feature = "damage")]
4437 Request::DamageCreate(req) => Request::DamageCreate(req),
4438 #[cfg(feature = "damage")]
4439 Request::DamageDestroy(req) => Request::DamageDestroy(req),
4440 #[cfg(feature = "damage")]
4441 Request::DamageSubtract(req) => Request::DamageSubtract(req),
4442 #[cfg(feature = "damage")]
4443 Request::DamageAdd(req) => Request::DamageAdd(req),
4444 #[cfg(feature = "dbe")]
4445 Request::DbeQueryVersion(req) => Request::DbeQueryVersion(req),
4446 #[cfg(feature = "dbe")]
4447 Request::DbeAllocateBackBuffer(req) => Request::DbeAllocateBackBuffer(req),
4448 #[cfg(feature = "dbe")]
4449 Request::DbeDeallocateBackBuffer(req) => Request::DbeDeallocateBackBuffer(req),
4450 #[cfg(feature = "dbe")]
4451 Request::DbeSwapBuffers(req) => Request::DbeSwapBuffers(req.into_owned()),
4452 #[cfg(feature = "dbe")]
4453 Request::DbeBeginIdiom(req) => Request::DbeBeginIdiom(req),
4454 #[cfg(feature = "dbe")]
4455 Request::DbeEndIdiom(req) => Request::DbeEndIdiom(req),
4456 #[cfg(feature = "dbe")]
4457 Request::DbeGetVisualInfo(req) => Request::DbeGetVisualInfo(req.into_owned()),
4458 #[cfg(feature = "dbe")]
4459 Request::DbeGetBackBufferAttributes(req) => Request::DbeGetBackBufferAttributes(req),
4460 #[cfg(feature = "dpms")]
4461 Request::DpmsGetVersion(req) => Request::DpmsGetVersion(req),
4462 #[cfg(feature = "dpms")]
4463 Request::DpmsCapable(req) => Request::DpmsCapable(req),
4464 #[cfg(feature = "dpms")]
4465 Request::DpmsGetTimeouts(req) => Request::DpmsGetTimeouts(req),
4466 #[cfg(feature = "dpms")]
4467 Request::DpmsSetTimeouts(req) => Request::DpmsSetTimeouts(req),
4468 #[cfg(feature = "dpms")]
4469 Request::DpmsEnable(req) => Request::DpmsEnable(req),
4470 #[cfg(feature = "dpms")]
4471 Request::DpmsDisable(req) => Request::DpmsDisable(req),
4472 #[cfg(feature = "dpms")]
4473 Request::DpmsForceLevel(req) => Request::DpmsForceLevel(req),
4474 #[cfg(feature = "dpms")]
4475 Request::DpmsInfo(req) => Request::DpmsInfo(req),
4476 #[cfg(feature = "dri2")]
4477 Request::Dri2QueryVersion(req) => Request::Dri2QueryVersion(req),
4478 #[cfg(feature = "dri2")]
4479 Request::Dri2Connect(req) => Request::Dri2Connect(req),
4480 #[cfg(feature = "dri2")]
4481 Request::Dri2Authenticate(req) => Request::Dri2Authenticate(req),
4482 #[cfg(feature = "dri2")]
4483 Request::Dri2CreateDrawable(req) => Request::Dri2CreateDrawable(req),
4484 #[cfg(feature = "dri2")]
4485 Request::Dri2DestroyDrawable(req) => Request::Dri2DestroyDrawable(req),
4486 #[cfg(feature = "dri2")]
4487 Request::Dri2GetBuffers(req) => Request::Dri2GetBuffers(req.into_owned()),
4488 #[cfg(feature = "dri2")]
4489 Request::Dri2CopyRegion(req) => Request::Dri2CopyRegion(req),
4490 #[cfg(feature = "dri2")]
4491 Request::Dri2GetBuffersWithFormat(req) => Request::Dri2GetBuffersWithFormat(req.into_owned()),
4492 #[cfg(feature = "dri2")]
4493 Request::Dri2SwapBuffers(req) => Request::Dri2SwapBuffers(req),
4494 #[cfg(feature = "dri2")]
4495 Request::Dri2GetMSC(req) => Request::Dri2GetMSC(req),
4496 #[cfg(feature = "dri2")]
4497 Request::Dri2WaitMSC(req) => Request::Dri2WaitMSC(req),
4498 #[cfg(feature = "dri2")]
4499 Request::Dri2WaitSBC(req) => Request::Dri2WaitSBC(req),
4500 #[cfg(feature = "dri2")]
4501 Request::Dri2SwapInterval(req) => Request::Dri2SwapInterval(req),
4502 #[cfg(feature = "dri2")]
4503 Request::Dri2GetParam(req) => Request::Dri2GetParam(req),
4504 #[cfg(feature = "dri3")]
4505 Request::Dri3QueryVersion(req) => Request::Dri3QueryVersion(req),
4506 #[cfg(feature = "dri3")]
4507 Request::Dri3Open(req) => Request::Dri3Open(req),
4508 #[cfg(feature = "dri3")]
4509 Request::Dri3PixmapFromBuffer(req) => Request::Dri3PixmapFromBuffer(req),
4510 #[cfg(feature = "dri3")]
4511 Request::Dri3BufferFromPixmap(req) => Request::Dri3BufferFromPixmap(req),
4512 #[cfg(feature = "dri3")]
4513 Request::Dri3FenceFromFD(req) => Request::Dri3FenceFromFD(req),
4514 #[cfg(feature = "dri3")]
4515 Request::Dri3FDFromFence(req) => Request::Dri3FDFromFence(req),
4516 #[cfg(feature = "dri3")]
4517 Request::Dri3GetSupportedModifiers(req) => Request::Dri3GetSupportedModifiers(req),
4518 #[cfg(feature = "dri3")]
4519 Request::Dri3PixmapFromBuffers(req) => Request::Dri3PixmapFromBuffers(req),
4520 #[cfg(feature = "dri3")]
4521 Request::Dri3BuffersFromPixmap(req) => Request::Dri3BuffersFromPixmap(req),
4522 #[cfg(feature = "dri3")]
4523 Request::Dri3SetDRMDeviceInUse(req) => Request::Dri3SetDRMDeviceInUse(req),
4524 Request::GeQueryVersion(req) => Request::GeQueryVersion(req),
4525 #[cfg(feature = "glx")]
4526 Request::GlxRender(req) => Request::GlxRender(req.into_owned()),
4527 #[cfg(feature = "glx")]
4528 Request::GlxRenderLarge(req) => Request::GlxRenderLarge(req.into_owned()),
4529 #[cfg(feature = "glx")]
4530 Request::GlxCreateContext(req) => Request::GlxCreateContext(req),
4531 #[cfg(feature = "glx")]
4532 Request::GlxDestroyContext(req) => Request::GlxDestroyContext(req),
4533 #[cfg(feature = "glx")]
4534 Request::GlxMakeCurrent(req) => Request::GlxMakeCurrent(req),
4535 #[cfg(feature = "glx")]
4536 Request::GlxIsDirect(req) => Request::GlxIsDirect(req),
4537 #[cfg(feature = "glx")]
4538 Request::GlxQueryVersion(req) => Request::GlxQueryVersion(req),
4539 #[cfg(feature = "glx")]
4540 Request::GlxWaitGL(req) => Request::GlxWaitGL(req),
4541 #[cfg(feature = "glx")]
4542 Request::GlxWaitX(req) => Request::GlxWaitX(req),
4543 #[cfg(feature = "glx")]
4544 Request::GlxCopyContext(req) => Request::GlxCopyContext(req),
4545 #[cfg(feature = "glx")]
4546 Request::GlxSwapBuffers(req) => Request::GlxSwapBuffers(req),
4547 #[cfg(feature = "glx")]
4548 Request::GlxUseXFont(req) => Request::GlxUseXFont(req),
4549 #[cfg(feature = "glx")]
4550 Request::GlxCreateGLXPixmap(req) => Request::GlxCreateGLXPixmap(req),
4551 #[cfg(feature = "glx")]
4552 Request::GlxGetVisualConfigs(req) => Request::GlxGetVisualConfigs(req),
4553 #[cfg(feature = "glx")]
4554 Request::GlxDestroyGLXPixmap(req) => Request::GlxDestroyGLXPixmap(req),
4555 #[cfg(feature = "glx")]
4556 Request::GlxVendorPrivate(req) => Request::GlxVendorPrivate(req.into_owned()),
4557 #[cfg(feature = "glx")]
4558 Request::GlxVendorPrivateWithReply(req) => Request::GlxVendorPrivateWithReply(req.into_owned()),
4559 #[cfg(feature = "glx")]
4560 Request::GlxQueryExtensionsString(req) => Request::GlxQueryExtensionsString(req),
4561 #[cfg(feature = "glx")]
4562 Request::GlxQueryServerString(req) => Request::GlxQueryServerString(req),
4563 #[cfg(feature = "glx")]
4564 Request::GlxClientInfo(req) => Request::GlxClientInfo(req.into_owned()),
4565 #[cfg(feature = "glx")]
4566 Request::GlxGetFBConfigs(req) => Request::GlxGetFBConfigs(req),
4567 #[cfg(feature = "glx")]
4568 Request::GlxCreatePixmap(req) => Request::GlxCreatePixmap(req.into_owned()),
4569 #[cfg(feature = "glx")]
4570 Request::GlxDestroyPixmap(req) => Request::GlxDestroyPixmap(req),
4571 #[cfg(feature = "glx")]
4572 Request::GlxCreateNewContext(req) => Request::GlxCreateNewContext(req),
4573 #[cfg(feature = "glx")]
4574 Request::GlxQueryContext(req) => Request::GlxQueryContext(req),
4575 #[cfg(feature = "glx")]
4576 Request::GlxMakeContextCurrent(req) => Request::GlxMakeContextCurrent(req),
4577 #[cfg(feature = "glx")]
4578 Request::GlxCreatePbuffer(req) => Request::GlxCreatePbuffer(req.into_owned()),
4579 #[cfg(feature = "glx")]
4580 Request::GlxDestroyPbuffer(req) => Request::GlxDestroyPbuffer(req),
4581 #[cfg(feature = "glx")]
4582 Request::GlxGetDrawableAttributes(req) => Request::GlxGetDrawableAttributes(req),
4583 #[cfg(feature = "glx")]
4584 Request::GlxChangeDrawableAttributes(req) => Request::GlxChangeDrawableAttributes(req.into_owned()),
4585 #[cfg(feature = "glx")]
4586 Request::GlxCreateWindow(req) => Request::GlxCreateWindow(req.into_owned()),
4587 #[cfg(feature = "glx")]
4588 Request::GlxDeleteWindow(req) => Request::GlxDeleteWindow(req),
4589 #[cfg(feature = "glx")]
4590 Request::GlxSetClientInfoARB(req) => Request::GlxSetClientInfoARB(req.into_owned()),
4591 #[cfg(feature = "glx")]
4592 Request::GlxCreateContextAttribsARB(req) => Request::GlxCreateContextAttribsARB(req.into_owned()),
4593 #[cfg(feature = "glx")]
4594 Request::GlxSetClientInfo2ARB(req) => Request::GlxSetClientInfo2ARB(req.into_owned()),
4595 #[cfg(feature = "glx")]
4596 Request::GlxNewList(req) => Request::GlxNewList(req),
4597 #[cfg(feature = "glx")]
4598 Request::GlxEndList(req) => Request::GlxEndList(req),
4599 #[cfg(feature = "glx")]
4600 Request::GlxDeleteLists(req) => Request::GlxDeleteLists(req),
4601 #[cfg(feature = "glx")]
4602 Request::GlxGenLists(req) => Request::GlxGenLists(req),
4603 #[cfg(feature = "glx")]
4604 Request::GlxFeedbackBuffer(req) => Request::GlxFeedbackBuffer(req),
4605 #[cfg(feature = "glx")]
4606 Request::GlxSelectBuffer(req) => Request::GlxSelectBuffer(req),
4607 #[cfg(feature = "glx")]
4608 Request::GlxRenderMode(req) => Request::GlxRenderMode(req),
4609 #[cfg(feature = "glx")]
4610 Request::GlxFinish(req) => Request::GlxFinish(req),
4611 #[cfg(feature = "glx")]
4612 Request::GlxPixelStoref(req) => Request::GlxPixelStoref(req),
4613 #[cfg(feature = "glx")]
4614 Request::GlxPixelStorei(req) => Request::GlxPixelStorei(req),
4615 #[cfg(feature = "glx")]
4616 Request::GlxReadPixels(req) => Request::GlxReadPixels(req),
4617 #[cfg(feature = "glx")]
4618 Request::GlxGetBooleanv(req) => Request::GlxGetBooleanv(req),
4619 #[cfg(feature = "glx")]
4620 Request::GlxGetClipPlane(req) => Request::GlxGetClipPlane(req),
4621 #[cfg(feature = "glx")]
4622 Request::GlxGetDoublev(req) => Request::GlxGetDoublev(req),
4623 #[cfg(feature = "glx")]
4624 Request::GlxGetError(req) => Request::GlxGetError(req),
4625 #[cfg(feature = "glx")]
4626 Request::GlxGetFloatv(req) => Request::GlxGetFloatv(req),
4627 #[cfg(feature = "glx")]
4628 Request::GlxGetIntegerv(req) => Request::GlxGetIntegerv(req),
4629 #[cfg(feature = "glx")]
4630 Request::GlxGetLightfv(req) => Request::GlxGetLightfv(req),
4631 #[cfg(feature = "glx")]
4632 Request::GlxGetLightiv(req) => Request::GlxGetLightiv(req),
4633 #[cfg(feature = "glx")]
4634 Request::GlxGetMapdv(req) => Request::GlxGetMapdv(req),
4635 #[cfg(feature = "glx")]
4636 Request::GlxGetMapfv(req) => Request::GlxGetMapfv(req),
4637 #[cfg(feature = "glx")]
4638 Request::GlxGetMapiv(req) => Request::GlxGetMapiv(req),
4639 #[cfg(feature = "glx")]
4640 Request::GlxGetMaterialfv(req) => Request::GlxGetMaterialfv(req),
4641 #[cfg(feature = "glx")]
4642 Request::GlxGetMaterialiv(req) => Request::GlxGetMaterialiv(req),
4643 #[cfg(feature = "glx")]
4644 Request::GlxGetPixelMapfv(req) => Request::GlxGetPixelMapfv(req),
4645 #[cfg(feature = "glx")]
4646 Request::GlxGetPixelMapuiv(req) => Request::GlxGetPixelMapuiv(req),
4647 #[cfg(feature = "glx")]
4648 Request::GlxGetPixelMapusv(req) => Request::GlxGetPixelMapusv(req),
4649 #[cfg(feature = "glx")]
4650 Request::GlxGetPolygonStipple(req) => Request::GlxGetPolygonStipple(req),
4651 #[cfg(feature = "glx")]
4652 Request::GlxGetString(req) => Request::GlxGetString(req),
4653 #[cfg(feature = "glx")]
4654 Request::GlxGetTexEnvfv(req) => Request::GlxGetTexEnvfv(req),
4655 #[cfg(feature = "glx")]
4656 Request::GlxGetTexEnviv(req) => Request::GlxGetTexEnviv(req),
4657 #[cfg(feature = "glx")]
4658 Request::GlxGetTexGendv(req) => Request::GlxGetTexGendv(req),
4659 #[cfg(feature = "glx")]
4660 Request::GlxGetTexGenfv(req) => Request::GlxGetTexGenfv(req),
4661 #[cfg(feature = "glx")]
4662 Request::GlxGetTexGeniv(req) => Request::GlxGetTexGeniv(req),
4663 #[cfg(feature = "glx")]
4664 Request::GlxGetTexImage(req) => Request::GlxGetTexImage(req),
4665 #[cfg(feature = "glx")]
4666 Request::GlxGetTexParameterfv(req) => Request::GlxGetTexParameterfv(req),
4667 #[cfg(feature = "glx")]
4668 Request::GlxGetTexParameteriv(req) => Request::GlxGetTexParameteriv(req),
4669 #[cfg(feature = "glx")]
4670 Request::GlxGetTexLevelParameterfv(req) => Request::GlxGetTexLevelParameterfv(req),
4671 #[cfg(feature = "glx")]
4672 Request::GlxGetTexLevelParameteriv(req) => Request::GlxGetTexLevelParameteriv(req),
4673 #[cfg(feature = "glx")]
4674 Request::GlxIsEnabled(req) => Request::GlxIsEnabled(req),
4675 #[cfg(feature = "glx")]
4676 Request::GlxIsList(req) => Request::GlxIsList(req),
4677 #[cfg(feature = "glx")]
4678 Request::GlxFlush(req) => Request::GlxFlush(req),
4679 #[cfg(feature = "glx")]
4680 Request::GlxAreTexturesResident(req) => Request::GlxAreTexturesResident(req.into_owned()),
4681 #[cfg(feature = "glx")]
4682 Request::GlxDeleteTextures(req) => Request::GlxDeleteTextures(req.into_owned()),
4683 #[cfg(feature = "glx")]
4684 Request::GlxGenTextures(req) => Request::GlxGenTextures(req),
4685 #[cfg(feature = "glx")]
4686 Request::GlxIsTexture(req) => Request::GlxIsTexture(req),
4687 #[cfg(feature = "glx")]
4688 Request::GlxGetColorTable(req) => Request::GlxGetColorTable(req),
4689 #[cfg(feature = "glx")]
4690 Request::GlxGetColorTableParameterfv(req) => Request::GlxGetColorTableParameterfv(req),
4691 #[cfg(feature = "glx")]
4692 Request::GlxGetColorTableParameteriv(req) => Request::GlxGetColorTableParameteriv(req),
4693 #[cfg(feature = "glx")]
4694 Request::GlxGetConvolutionFilter(req) => Request::GlxGetConvolutionFilter(req),
4695 #[cfg(feature = "glx")]
4696 Request::GlxGetConvolutionParameterfv(req) => Request::GlxGetConvolutionParameterfv(req),
4697 #[cfg(feature = "glx")]
4698 Request::GlxGetConvolutionParameteriv(req) => Request::GlxGetConvolutionParameteriv(req),
4699 #[cfg(feature = "glx")]
4700 Request::GlxGetSeparableFilter(req) => Request::GlxGetSeparableFilter(req),
4701 #[cfg(feature = "glx")]
4702 Request::GlxGetHistogram(req) => Request::GlxGetHistogram(req),
4703 #[cfg(feature = "glx")]
4704 Request::GlxGetHistogramParameterfv(req) => Request::GlxGetHistogramParameterfv(req),
4705 #[cfg(feature = "glx")]
4706 Request::GlxGetHistogramParameteriv(req) => Request::GlxGetHistogramParameteriv(req),
4707 #[cfg(feature = "glx")]
4708 Request::GlxGetMinmax(req) => Request::GlxGetMinmax(req),
4709 #[cfg(feature = "glx")]
4710 Request::GlxGetMinmaxParameterfv(req) => Request::GlxGetMinmaxParameterfv(req),
4711 #[cfg(feature = "glx")]
4712 Request::GlxGetMinmaxParameteriv(req) => Request::GlxGetMinmaxParameteriv(req),
4713 #[cfg(feature = "glx")]
4714 Request::GlxGetCompressedTexImageARB(req) => Request::GlxGetCompressedTexImageARB(req),
4715 #[cfg(feature = "glx")]
4716 Request::GlxDeleteQueriesARB(req) => Request::GlxDeleteQueriesARB(req.into_owned()),
4717 #[cfg(feature = "glx")]
4718 Request::GlxGenQueriesARB(req) => Request::GlxGenQueriesARB(req),
4719 #[cfg(feature = "glx")]
4720 Request::GlxIsQueryARB(req) => Request::GlxIsQueryARB(req),
4721 #[cfg(feature = "glx")]
4722 Request::GlxGetQueryivARB(req) => Request::GlxGetQueryivARB(req),
4723 #[cfg(feature = "glx")]
4724 Request::GlxGetQueryObjectivARB(req) => Request::GlxGetQueryObjectivARB(req),
4725 #[cfg(feature = "glx")]
4726 Request::GlxGetQueryObjectuivARB(req) => Request::GlxGetQueryObjectuivARB(req),
4727 #[cfg(feature = "present")]
4728 Request::PresentQueryVersion(req) => Request::PresentQueryVersion(req),
4729 #[cfg(feature = "present")]
4730 Request::PresentPixmap(req) => Request::PresentPixmap(req.into_owned()),
4731 #[cfg(feature = "present")]
4732 Request::PresentNotifyMSC(req) => Request::PresentNotifyMSC(req),
4733 #[cfg(feature = "present")]
4734 Request::PresentSelectInput(req) => Request::PresentSelectInput(req),
4735 #[cfg(feature = "present")]
4736 Request::PresentQueryCapabilities(req) => Request::PresentQueryCapabilities(req),
4737 #[cfg(feature = "randr")]
4738 Request::RandrQueryVersion(req) => Request::RandrQueryVersion(req),
4739 #[cfg(feature = "randr")]
4740 Request::RandrSetScreenConfig(req) => Request::RandrSetScreenConfig(req),
4741 #[cfg(feature = "randr")]
4742 Request::RandrSelectInput(req) => Request::RandrSelectInput(req),
4743 #[cfg(feature = "randr")]
4744 Request::RandrGetScreenInfo(req) => Request::RandrGetScreenInfo(req),
4745 #[cfg(feature = "randr")]
4746 Request::RandrGetScreenSizeRange(req) => Request::RandrGetScreenSizeRange(req),
4747 #[cfg(feature = "randr")]
4748 Request::RandrSetScreenSize(req) => Request::RandrSetScreenSize(req),
4749 #[cfg(feature = "randr")]
4750 Request::RandrGetScreenResources(req) => Request::RandrGetScreenResources(req),
4751 #[cfg(feature = "randr")]
4752 Request::RandrGetOutputInfo(req) => Request::RandrGetOutputInfo(req),
4753 #[cfg(feature = "randr")]
4754 Request::RandrListOutputProperties(req) => Request::RandrListOutputProperties(req),
4755 #[cfg(feature = "randr")]
4756 Request::RandrQueryOutputProperty(req) => Request::RandrQueryOutputProperty(req),
4757 #[cfg(feature = "randr")]
4758 Request::RandrConfigureOutputProperty(req) => Request::RandrConfigureOutputProperty(req.into_owned()),
4759 #[cfg(feature = "randr")]
4760 Request::RandrChangeOutputProperty(req) => Request::RandrChangeOutputProperty(req.into_owned()),
4761 #[cfg(feature = "randr")]
4762 Request::RandrDeleteOutputProperty(req) => Request::RandrDeleteOutputProperty(req),
4763 #[cfg(feature = "randr")]
4764 Request::RandrGetOutputProperty(req) => Request::RandrGetOutputProperty(req),
4765 #[cfg(feature = "randr")]
4766 Request::RandrCreateMode(req) => Request::RandrCreateMode(req.into_owned()),
4767 #[cfg(feature = "randr")]
4768 Request::RandrDestroyMode(req) => Request::RandrDestroyMode(req),
4769 #[cfg(feature = "randr")]
4770 Request::RandrAddOutputMode(req) => Request::RandrAddOutputMode(req),
4771 #[cfg(feature = "randr")]
4772 Request::RandrDeleteOutputMode(req) => Request::RandrDeleteOutputMode(req),
4773 #[cfg(feature = "randr")]
4774 Request::RandrGetCrtcInfo(req) => Request::RandrGetCrtcInfo(req),
4775 #[cfg(feature = "randr")]
4776 Request::RandrSetCrtcConfig(req) => Request::RandrSetCrtcConfig(req.into_owned()),
4777 #[cfg(feature = "randr")]
4778 Request::RandrGetCrtcGammaSize(req) => Request::RandrGetCrtcGammaSize(req),
4779 #[cfg(feature = "randr")]
4780 Request::RandrGetCrtcGamma(req) => Request::RandrGetCrtcGamma(req),
4781 #[cfg(feature = "randr")]
4782 Request::RandrSetCrtcGamma(req) => Request::RandrSetCrtcGamma(req.into_owned()),
4783 #[cfg(feature = "randr")]
4784 Request::RandrGetScreenResourcesCurrent(req) => Request::RandrGetScreenResourcesCurrent(req),
4785 #[cfg(feature = "randr")]
4786 Request::RandrSetCrtcTransform(req) => Request::RandrSetCrtcTransform(req.into_owned()),
4787 #[cfg(feature = "randr")]
4788 Request::RandrGetCrtcTransform(req) => Request::RandrGetCrtcTransform(req),
4789 #[cfg(feature = "randr")]
4790 Request::RandrGetPanning(req) => Request::RandrGetPanning(req),
4791 #[cfg(feature = "randr")]
4792 Request::RandrSetPanning(req) => Request::RandrSetPanning(req),
4793 #[cfg(feature = "randr")]
4794 Request::RandrSetOutputPrimary(req) => Request::RandrSetOutputPrimary(req),
4795 #[cfg(feature = "randr")]
4796 Request::RandrGetOutputPrimary(req) => Request::RandrGetOutputPrimary(req),
4797 #[cfg(feature = "randr")]
4798 Request::RandrGetProviders(req) => Request::RandrGetProviders(req),
4799 #[cfg(feature = "randr")]
4800 Request::RandrGetProviderInfo(req) => Request::RandrGetProviderInfo(req),
4801 #[cfg(feature = "randr")]
4802 Request::RandrSetProviderOffloadSink(req) => Request::RandrSetProviderOffloadSink(req),
4803 #[cfg(feature = "randr")]
4804 Request::RandrSetProviderOutputSource(req) => Request::RandrSetProviderOutputSource(req),
4805 #[cfg(feature = "randr")]
4806 Request::RandrListProviderProperties(req) => Request::RandrListProviderProperties(req),
4807 #[cfg(feature = "randr")]
4808 Request::RandrQueryProviderProperty(req) => Request::RandrQueryProviderProperty(req),
4809 #[cfg(feature = "randr")]
4810 Request::RandrConfigureProviderProperty(req) => Request::RandrConfigureProviderProperty(req.into_owned()),
4811 #[cfg(feature = "randr")]
4812 Request::RandrChangeProviderProperty(req) => Request::RandrChangeProviderProperty(req.into_owned()),
4813 #[cfg(feature = "randr")]
4814 Request::RandrDeleteProviderProperty(req) => Request::RandrDeleteProviderProperty(req),
4815 #[cfg(feature = "randr")]
4816 Request::RandrGetProviderProperty(req) => Request::RandrGetProviderProperty(req),
4817 #[cfg(feature = "randr")]
4818 Request::RandrGetMonitors(req) => Request::RandrGetMonitors(req),
4819 #[cfg(feature = "randr")]
4820 Request::RandrSetMonitor(req) => Request::RandrSetMonitor(req),
4821 #[cfg(feature = "randr")]
4822 Request::RandrDeleteMonitor(req) => Request::RandrDeleteMonitor(req),
4823 #[cfg(feature = "randr")]
4824 Request::RandrCreateLease(req) => Request::RandrCreateLease(req.into_owned()),
4825 #[cfg(feature = "randr")]
4826 Request::RandrFreeLease(req) => Request::RandrFreeLease(req),
4827 #[cfg(feature = "record")]
4828 Request::RecordQueryVersion(req) => Request::RecordQueryVersion(req),
4829 #[cfg(feature = "record")]
4830 Request::RecordCreateContext(req) => Request::RecordCreateContext(req.into_owned()),
4831 #[cfg(feature = "record")]
4832 Request::RecordRegisterClients(req) => Request::RecordRegisterClients(req.into_owned()),
4833 #[cfg(feature = "record")]
4834 Request::RecordUnregisterClients(req) => Request::RecordUnregisterClients(req.into_owned()),
4835 #[cfg(feature = "record")]
4836 Request::RecordGetContext(req) => Request::RecordGetContext(req),
4837 #[cfg(feature = "record")]
4838 Request::RecordEnableContext(req) => Request::RecordEnableContext(req),
4839 #[cfg(feature = "record")]
4840 Request::RecordDisableContext(req) => Request::RecordDisableContext(req),
4841 #[cfg(feature = "record")]
4842 Request::RecordFreeContext(req) => Request::RecordFreeContext(req),
4843 #[cfg(feature = "render")]
4844 Request::RenderQueryVersion(req) => Request::RenderQueryVersion(req),
4845 #[cfg(feature = "render")]
4846 Request::RenderQueryPictFormats(req) => Request::RenderQueryPictFormats(req),
4847 #[cfg(feature = "render")]
4848 Request::RenderQueryPictIndexValues(req) => Request::RenderQueryPictIndexValues(req),
4849 #[cfg(feature = "render")]
4850 Request::RenderCreatePicture(req) => Request::RenderCreatePicture(req.into_owned()),
4851 #[cfg(feature = "render")]
4852 Request::RenderChangePicture(req) => Request::RenderChangePicture(req.into_owned()),
4853 #[cfg(feature = "render")]
4854 Request::RenderSetPictureClipRectangles(req) => Request::RenderSetPictureClipRectangles(req.into_owned()),
4855 #[cfg(feature = "render")]
4856 Request::RenderFreePicture(req) => Request::RenderFreePicture(req),
4857 #[cfg(feature = "render")]
4858 Request::RenderComposite(req) => Request::RenderComposite(req),
4859 #[cfg(feature = "render")]
4860 Request::RenderTrapezoids(req) => Request::RenderTrapezoids(req.into_owned()),
4861 #[cfg(feature = "render")]
4862 Request::RenderTriangles(req) => Request::RenderTriangles(req.into_owned()),
4863 #[cfg(feature = "render")]
4864 Request::RenderTriStrip(req) => Request::RenderTriStrip(req.into_owned()),
4865 #[cfg(feature = "render")]
4866 Request::RenderTriFan(req) => Request::RenderTriFan(req.into_owned()),
4867 #[cfg(feature = "render")]
4868 Request::RenderCreateGlyphSet(req) => Request::RenderCreateGlyphSet(req),
4869 #[cfg(feature = "render")]
4870 Request::RenderReferenceGlyphSet(req) => Request::RenderReferenceGlyphSet(req),
4871 #[cfg(feature = "render")]
4872 Request::RenderFreeGlyphSet(req) => Request::RenderFreeGlyphSet(req),
4873 #[cfg(feature = "render")]
4874 Request::RenderAddGlyphs(req) => Request::RenderAddGlyphs(req.into_owned()),
4875 #[cfg(feature = "render")]
4876 Request::RenderFreeGlyphs(req) => Request::RenderFreeGlyphs(req.into_owned()),
4877 #[cfg(feature = "render")]
4878 Request::RenderCompositeGlyphs8(req) => Request::RenderCompositeGlyphs8(req.into_owned()),
4879 #[cfg(feature = "render")]
4880 Request::RenderCompositeGlyphs16(req) => Request::RenderCompositeGlyphs16(req.into_owned()),
4881 #[cfg(feature = "render")]
4882 Request::RenderCompositeGlyphs32(req) => Request::RenderCompositeGlyphs32(req.into_owned()),
4883 #[cfg(feature = "render")]
4884 Request::RenderFillRectangles(req) => Request::RenderFillRectangles(req.into_owned()),
4885 #[cfg(feature = "render")]
4886 Request::RenderCreateCursor(req) => Request::RenderCreateCursor(req),
4887 #[cfg(feature = "render")]
4888 Request::RenderSetPictureTransform(req) => Request::RenderSetPictureTransform(req),
4889 #[cfg(feature = "render")]
4890 Request::RenderQueryFilters(req) => Request::RenderQueryFilters(req),
4891 #[cfg(feature = "render")]
4892 Request::RenderSetPictureFilter(req) => Request::RenderSetPictureFilter(req.into_owned()),
4893 #[cfg(feature = "render")]
4894 Request::RenderCreateAnimCursor(req) => Request::RenderCreateAnimCursor(req.into_owned()),
4895 #[cfg(feature = "render")]
4896 Request::RenderAddTraps(req) => Request::RenderAddTraps(req.into_owned()),
4897 #[cfg(feature = "render")]
4898 Request::RenderCreateSolidFill(req) => Request::RenderCreateSolidFill(req),
4899 #[cfg(feature = "render")]
4900 Request::RenderCreateLinearGradient(req) => Request::RenderCreateLinearGradient(req.into_owned()),
4901 #[cfg(feature = "render")]
4902 Request::RenderCreateRadialGradient(req) => Request::RenderCreateRadialGradient(req.into_owned()),
4903 #[cfg(feature = "render")]
4904 Request::RenderCreateConicalGradient(req) => Request::RenderCreateConicalGradient(req.into_owned()),
4905 #[cfg(feature = "res")]
4906 Request::ResQueryVersion(req) => Request::ResQueryVersion(req),
4907 #[cfg(feature = "res")]
4908 Request::ResQueryClients(req) => Request::ResQueryClients(req),
4909 #[cfg(feature = "res")]
4910 Request::ResQueryClientResources(req) => Request::ResQueryClientResources(req),
4911 #[cfg(feature = "res")]
4912 Request::ResQueryClientPixmapBytes(req) => Request::ResQueryClientPixmapBytes(req),
4913 #[cfg(feature = "res")]
4914 Request::ResQueryClientIds(req) => Request::ResQueryClientIds(req.into_owned()),
4915 #[cfg(feature = "res")]
4916 Request::ResQueryResourceBytes(req) => Request::ResQueryResourceBytes(req.into_owned()),
4917 #[cfg(feature = "screensaver")]
4918 Request::ScreensaverQueryVersion(req) => Request::ScreensaverQueryVersion(req),
4919 #[cfg(feature = "screensaver")]
4920 Request::ScreensaverQueryInfo(req) => Request::ScreensaverQueryInfo(req),
4921 #[cfg(feature = "screensaver")]
4922 Request::ScreensaverSelectInput(req) => Request::ScreensaverSelectInput(req),
4923 #[cfg(feature = "screensaver")]
4924 Request::ScreensaverSetAttributes(req) => Request::ScreensaverSetAttributes(req.into_owned()),
4925 #[cfg(feature = "screensaver")]
4926 Request::ScreensaverUnsetAttributes(req) => Request::ScreensaverUnsetAttributes(req),
4927 #[cfg(feature = "screensaver")]
4928 Request::ScreensaverSuspend(req) => Request::ScreensaverSuspend(req),
4929 #[cfg(feature = "shape")]
4930 Request::ShapeQueryVersion(req) => Request::ShapeQueryVersion(req),
4931 #[cfg(feature = "shape")]
4932 Request::ShapeRectangles(req) => Request::ShapeRectangles(req.into_owned()),
4933 #[cfg(feature = "shape")]
4934 Request::ShapeMask(req) => Request::ShapeMask(req),
4935 #[cfg(feature = "shape")]
4936 Request::ShapeCombine(req) => Request::ShapeCombine(req),
4937 #[cfg(feature = "shape")]
4938 Request::ShapeOffset(req) => Request::ShapeOffset(req),
4939 #[cfg(feature = "shape")]
4940 Request::ShapeQueryExtents(req) => Request::ShapeQueryExtents(req),
4941 #[cfg(feature = "shape")]
4942 Request::ShapeSelectInput(req) => Request::ShapeSelectInput(req),
4943 #[cfg(feature = "shape")]
4944 Request::ShapeInputSelected(req) => Request::ShapeInputSelected(req),
4945 #[cfg(feature = "shape")]
4946 Request::ShapeGetRectangles(req) => Request::ShapeGetRectangles(req),
4947 #[cfg(feature = "shm")]
4948 Request::ShmQueryVersion(req) => Request::ShmQueryVersion(req),
4949 #[cfg(feature = "shm")]
4950 Request::ShmAttach(req) => Request::ShmAttach(req),
4951 #[cfg(feature = "shm")]
4952 Request::ShmDetach(req) => Request::ShmDetach(req),
4953 #[cfg(feature = "shm")]
4954 Request::ShmPutImage(req) => Request::ShmPutImage(req),
4955 #[cfg(feature = "shm")]
4956 Request::ShmGetImage(req) => Request::ShmGetImage(req),
4957 #[cfg(feature = "shm")]
4958 Request::ShmCreatePixmap(req) => Request::ShmCreatePixmap(req),
4959 #[cfg(feature = "shm")]
4960 Request::ShmAttachFd(req) => Request::ShmAttachFd(req),
4961 #[cfg(feature = "shm")]
4962 Request::ShmCreateSegment(req) => Request::ShmCreateSegment(req),
4963 #[cfg(feature = "sync")]
4964 Request::SyncInitialize(req) => Request::SyncInitialize(req),
4965 #[cfg(feature = "sync")]
4966 Request::SyncListSystemCounters(req) => Request::SyncListSystemCounters(req),
4967 #[cfg(feature = "sync")]
4968 Request::SyncCreateCounter(req) => Request::SyncCreateCounter(req),
4969 #[cfg(feature = "sync")]
4970 Request::SyncDestroyCounter(req) => Request::SyncDestroyCounter(req),
4971 #[cfg(feature = "sync")]
4972 Request::SyncQueryCounter(req) => Request::SyncQueryCounter(req),
4973 #[cfg(feature = "sync")]
4974 Request::SyncAwait(req) => Request::SyncAwait(req.into_owned()),
4975 #[cfg(feature = "sync")]
4976 Request::SyncChangeCounter(req) => Request::SyncChangeCounter(req),
4977 #[cfg(feature = "sync")]
4978 Request::SyncSetCounter(req) => Request::SyncSetCounter(req),
4979 #[cfg(feature = "sync")]
4980 Request::SyncCreateAlarm(req) => Request::SyncCreateAlarm(req.into_owned()),
4981 #[cfg(feature = "sync")]
4982 Request::SyncChangeAlarm(req) => Request::SyncChangeAlarm(req.into_owned()),
4983 #[cfg(feature = "sync")]
4984 Request::SyncDestroyAlarm(req) => Request::SyncDestroyAlarm(req),
4985 #[cfg(feature = "sync")]
4986 Request::SyncQueryAlarm(req) => Request::SyncQueryAlarm(req),
4987 #[cfg(feature = "sync")]
4988 Request::SyncSetPriority(req) => Request::SyncSetPriority(req),
4989 #[cfg(feature = "sync")]
4990 Request::SyncGetPriority(req) => Request::SyncGetPriority(req),
4991 #[cfg(feature = "sync")]
4992 Request::SyncCreateFence(req) => Request::SyncCreateFence(req),
4993 #[cfg(feature = "sync")]
4994 Request::SyncTriggerFence(req) => Request::SyncTriggerFence(req),
4995 #[cfg(feature = "sync")]
4996 Request::SyncResetFence(req) => Request::SyncResetFence(req),
4997 #[cfg(feature = "sync")]
4998 Request::SyncDestroyFence(req) => Request::SyncDestroyFence(req),
4999 #[cfg(feature = "sync")]
5000 Request::SyncQueryFence(req) => Request::SyncQueryFence(req),
5001 #[cfg(feature = "sync")]
5002 Request::SyncAwaitFence(req) => Request::SyncAwaitFence(req.into_owned()),
5003 Request::XcMiscGetVersion(req) => Request::XcMiscGetVersion(req),
5004 Request::XcMiscGetXIDRange(req) => Request::XcMiscGetXIDRange(req),
5005 Request::XcMiscGetXIDList(req) => Request::XcMiscGetXIDList(req),
5006 #[cfg(feature = "xevie")]
5007 Request::XevieQueryVersion(req) => Request::XevieQueryVersion(req),
5008 #[cfg(feature = "xevie")]
5009 Request::XevieStart(req) => Request::XevieStart(req),
5010 #[cfg(feature = "xevie")]
5011 Request::XevieEnd(req) => Request::XevieEnd(req),
5012 #[cfg(feature = "xevie")]
5013 Request::XevieSend(req) => Request::XevieSend(req),
5014 #[cfg(feature = "xevie")]
5015 Request::XevieSelectInput(req) => Request::XevieSelectInput(req),
5016 #[cfg(feature = "xf86dri")]
5017 Request::Xf86driQueryVersion(req) => Request::Xf86driQueryVersion(req),
5018 #[cfg(feature = "xf86dri")]
5019 Request::Xf86driQueryDirectRenderingCapable(req) => Request::Xf86driQueryDirectRenderingCapable(req),
5020 #[cfg(feature = "xf86dri")]
5021 Request::Xf86driOpenConnection(req) => Request::Xf86driOpenConnection(req),
5022 #[cfg(feature = "xf86dri")]
5023 Request::Xf86driCloseConnection(req) => Request::Xf86driCloseConnection(req),
5024 #[cfg(feature = "xf86dri")]
5025 Request::Xf86driGetClientDriverName(req) => Request::Xf86driGetClientDriverName(req),
5026 #[cfg(feature = "xf86dri")]
5027 Request::Xf86driCreateContext(req) => Request::Xf86driCreateContext(req),
5028 #[cfg(feature = "xf86dri")]
5029 Request::Xf86driDestroyContext(req) => Request::Xf86driDestroyContext(req),
5030 #[cfg(feature = "xf86dri")]
5031 Request::Xf86driCreateDrawable(req) => Request::Xf86driCreateDrawable(req),
5032 #[cfg(feature = "xf86dri")]
5033 Request::Xf86driDestroyDrawable(req) => Request::Xf86driDestroyDrawable(req),
5034 #[cfg(feature = "xf86dri")]
5035 Request::Xf86driGetDrawableInfo(req) => Request::Xf86driGetDrawableInfo(req),
5036 #[cfg(feature = "xf86dri")]
5037 Request::Xf86driGetDeviceInfo(req) => Request::Xf86driGetDeviceInfo(req),
5038 #[cfg(feature = "xf86dri")]
5039 Request::Xf86driAuthConnection(req) => Request::Xf86driAuthConnection(req),
5040 #[cfg(feature = "xf86vidmode")]
5041 Request::Xf86vidmodeQueryVersion(req) => Request::Xf86vidmodeQueryVersion(req),
5042 #[cfg(feature = "xf86vidmode")]
5043 Request::Xf86vidmodeGetModeLine(req) => Request::Xf86vidmodeGetModeLine(req),
5044 #[cfg(feature = "xf86vidmode")]
5045 Request::Xf86vidmodeModModeLine(req) => Request::Xf86vidmodeModModeLine(req.into_owned()),
5046 #[cfg(feature = "xf86vidmode")]
5047 Request::Xf86vidmodeSwitchMode(req) => Request::Xf86vidmodeSwitchMode(req),
5048 #[cfg(feature = "xf86vidmode")]
5049 Request::Xf86vidmodeGetMonitor(req) => Request::Xf86vidmodeGetMonitor(req),
5050 #[cfg(feature = "xf86vidmode")]
5051 Request::Xf86vidmodeLockModeSwitch(req) => Request::Xf86vidmodeLockModeSwitch(req),
5052 #[cfg(feature = "xf86vidmode")]
5053 Request::Xf86vidmodeGetAllModeLines(req) => Request::Xf86vidmodeGetAllModeLines(req),
5054 #[cfg(feature = "xf86vidmode")]
5055 Request::Xf86vidmodeAddModeLine(req) => Request::Xf86vidmodeAddModeLine(req.into_owned()),
5056 #[cfg(feature = "xf86vidmode")]
5057 Request::Xf86vidmodeDeleteModeLine(req) => Request::Xf86vidmodeDeleteModeLine(req.into_owned()),
5058 #[cfg(feature = "xf86vidmode")]
5059 Request::Xf86vidmodeValidateModeLine(req) => Request::Xf86vidmodeValidateModeLine(req.into_owned()),
5060 #[cfg(feature = "xf86vidmode")]
5061 Request::Xf86vidmodeSwitchToMode(req) => Request::Xf86vidmodeSwitchToMode(req.into_owned()),
5062 #[cfg(feature = "xf86vidmode")]
5063 Request::Xf86vidmodeGetViewPort(req) => Request::Xf86vidmodeGetViewPort(req),
5064 #[cfg(feature = "xf86vidmode")]
5065 Request::Xf86vidmodeSetViewPort(req) => Request::Xf86vidmodeSetViewPort(req),
5066 #[cfg(feature = "xf86vidmode")]
5067 Request::Xf86vidmodeGetDotClocks(req) => Request::Xf86vidmodeGetDotClocks(req),
5068 #[cfg(feature = "xf86vidmode")]
5069 Request::Xf86vidmodeSetClientVersion(req) => Request::Xf86vidmodeSetClientVersion(req),
5070 #[cfg(feature = "xf86vidmode")]
5071 Request::Xf86vidmodeSetGamma(req) => Request::Xf86vidmodeSetGamma(req),
5072 #[cfg(feature = "xf86vidmode")]
5073 Request::Xf86vidmodeGetGamma(req) => Request::Xf86vidmodeGetGamma(req),
5074 #[cfg(feature = "xf86vidmode")]
5075 Request::Xf86vidmodeGetGammaRamp(req) => Request::Xf86vidmodeGetGammaRamp(req),
5076 #[cfg(feature = "xf86vidmode")]
5077 Request::Xf86vidmodeSetGammaRamp(req) => Request::Xf86vidmodeSetGammaRamp(req.into_owned()),
5078 #[cfg(feature = "xf86vidmode")]
5079 Request::Xf86vidmodeGetGammaRampSize(req) => Request::Xf86vidmodeGetGammaRampSize(req),
5080 #[cfg(feature = "xf86vidmode")]
5081 Request::Xf86vidmodeGetPermissions(req) => Request::Xf86vidmodeGetPermissions(req),
5082 #[cfg(feature = "xfixes")]
5083 Request::XfixesQueryVersion(req) => Request::XfixesQueryVersion(req),
5084 #[cfg(feature = "xfixes")]
5085 Request::XfixesChangeSaveSet(req) => Request::XfixesChangeSaveSet(req),
5086 #[cfg(feature = "xfixes")]
5087 Request::XfixesSelectSelectionInput(req) => Request::XfixesSelectSelectionInput(req),
5088 #[cfg(feature = "xfixes")]
5089 Request::XfixesSelectCursorInput(req) => Request::XfixesSelectCursorInput(req),
5090 #[cfg(feature = "xfixes")]
5091 Request::XfixesGetCursorImage(req) => Request::XfixesGetCursorImage(req),
5092 #[cfg(feature = "xfixes")]
5093 Request::XfixesCreateRegion(req) => Request::XfixesCreateRegion(req.into_owned()),
5094 #[cfg(feature = "xfixes")]
5095 Request::XfixesCreateRegionFromBitmap(req) => Request::XfixesCreateRegionFromBitmap(req),
5096 #[cfg(feature = "xfixes")]
5097 Request::XfixesCreateRegionFromWindow(req) => Request::XfixesCreateRegionFromWindow(req),
5098 #[cfg(feature = "xfixes")]
5099 Request::XfixesCreateRegionFromGC(req) => Request::XfixesCreateRegionFromGC(req),
5100 #[cfg(feature = "xfixes")]
5101 Request::XfixesCreateRegionFromPicture(req) => Request::XfixesCreateRegionFromPicture(req),
5102 #[cfg(feature = "xfixes")]
5103 Request::XfixesDestroyRegion(req) => Request::XfixesDestroyRegion(req),
5104 #[cfg(feature = "xfixes")]
5105 Request::XfixesSetRegion(req) => Request::XfixesSetRegion(req.into_owned()),
5106 #[cfg(feature = "xfixes")]
5107 Request::XfixesCopyRegion(req) => Request::XfixesCopyRegion(req),
5108 #[cfg(feature = "xfixes")]
5109 Request::XfixesUnionRegion(req) => Request::XfixesUnionRegion(req),
5110 #[cfg(feature = "xfixes")]
5111 Request::XfixesIntersectRegion(req) => Request::XfixesIntersectRegion(req),
5112 #[cfg(feature = "xfixes")]
5113 Request::XfixesSubtractRegion(req) => Request::XfixesSubtractRegion(req),
5114 #[cfg(feature = "xfixes")]
5115 Request::XfixesInvertRegion(req) => Request::XfixesInvertRegion(req),
5116 #[cfg(feature = "xfixes")]
5117 Request::XfixesTranslateRegion(req) => Request::XfixesTranslateRegion(req),
5118 #[cfg(feature = "xfixes")]
5119 Request::XfixesRegionExtents(req) => Request::XfixesRegionExtents(req),
5120 #[cfg(feature = "xfixes")]
5121 Request::XfixesFetchRegion(req) => Request::XfixesFetchRegion(req),
5122 #[cfg(feature = "xfixes")]
5123 Request::XfixesSetGCClipRegion(req) => Request::XfixesSetGCClipRegion(req),
5124 #[cfg(feature = "xfixes")]
5125 Request::XfixesSetWindowShapeRegion(req) => Request::XfixesSetWindowShapeRegion(req),
5126 #[cfg(feature = "xfixes")]
5127 Request::XfixesSetPictureClipRegion(req) => Request::XfixesSetPictureClipRegion(req),
5128 #[cfg(feature = "xfixes")]
5129 Request::XfixesSetCursorName(req) => Request::XfixesSetCursorName(req.into_owned()),
5130 #[cfg(feature = "xfixes")]
5131 Request::XfixesGetCursorName(req) => Request::XfixesGetCursorName(req),
5132 #[cfg(feature = "xfixes")]
5133 Request::XfixesGetCursorImageAndName(req) => Request::XfixesGetCursorImageAndName(req),
5134 #[cfg(feature = "xfixes")]
5135 Request::XfixesChangeCursor(req) => Request::XfixesChangeCursor(req),
5136 #[cfg(feature = "xfixes")]
5137 Request::XfixesChangeCursorByName(req) => Request::XfixesChangeCursorByName(req.into_owned()),
5138 #[cfg(feature = "xfixes")]
5139 Request::XfixesExpandRegion(req) => Request::XfixesExpandRegion(req),
5140 #[cfg(feature = "xfixes")]
5141 Request::XfixesHideCursor(req) => Request::XfixesHideCursor(req),
5142 #[cfg(feature = "xfixes")]
5143 Request::XfixesShowCursor(req) => Request::XfixesShowCursor(req),
5144 #[cfg(feature = "xfixes")]
5145 Request::XfixesCreatePointerBarrier(req) => Request::XfixesCreatePointerBarrier(req.into_owned()),
5146 #[cfg(feature = "xfixes")]
5147 Request::XfixesDeletePointerBarrier(req) => Request::XfixesDeletePointerBarrier(req),
5148 #[cfg(feature = "xfixes")]
5149 Request::XfixesSetClientDisconnectMode(req) => Request::XfixesSetClientDisconnectMode(req),
5150 #[cfg(feature = "xfixes")]
5151 Request::XfixesGetClientDisconnectMode(req) => Request::XfixesGetClientDisconnectMode(req),
5152 #[cfg(feature = "xinerama")]
5153 Request::XineramaQueryVersion(req) => Request::XineramaQueryVersion(req),
5154 #[cfg(feature = "xinerama")]
5155 Request::XineramaGetState(req) => Request::XineramaGetState(req),
5156 #[cfg(feature = "xinerama")]
5157 Request::XineramaGetScreenCount(req) => Request::XineramaGetScreenCount(req),
5158 #[cfg(feature = "xinerama")]
5159 Request::XineramaGetScreenSize(req) => Request::XineramaGetScreenSize(req),
5160 #[cfg(feature = "xinerama")]
5161 Request::XineramaIsActive(req) => Request::XineramaIsActive(req),
5162 #[cfg(feature = "xinerama")]
5163 Request::XineramaQueryScreens(req) => Request::XineramaQueryScreens(req),
5164 #[cfg(feature = "xinput")]
5165 Request::XinputGetExtensionVersion(req) => Request::XinputGetExtensionVersion(req.into_owned()),
5166 #[cfg(feature = "xinput")]
5167 Request::XinputListInputDevices(req) => Request::XinputListInputDevices(req),
5168 #[cfg(feature = "xinput")]
5169 Request::XinputOpenDevice(req) => Request::XinputOpenDevice(req),
5170 #[cfg(feature = "xinput")]
5171 Request::XinputCloseDevice(req) => Request::XinputCloseDevice(req),
5172 #[cfg(feature = "xinput")]
5173 Request::XinputSetDeviceMode(req) => Request::XinputSetDeviceMode(req),
5174 #[cfg(feature = "xinput")]
5175 Request::XinputSelectExtensionEvent(req) => Request::XinputSelectExtensionEvent(req.into_owned()),
5176 #[cfg(feature = "xinput")]
5177 Request::XinputGetSelectedExtensionEvents(req) => Request::XinputGetSelectedExtensionEvents(req),
5178 #[cfg(feature = "xinput")]
5179 Request::XinputChangeDeviceDontPropagateList(req) => Request::XinputChangeDeviceDontPropagateList(req.into_owned()),
5180 #[cfg(feature = "xinput")]
5181 Request::XinputGetDeviceDontPropagateList(req) => Request::XinputGetDeviceDontPropagateList(req),
5182 #[cfg(feature = "xinput")]
5183 Request::XinputGetDeviceMotionEvents(req) => Request::XinputGetDeviceMotionEvents(req),
5184 #[cfg(feature = "xinput")]
5185 Request::XinputChangeKeyboardDevice(req) => Request::XinputChangeKeyboardDevice(req),
5186 #[cfg(feature = "xinput")]
5187 Request::XinputChangePointerDevice(req) => Request::XinputChangePointerDevice(req),
5188 #[cfg(feature = "xinput")]
5189 Request::XinputGrabDevice(req) => Request::XinputGrabDevice(req.into_owned()),
5190 #[cfg(feature = "xinput")]
5191 Request::XinputUngrabDevice(req) => Request::XinputUngrabDevice(req),
5192 #[cfg(feature = "xinput")]
5193 Request::XinputGrabDeviceKey(req) => Request::XinputGrabDeviceKey(req.into_owned()),
5194 #[cfg(feature = "xinput")]
5195 Request::XinputUngrabDeviceKey(req) => Request::XinputUngrabDeviceKey(req),
5196 #[cfg(feature = "xinput")]
5197 Request::XinputGrabDeviceButton(req) => Request::XinputGrabDeviceButton(req.into_owned()),
5198 #[cfg(feature = "xinput")]
5199 Request::XinputUngrabDeviceButton(req) => Request::XinputUngrabDeviceButton(req),
5200 #[cfg(feature = "xinput")]
5201 Request::XinputAllowDeviceEvents(req) => Request::XinputAllowDeviceEvents(req),
5202 #[cfg(feature = "xinput")]
5203 Request::XinputGetDeviceFocus(req) => Request::XinputGetDeviceFocus(req),
5204 #[cfg(feature = "xinput")]
5205 Request::XinputSetDeviceFocus(req) => Request::XinputSetDeviceFocus(req),
5206 #[cfg(feature = "xinput")]
5207 Request::XinputGetFeedbackControl(req) => Request::XinputGetFeedbackControl(req),
5208 #[cfg(feature = "xinput")]
5209 Request::XinputChangeFeedbackControl(req) => Request::XinputChangeFeedbackControl(req),
5210 #[cfg(feature = "xinput")]
5211 Request::XinputGetDeviceKeyMapping(req) => Request::XinputGetDeviceKeyMapping(req),
5212 #[cfg(feature = "xinput")]
5213 Request::XinputChangeDeviceKeyMapping(req) => Request::XinputChangeDeviceKeyMapping(req.into_owned()),
5214 #[cfg(feature = "xinput")]
5215 Request::XinputGetDeviceModifierMapping(req) => Request::XinputGetDeviceModifierMapping(req),
5216 #[cfg(feature = "xinput")]
5217 Request::XinputSetDeviceModifierMapping(req) => Request::XinputSetDeviceModifierMapping(req.into_owned()),
5218 #[cfg(feature = "xinput")]
5219 Request::XinputGetDeviceButtonMapping(req) => Request::XinputGetDeviceButtonMapping(req),
5220 #[cfg(feature = "xinput")]
5221 Request::XinputSetDeviceButtonMapping(req) => Request::XinputSetDeviceButtonMapping(req.into_owned()),
5222 #[cfg(feature = "xinput")]
5223 Request::XinputQueryDeviceState(req) => Request::XinputQueryDeviceState(req),
5224 #[cfg(feature = "xinput")]
5225 Request::XinputDeviceBell(req) => Request::XinputDeviceBell(req),
5226 #[cfg(feature = "xinput")]
5227 Request::XinputSetDeviceValuators(req) => Request::XinputSetDeviceValuators(req.into_owned()),
5228 #[cfg(feature = "xinput")]
5229 Request::XinputGetDeviceControl(req) => Request::XinputGetDeviceControl(req),
5230 #[cfg(feature = "xinput")]
5231 Request::XinputChangeDeviceControl(req) => Request::XinputChangeDeviceControl(req),
5232 #[cfg(feature = "xinput")]
5233 Request::XinputListDeviceProperties(req) => Request::XinputListDeviceProperties(req),
5234 #[cfg(feature = "xinput")]
5235 Request::XinputChangeDeviceProperty(req) => Request::XinputChangeDeviceProperty(req.into_owned()),
5236 #[cfg(feature = "xinput")]
5237 Request::XinputDeleteDeviceProperty(req) => Request::XinputDeleteDeviceProperty(req),
5238 #[cfg(feature = "xinput")]
5239 Request::XinputGetDeviceProperty(req) => Request::XinputGetDeviceProperty(req),
5240 #[cfg(feature = "xinput")]
5241 Request::XinputXIQueryPointer(req) => Request::XinputXIQueryPointer(req),
5242 #[cfg(feature = "xinput")]
5243 Request::XinputXIWarpPointer(req) => Request::XinputXIWarpPointer(req),
5244 #[cfg(feature = "xinput")]
5245 Request::XinputXIChangeCursor(req) => Request::XinputXIChangeCursor(req),
5246 #[cfg(feature = "xinput")]
5247 Request::XinputXIChangeHierarchy(req) => Request::XinputXIChangeHierarchy(req.into_owned()),
5248 #[cfg(feature = "xinput")]
5249 Request::XinputXISetClientPointer(req) => Request::XinputXISetClientPointer(req),
5250 #[cfg(feature = "xinput")]
5251 Request::XinputXIGetClientPointer(req) => Request::XinputXIGetClientPointer(req),
5252 #[cfg(feature = "xinput")]
5253 Request::XinputXISelectEvents(req) => Request::XinputXISelectEvents(req.into_owned()),
5254 #[cfg(feature = "xinput")]
5255 Request::XinputXIQueryVersion(req) => Request::XinputXIQueryVersion(req),
5256 #[cfg(feature = "xinput")]
5257 Request::XinputXIQueryDevice(req) => Request::XinputXIQueryDevice(req),
5258 #[cfg(feature = "xinput")]
5259 Request::XinputXISetFocus(req) => Request::XinputXISetFocus(req),
5260 #[cfg(feature = "xinput")]
5261 Request::XinputXIGetFocus(req) => Request::XinputXIGetFocus(req),
5262 #[cfg(feature = "xinput")]
5263 Request::XinputXIGrabDevice(req) => Request::XinputXIGrabDevice(req.into_owned()),
5264 #[cfg(feature = "xinput")]
5265 Request::XinputXIUngrabDevice(req) => Request::XinputXIUngrabDevice(req),
5266 #[cfg(feature = "xinput")]
5267 Request::XinputXIAllowEvents(req) => Request::XinputXIAllowEvents(req),
5268 #[cfg(feature = "xinput")]
5269 Request::XinputXIPassiveGrabDevice(req) => Request::XinputXIPassiveGrabDevice(req.into_owned()),
5270 #[cfg(feature = "xinput")]
5271 Request::XinputXIPassiveUngrabDevice(req) => Request::XinputXIPassiveUngrabDevice(req.into_owned()),
5272 #[cfg(feature = "xinput")]
5273 Request::XinputXIListProperties(req) => Request::XinputXIListProperties(req),
5274 #[cfg(feature = "xinput")]
5275 Request::XinputXIChangeProperty(req) => Request::XinputXIChangeProperty(req.into_owned()),
5276 #[cfg(feature = "xinput")]
5277 Request::XinputXIDeleteProperty(req) => Request::XinputXIDeleteProperty(req),
5278 #[cfg(feature = "xinput")]
5279 Request::XinputXIGetProperty(req) => Request::XinputXIGetProperty(req),
5280 #[cfg(feature = "xinput")]
5281 Request::XinputXIGetSelectedEvents(req) => Request::XinputXIGetSelectedEvents(req),
5282 #[cfg(feature = "xinput")]
5283 Request::XinputXIBarrierReleasePointer(req) => Request::XinputXIBarrierReleasePointer(req.into_owned()),
5284 #[cfg(feature = "xinput")]
5285 Request::XinputSendExtensionEvent(req) => Request::XinputSendExtensionEvent(req.into_owned()),
5286 #[cfg(feature = "xkb")]
5287 Request::XkbUseExtension(req) => Request::XkbUseExtension(req),
5288 #[cfg(feature = "xkb")]
5289 Request::XkbSelectEvents(req) => Request::XkbSelectEvents(req.into_owned()),
5290 #[cfg(feature = "xkb")]
5291 Request::XkbBell(req) => Request::XkbBell(req),
5292 #[cfg(feature = "xkb")]
5293 Request::XkbGetState(req) => Request::XkbGetState(req),
5294 #[cfg(feature = "xkb")]
5295 Request::XkbLatchLockState(req) => Request::XkbLatchLockState(req),
5296 #[cfg(feature = "xkb")]
5297 Request::XkbGetControls(req) => Request::XkbGetControls(req),
5298 #[cfg(feature = "xkb")]
5299 Request::XkbSetControls(req) => Request::XkbSetControls(req.into_owned()),
5300 #[cfg(feature = "xkb")]
5301 Request::XkbGetMap(req) => Request::XkbGetMap(req),
5302 #[cfg(feature = "xkb")]
5303 Request::XkbSetMap(req) => Request::XkbSetMap(req.into_owned()),
5304 #[cfg(feature = "xkb")]
5305 Request::XkbGetCompatMap(req) => Request::XkbGetCompatMap(req),
5306 #[cfg(feature = "xkb")]
5307 Request::XkbSetCompatMap(req) => Request::XkbSetCompatMap(req.into_owned()),
5308 #[cfg(feature = "xkb")]
5309 Request::XkbGetIndicatorState(req) => Request::XkbGetIndicatorState(req),
5310 #[cfg(feature = "xkb")]
5311 Request::XkbGetIndicatorMap(req) => Request::XkbGetIndicatorMap(req),
5312 #[cfg(feature = "xkb")]
5313 Request::XkbSetIndicatorMap(req) => Request::XkbSetIndicatorMap(req.into_owned()),
5314 #[cfg(feature = "xkb")]
5315 Request::XkbGetNamedIndicator(req) => Request::XkbGetNamedIndicator(req),
5316 #[cfg(feature = "xkb")]
5317 Request::XkbSetNamedIndicator(req) => Request::XkbSetNamedIndicator(req),
5318 #[cfg(feature = "xkb")]
5319 Request::XkbGetNames(req) => Request::XkbGetNames(req),
5320 #[cfg(feature = "xkb")]
5321 Request::XkbSetNames(req) => Request::XkbSetNames(req.into_owned()),
5322 #[cfg(feature = "xkb")]
5323 Request::XkbPerClientFlags(req) => Request::XkbPerClientFlags(req),
5324 #[cfg(feature = "xkb")]
5325 Request::XkbListComponents(req) => Request::XkbListComponents(req),
5326 #[cfg(feature = "xkb")]
5327 Request::XkbGetKbdByName(req) => Request::XkbGetKbdByName(req),
5328 #[cfg(feature = "xkb")]
5329 Request::XkbGetDeviceInfo(req) => Request::XkbGetDeviceInfo(req),
5330 #[cfg(feature = "xkb")]
5331 Request::XkbSetDeviceInfo(req) => Request::XkbSetDeviceInfo(req.into_owned()),
5332 #[cfg(feature = "xkb")]
5333 Request::XkbSetDebuggingFlags(req) => Request::XkbSetDebuggingFlags(req.into_owned()),
5334 #[cfg(feature = "xprint")]
5335 Request::XprintPrintQueryVersion(req) => Request::XprintPrintQueryVersion(req),
5336 #[cfg(feature = "xprint")]
5337 Request::XprintPrintGetPrinterList(req) => Request::XprintPrintGetPrinterList(req.into_owned()),
5338 #[cfg(feature = "xprint")]
5339 Request::XprintPrintRehashPrinterList(req) => Request::XprintPrintRehashPrinterList(req),
5340 #[cfg(feature = "xprint")]
5341 Request::XprintCreateContext(req) => Request::XprintCreateContext(req.into_owned()),
5342 #[cfg(feature = "xprint")]
5343 Request::XprintPrintSetContext(req) => Request::XprintPrintSetContext(req),
5344 #[cfg(feature = "xprint")]
5345 Request::XprintPrintGetContext(req) => Request::XprintPrintGetContext(req),
5346 #[cfg(feature = "xprint")]
5347 Request::XprintPrintDestroyContext(req) => Request::XprintPrintDestroyContext(req),
5348 #[cfg(feature = "xprint")]
5349 Request::XprintPrintGetScreenOfContext(req) => Request::XprintPrintGetScreenOfContext(req),
5350 #[cfg(feature = "xprint")]
5351 Request::XprintPrintStartJob(req) => Request::XprintPrintStartJob(req),
5352 #[cfg(feature = "xprint")]
5353 Request::XprintPrintEndJob(req) => Request::XprintPrintEndJob(req),
5354 #[cfg(feature = "xprint")]
5355 Request::XprintPrintStartDoc(req) => Request::XprintPrintStartDoc(req),
5356 #[cfg(feature = "xprint")]
5357 Request::XprintPrintEndDoc(req) => Request::XprintPrintEndDoc(req),
5358 #[cfg(feature = "xprint")]
5359 Request::XprintPrintPutDocumentData(req) => Request::XprintPrintPutDocumentData(req.into_owned()),
5360 #[cfg(feature = "xprint")]
5361 Request::XprintPrintGetDocumentData(req) => Request::XprintPrintGetDocumentData(req),
5362 #[cfg(feature = "xprint")]
5363 Request::XprintPrintStartPage(req) => Request::XprintPrintStartPage(req),
5364 #[cfg(feature = "xprint")]
5365 Request::XprintPrintEndPage(req) => Request::XprintPrintEndPage(req),
5366 #[cfg(feature = "xprint")]
5367 Request::XprintPrintSelectInput(req) => Request::XprintPrintSelectInput(req),
5368 #[cfg(feature = "xprint")]
5369 Request::XprintPrintInputSelected(req) => Request::XprintPrintInputSelected(req),
5370 #[cfg(feature = "xprint")]
5371 Request::XprintPrintGetAttributes(req) => Request::XprintPrintGetAttributes(req),
5372 #[cfg(feature = "xprint")]
5373 Request::XprintPrintGetOneAttributes(req) => Request::XprintPrintGetOneAttributes(req.into_owned()),
5374 #[cfg(feature = "xprint")]
5375 Request::XprintPrintSetAttributes(req) => Request::XprintPrintSetAttributes(req.into_owned()),
5376 #[cfg(feature = "xprint")]
5377 Request::XprintPrintGetPageDimensions(req) => Request::XprintPrintGetPageDimensions(req),
5378 #[cfg(feature = "xprint")]
5379 Request::XprintPrintQueryScreens(req) => Request::XprintPrintQueryScreens(req),
5380 #[cfg(feature = "xprint")]
5381 Request::XprintPrintSetImageResolution(req) => Request::XprintPrintSetImageResolution(req),
5382 #[cfg(feature = "xprint")]
5383 Request::XprintPrintGetImageResolution(req) => Request::XprintPrintGetImageResolution(req),
5384 #[cfg(feature = "xselinux")]
5385 Request::XselinuxQueryVersion(req) => Request::XselinuxQueryVersion(req),
5386 #[cfg(feature = "xselinux")]
5387 Request::XselinuxSetDeviceCreateContext(req) => Request::XselinuxSetDeviceCreateContext(req.into_owned()),
5388 #[cfg(feature = "xselinux")]
5389 Request::XselinuxGetDeviceCreateContext(req) => Request::XselinuxGetDeviceCreateContext(req),
5390 #[cfg(feature = "xselinux")]
5391 Request::XselinuxSetDeviceContext(req) => Request::XselinuxSetDeviceContext(req.into_owned()),
5392 #[cfg(feature = "xselinux")]
5393 Request::XselinuxGetDeviceContext(req) => Request::XselinuxGetDeviceContext(req),
5394 #[cfg(feature = "xselinux")]
5395 Request::XselinuxSetWindowCreateContext(req) => Request::XselinuxSetWindowCreateContext(req.into_owned()),
5396 #[cfg(feature = "xselinux")]
5397 Request::XselinuxGetWindowCreateContext(req) => Request::XselinuxGetWindowCreateContext(req),
5398 #[cfg(feature = "xselinux")]
5399 Request::XselinuxGetWindowContext(req) => Request::XselinuxGetWindowContext(req),
5400 #[cfg(feature = "xselinux")]
5401 Request::XselinuxSetPropertyCreateContext(req) => Request::XselinuxSetPropertyCreateContext(req.into_owned()),
5402 #[cfg(feature = "xselinux")]
5403 Request::XselinuxGetPropertyCreateContext(req) => Request::XselinuxGetPropertyCreateContext(req),
5404 #[cfg(feature = "xselinux")]
5405 Request::XselinuxSetPropertyUseContext(req) => Request::XselinuxSetPropertyUseContext(req.into_owned()),
5406 #[cfg(feature = "xselinux")]
5407 Request::XselinuxGetPropertyUseContext(req) => Request::XselinuxGetPropertyUseContext(req),
5408 #[cfg(feature = "xselinux")]
5409 Request::XselinuxGetPropertyContext(req) => Request::XselinuxGetPropertyContext(req),
5410 #[cfg(feature = "xselinux")]
5411 Request::XselinuxGetPropertyDataContext(req) => Request::XselinuxGetPropertyDataContext(req),
5412 #[cfg(feature = "xselinux")]
5413 Request::XselinuxListProperties(req) => Request::XselinuxListProperties(req),
5414 #[cfg(feature = "xselinux")]
5415 Request::XselinuxSetSelectionCreateContext(req) => Request::XselinuxSetSelectionCreateContext(req.into_owned()),
5416 #[cfg(feature = "xselinux")]
5417 Request::XselinuxGetSelectionCreateContext(req) => Request::XselinuxGetSelectionCreateContext(req),
5418 #[cfg(feature = "xselinux")]
5419 Request::XselinuxSetSelectionUseContext(req) => Request::XselinuxSetSelectionUseContext(req.into_owned()),
5420 #[cfg(feature = "xselinux")]
5421 Request::XselinuxGetSelectionUseContext(req) => Request::XselinuxGetSelectionUseContext(req),
5422 #[cfg(feature = "xselinux")]
5423 Request::XselinuxGetSelectionContext(req) => Request::XselinuxGetSelectionContext(req),
5424 #[cfg(feature = "xselinux")]
5425 Request::XselinuxGetSelectionDataContext(req) => Request::XselinuxGetSelectionDataContext(req),
5426 #[cfg(feature = "xselinux")]
5427 Request::XselinuxListSelections(req) => Request::XselinuxListSelections(req),
5428 #[cfg(feature = "xselinux")]
5429 Request::XselinuxGetClientContext(req) => Request::XselinuxGetClientContext(req),
5430 #[cfg(feature = "xtest")]
5431 Request::XtestGetVersion(req) => Request::XtestGetVersion(req),
5432 #[cfg(feature = "xtest")]
5433 Request::XtestCompareCursor(req) => Request::XtestCompareCursor(req),
5434 #[cfg(feature = "xtest")]
5435 Request::XtestFakeInput(req) => Request::XtestFakeInput(req),
5436 #[cfg(feature = "xtest")]
5437 Request::XtestGrabControl(req) => Request::XtestGrabControl(req),
5438 #[cfg(feature = "xv")]
5439 Request::XvQueryExtension(req) => Request::XvQueryExtension(req),
5440 #[cfg(feature = "xv")]
5441 Request::XvQueryAdaptors(req) => Request::XvQueryAdaptors(req),
5442 #[cfg(feature = "xv")]
5443 Request::XvQueryEncodings(req) => Request::XvQueryEncodings(req),
5444 #[cfg(feature = "xv")]
5445 Request::XvGrabPort(req) => Request::XvGrabPort(req),
5446 #[cfg(feature = "xv")]
5447 Request::XvUngrabPort(req) => Request::XvUngrabPort(req),
5448 #[cfg(feature = "xv")]
5449 Request::XvPutVideo(req) => Request::XvPutVideo(req),
5450 #[cfg(feature = "xv")]
5451 Request::XvPutStill(req) => Request::XvPutStill(req),
5452 #[cfg(feature = "xv")]
5453 Request::XvGetVideo(req) => Request::XvGetVideo(req),
5454 #[cfg(feature = "xv")]
5455 Request::XvGetStill(req) => Request::XvGetStill(req),
5456 #[cfg(feature = "xv")]
5457 Request::XvStopVideo(req) => Request::XvStopVideo(req),
5458 #[cfg(feature = "xv")]
5459 Request::XvSelectVideoNotify(req) => Request::XvSelectVideoNotify(req),
5460 #[cfg(feature = "xv")]
5461 Request::XvSelectPortNotify(req) => Request::XvSelectPortNotify(req),
5462 #[cfg(feature = "xv")]
5463 Request::XvQueryBestSize(req) => Request::XvQueryBestSize(req),
5464 #[cfg(feature = "xv")]
5465 Request::XvSetPortAttribute(req) => Request::XvSetPortAttribute(req),
5466 #[cfg(feature = "xv")]
5467 Request::XvGetPortAttribute(req) => Request::XvGetPortAttribute(req),
5468 #[cfg(feature = "xv")]
5469 Request::XvQueryPortAttributes(req) => Request::XvQueryPortAttributes(req),
5470 #[cfg(feature = "xv")]
5471 Request::XvListImageFormats(req) => Request::XvListImageFormats(req),
5472 #[cfg(feature = "xv")]
5473 Request::XvQueryImageAttributes(req) => Request::XvQueryImageAttributes(req),
5474 #[cfg(feature = "xv")]
5475 Request::XvPutImage(req) => Request::XvPutImage(req.into_owned()),
5476 #[cfg(feature = "xv")]
5477 Request::XvShmPutImage(req) => Request::XvShmPutImage(req),
5478 #[cfg(feature = "xvmc")]
5479 Request::XvmcQueryVersion(req) => Request::XvmcQueryVersion(req),
5480 #[cfg(feature = "xvmc")]
5481 Request::XvmcListSurfaceTypes(req) => Request::XvmcListSurfaceTypes(req),
5482 #[cfg(feature = "xvmc")]
5483 Request::XvmcCreateContext(req) => Request::XvmcCreateContext(req),
5484 #[cfg(feature = "xvmc")]
5485 Request::XvmcDestroyContext(req) => Request::XvmcDestroyContext(req),
5486 #[cfg(feature = "xvmc")]
5487 Request::XvmcCreateSurface(req) => Request::XvmcCreateSurface(req),
5488 #[cfg(feature = "xvmc")]
5489 Request::XvmcDestroySurface(req) => Request::XvmcDestroySurface(req),
5490 #[cfg(feature = "xvmc")]
5491 Request::XvmcCreateSubpicture(req) => Request::XvmcCreateSubpicture(req),
5492 #[cfg(feature = "xvmc")]
5493 Request::XvmcDestroySubpicture(req) => Request::XvmcDestroySubpicture(req),
5494 #[cfg(feature = "xvmc")]
5495 Request::XvmcListSubpictureTypes(req) => Request::XvmcListSubpictureTypes(req),
5496 }
5497 }
5498}
5499
5500/// Enumeration of all possible X11 replies.
5501#[derive(Debug)]
5502#[allow(clippy::large_enum_variant)]
5503#[non_exhaustive]
5504pub enum Reply {
5505 Void,
5506 GetWindowAttributes(xproto::GetWindowAttributesReply),
5507 GetGeometry(xproto::GetGeometryReply),
5508 QueryTree(xproto::QueryTreeReply),
5509 InternAtom(xproto::InternAtomReply),
5510 GetAtomName(xproto::GetAtomNameReply),
5511 GetProperty(xproto::GetPropertyReply),
5512 ListProperties(xproto::ListPropertiesReply),
5513 GetSelectionOwner(xproto::GetSelectionOwnerReply),
5514 GrabPointer(xproto::GrabPointerReply),
5515 GrabKeyboard(xproto::GrabKeyboardReply),
5516 QueryPointer(xproto::QueryPointerReply),
5517 GetMotionEvents(xproto::GetMotionEventsReply),
5518 TranslateCoordinates(xproto::TranslateCoordinatesReply),
5519 GetInputFocus(xproto::GetInputFocusReply),
5520 QueryKeymap(xproto::QueryKeymapReply),
5521 QueryFont(xproto::QueryFontReply),
5522 QueryTextExtents(xproto::QueryTextExtentsReply),
5523 ListFonts(xproto::ListFontsReply),
5524 ListFontsWithInfo(xproto::ListFontsWithInfoReply),
5525 GetFontPath(xproto::GetFontPathReply),
5526 GetImage(xproto::GetImageReply),
5527 ListInstalledColormaps(xproto::ListInstalledColormapsReply),
5528 AllocColor(xproto::AllocColorReply),
5529 AllocNamedColor(xproto::AllocNamedColorReply),
5530 AllocColorCells(xproto::AllocColorCellsReply),
5531 AllocColorPlanes(xproto::AllocColorPlanesReply),
5532 QueryColors(xproto::QueryColorsReply),
5533 LookupColor(xproto::LookupColorReply),
5534 QueryBestSize(xproto::QueryBestSizeReply),
5535 QueryExtension(xproto::QueryExtensionReply),
5536 ListExtensions(xproto::ListExtensionsReply),
5537 GetKeyboardMapping(xproto::GetKeyboardMappingReply),
5538 GetKeyboardControl(xproto::GetKeyboardControlReply),
5539 GetPointerControl(xproto::GetPointerControlReply),
5540 GetScreenSaver(xproto::GetScreenSaverReply),
5541 ListHosts(xproto::ListHostsReply),
5542 SetPointerMapping(xproto::SetPointerMappingReply),
5543 GetPointerMapping(xproto::GetPointerMappingReply),
5544 SetModifierMapping(xproto::SetModifierMappingReply),
5545 GetModifierMapping(xproto::GetModifierMappingReply),
5546 BigreqEnable(bigreq::EnableReply),
5547 #[cfg(feature = "composite")]
5548 CompositeQueryVersion(composite::QueryVersionReply),
5549 #[cfg(feature = "composite")]
5550 CompositeGetOverlayWindow(composite::GetOverlayWindowReply),
5551 #[cfg(feature = "damage")]
5552 DamageQueryVersion(damage::QueryVersionReply),
5553 #[cfg(feature = "dbe")]
5554 DbeQueryVersion(dbe::QueryVersionReply),
5555 #[cfg(feature = "dbe")]
5556 DbeGetVisualInfo(dbe::GetVisualInfoReply),
5557 #[cfg(feature = "dbe")]
5558 DbeGetBackBufferAttributes(dbe::GetBackBufferAttributesReply),
5559 #[cfg(feature = "dpms")]
5560 DpmsGetVersion(dpms::GetVersionReply),
5561 #[cfg(feature = "dpms")]
5562 DpmsCapable(dpms::CapableReply),
5563 #[cfg(feature = "dpms")]
5564 DpmsGetTimeouts(dpms::GetTimeoutsReply),
5565 #[cfg(feature = "dpms")]
5566 DpmsInfo(dpms::InfoReply),
5567 #[cfg(feature = "dri2")]
5568 Dri2QueryVersion(dri2::QueryVersionReply),
5569 #[cfg(feature = "dri2")]
5570 Dri2Connect(dri2::ConnectReply),
5571 #[cfg(feature = "dri2")]
5572 Dri2Authenticate(dri2::AuthenticateReply),
5573 #[cfg(feature = "dri2")]
5574 Dri2GetBuffers(dri2::GetBuffersReply),
5575 #[cfg(feature = "dri2")]
5576 Dri2CopyRegion(dri2::CopyRegionReply),
5577 #[cfg(feature = "dri2")]
5578 Dri2GetBuffersWithFormat(dri2::GetBuffersWithFormatReply),
5579 #[cfg(feature = "dri2")]
5580 Dri2SwapBuffers(dri2::SwapBuffersReply),
5581 #[cfg(feature = "dri2")]
5582 Dri2GetMSC(dri2::GetMSCReply),
5583 #[cfg(feature = "dri2")]
5584 Dri2WaitMSC(dri2::WaitMSCReply),
5585 #[cfg(feature = "dri2")]
5586 Dri2WaitSBC(dri2::WaitSBCReply),
5587 #[cfg(feature = "dri2")]
5588 Dri2GetParam(dri2::GetParamReply),
5589 #[cfg(feature = "dri3")]
5590 Dri3QueryVersion(dri3::QueryVersionReply),
5591 #[cfg(feature = "dri3")]
5592 Dri3Open(dri3::OpenReply),
5593 #[cfg(feature = "dri3")]
5594 Dri3BufferFromPixmap(dri3::BufferFromPixmapReply),
5595 #[cfg(feature = "dri3")]
5596 Dri3FDFromFence(dri3::FDFromFenceReply),
5597 #[cfg(feature = "dri3")]
5598 Dri3GetSupportedModifiers(dri3::GetSupportedModifiersReply),
5599 #[cfg(feature = "dri3")]
5600 Dri3BuffersFromPixmap(dri3::BuffersFromPixmapReply),
5601 GeQueryVersion(ge::QueryVersionReply),
5602 #[cfg(feature = "glx")]
5603 GlxMakeCurrent(glx::MakeCurrentReply),
5604 #[cfg(feature = "glx")]
5605 GlxIsDirect(glx::IsDirectReply),
5606 #[cfg(feature = "glx")]
5607 GlxQueryVersion(glx::QueryVersionReply),
5608 #[cfg(feature = "glx")]
5609 GlxGetVisualConfigs(glx::GetVisualConfigsReply),
5610 #[cfg(feature = "glx")]
5611 GlxVendorPrivateWithReply(glx::VendorPrivateWithReplyReply),
5612 #[cfg(feature = "glx")]
5613 GlxQueryExtensionsString(glx::QueryExtensionsStringReply),
5614 #[cfg(feature = "glx")]
5615 GlxQueryServerString(glx::QueryServerStringReply),
5616 #[cfg(feature = "glx")]
5617 GlxGetFBConfigs(glx::GetFBConfigsReply),
5618 #[cfg(feature = "glx")]
5619 GlxQueryContext(glx::QueryContextReply),
5620 #[cfg(feature = "glx")]
5621 GlxMakeContextCurrent(glx::MakeContextCurrentReply),
5622 #[cfg(feature = "glx")]
5623 GlxGetDrawableAttributes(glx::GetDrawableAttributesReply),
5624 #[cfg(feature = "glx")]
5625 GlxGenLists(glx::GenListsReply),
5626 #[cfg(feature = "glx")]
5627 GlxRenderMode(glx::RenderModeReply),
5628 #[cfg(feature = "glx")]
5629 GlxFinish(glx::FinishReply),
5630 #[cfg(feature = "glx")]
5631 GlxReadPixels(glx::ReadPixelsReply),
5632 #[cfg(feature = "glx")]
5633 GlxGetBooleanv(glx::GetBooleanvReply),
5634 #[cfg(feature = "glx")]
5635 GlxGetClipPlane(glx::GetClipPlaneReply),
5636 #[cfg(feature = "glx")]
5637 GlxGetDoublev(glx::GetDoublevReply),
5638 #[cfg(feature = "glx")]
5639 GlxGetError(glx::GetErrorReply),
5640 #[cfg(feature = "glx")]
5641 GlxGetFloatv(glx::GetFloatvReply),
5642 #[cfg(feature = "glx")]
5643 GlxGetIntegerv(glx::GetIntegervReply),
5644 #[cfg(feature = "glx")]
5645 GlxGetLightfv(glx::GetLightfvReply),
5646 #[cfg(feature = "glx")]
5647 GlxGetLightiv(glx::GetLightivReply),
5648 #[cfg(feature = "glx")]
5649 GlxGetMapdv(glx::GetMapdvReply),
5650 #[cfg(feature = "glx")]
5651 GlxGetMapfv(glx::GetMapfvReply),
5652 #[cfg(feature = "glx")]
5653 GlxGetMapiv(glx::GetMapivReply),
5654 #[cfg(feature = "glx")]
5655 GlxGetMaterialfv(glx::GetMaterialfvReply),
5656 #[cfg(feature = "glx")]
5657 GlxGetMaterialiv(glx::GetMaterialivReply),
5658 #[cfg(feature = "glx")]
5659 GlxGetPixelMapfv(glx::GetPixelMapfvReply),
5660 #[cfg(feature = "glx")]
5661 GlxGetPixelMapuiv(glx::GetPixelMapuivReply),
5662 #[cfg(feature = "glx")]
5663 GlxGetPixelMapusv(glx::GetPixelMapusvReply),
5664 #[cfg(feature = "glx")]
5665 GlxGetPolygonStipple(glx::GetPolygonStippleReply),
5666 #[cfg(feature = "glx")]
5667 GlxGetString(glx::GetStringReply),
5668 #[cfg(feature = "glx")]
5669 GlxGetTexEnvfv(glx::GetTexEnvfvReply),
5670 #[cfg(feature = "glx")]
5671 GlxGetTexEnviv(glx::GetTexEnvivReply),
5672 #[cfg(feature = "glx")]
5673 GlxGetTexGendv(glx::GetTexGendvReply),
5674 #[cfg(feature = "glx")]
5675 GlxGetTexGenfv(glx::GetTexGenfvReply),
5676 #[cfg(feature = "glx")]
5677 GlxGetTexGeniv(glx::GetTexGenivReply),
5678 #[cfg(feature = "glx")]
5679 GlxGetTexImage(glx::GetTexImageReply),
5680 #[cfg(feature = "glx")]
5681 GlxGetTexParameterfv(glx::GetTexParameterfvReply),
5682 #[cfg(feature = "glx")]
5683 GlxGetTexParameteriv(glx::GetTexParameterivReply),
5684 #[cfg(feature = "glx")]
5685 GlxGetTexLevelParameterfv(glx::GetTexLevelParameterfvReply),
5686 #[cfg(feature = "glx")]
5687 GlxGetTexLevelParameteriv(glx::GetTexLevelParameterivReply),
5688 #[cfg(feature = "glx")]
5689 GlxIsEnabled(glx::IsEnabledReply),
5690 #[cfg(feature = "glx")]
5691 GlxIsList(glx::IsListReply),
5692 #[cfg(feature = "glx")]
5693 GlxAreTexturesResident(glx::AreTexturesResidentReply),
5694 #[cfg(feature = "glx")]
5695 GlxGenTextures(glx::GenTexturesReply),
5696 #[cfg(feature = "glx")]
5697 GlxIsTexture(glx::IsTextureReply),
5698 #[cfg(feature = "glx")]
5699 GlxGetColorTable(glx::GetColorTableReply),
5700 #[cfg(feature = "glx")]
5701 GlxGetColorTableParameterfv(glx::GetColorTableParameterfvReply),
5702 #[cfg(feature = "glx")]
5703 GlxGetColorTableParameteriv(glx::GetColorTableParameterivReply),
5704 #[cfg(feature = "glx")]
5705 GlxGetConvolutionFilter(glx::GetConvolutionFilterReply),
5706 #[cfg(feature = "glx")]
5707 GlxGetConvolutionParameterfv(glx::GetConvolutionParameterfvReply),
5708 #[cfg(feature = "glx")]
5709 GlxGetConvolutionParameteriv(glx::GetConvolutionParameterivReply),
5710 #[cfg(feature = "glx")]
5711 GlxGetSeparableFilter(glx::GetSeparableFilterReply),
5712 #[cfg(feature = "glx")]
5713 GlxGetHistogram(glx::GetHistogramReply),
5714 #[cfg(feature = "glx")]
5715 GlxGetHistogramParameterfv(glx::GetHistogramParameterfvReply),
5716 #[cfg(feature = "glx")]
5717 GlxGetHistogramParameteriv(glx::GetHistogramParameterivReply),
5718 #[cfg(feature = "glx")]
5719 GlxGetMinmax(glx::GetMinmaxReply),
5720 #[cfg(feature = "glx")]
5721 GlxGetMinmaxParameterfv(glx::GetMinmaxParameterfvReply),
5722 #[cfg(feature = "glx")]
5723 GlxGetMinmaxParameteriv(glx::GetMinmaxParameterivReply),
5724 #[cfg(feature = "glx")]
5725 GlxGetCompressedTexImageARB(glx::GetCompressedTexImageARBReply),
5726 #[cfg(feature = "glx")]
5727 GlxGenQueriesARB(glx::GenQueriesARBReply),
5728 #[cfg(feature = "glx")]
5729 GlxIsQueryARB(glx::IsQueryARBReply),
5730 #[cfg(feature = "glx")]
5731 GlxGetQueryivARB(glx::GetQueryivARBReply),
5732 #[cfg(feature = "glx")]
5733 GlxGetQueryObjectivARB(glx::GetQueryObjectivARBReply),
5734 #[cfg(feature = "glx")]
5735 GlxGetQueryObjectuivARB(glx::GetQueryObjectuivARBReply),
5736 #[cfg(feature = "present")]
5737 PresentQueryVersion(present::QueryVersionReply),
5738 #[cfg(feature = "present")]
5739 PresentQueryCapabilities(present::QueryCapabilitiesReply),
5740 #[cfg(feature = "randr")]
5741 RandrQueryVersion(randr::QueryVersionReply),
5742 #[cfg(feature = "randr")]
5743 RandrSetScreenConfig(randr::SetScreenConfigReply),
5744 #[cfg(feature = "randr")]
5745 RandrGetScreenInfo(randr::GetScreenInfoReply),
5746 #[cfg(feature = "randr")]
5747 RandrGetScreenSizeRange(randr::GetScreenSizeRangeReply),
5748 #[cfg(feature = "randr")]
5749 RandrGetScreenResources(randr::GetScreenResourcesReply),
5750 #[cfg(feature = "randr")]
5751 RandrGetOutputInfo(randr::GetOutputInfoReply),
5752 #[cfg(feature = "randr")]
5753 RandrListOutputProperties(randr::ListOutputPropertiesReply),
5754 #[cfg(feature = "randr")]
5755 RandrQueryOutputProperty(randr::QueryOutputPropertyReply),
5756 #[cfg(feature = "randr")]
5757 RandrGetOutputProperty(randr::GetOutputPropertyReply),
5758 #[cfg(feature = "randr")]
5759 RandrCreateMode(randr::CreateModeReply),
5760 #[cfg(feature = "randr")]
5761 RandrGetCrtcInfo(randr::GetCrtcInfoReply),
5762 #[cfg(feature = "randr")]
5763 RandrSetCrtcConfig(randr::SetCrtcConfigReply),
5764 #[cfg(feature = "randr")]
5765 RandrGetCrtcGammaSize(randr::GetCrtcGammaSizeReply),
5766 #[cfg(feature = "randr")]
5767 RandrGetCrtcGamma(randr::GetCrtcGammaReply),
5768 #[cfg(feature = "randr")]
5769 RandrGetScreenResourcesCurrent(randr::GetScreenResourcesCurrentReply),
5770 #[cfg(feature = "randr")]
5771 RandrGetCrtcTransform(randr::GetCrtcTransformReply),
5772 #[cfg(feature = "randr")]
5773 RandrGetPanning(randr::GetPanningReply),
5774 #[cfg(feature = "randr")]
5775 RandrSetPanning(randr::SetPanningReply),
5776 #[cfg(feature = "randr")]
5777 RandrGetOutputPrimary(randr::GetOutputPrimaryReply),
5778 #[cfg(feature = "randr")]
5779 RandrGetProviders(randr::GetProvidersReply),
5780 #[cfg(feature = "randr")]
5781 RandrGetProviderInfo(randr::GetProviderInfoReply),
5782 #[cfg(feature = "randr")]
5783 RandrListProviderProperties(randr::ListProviderPropertiesReply),
5784 #[cfg(feature = "randr")]
5785 RandrQueryProviderProperty(randr::QueryProviderPropertyReply),
5786 #[cfg(feature = "randr")]
5787 RandrGetProviderProperty(randr::GetProviderPropertyReply),
5788 #[cfg(feature = "randr")]
5789 RandrGetMonitors(randr::GetMonitorsReply),
5790 #[cfg(feature = "randr")]
5791 RandrCreateLease(randr::CreateLeaseReply),
5792 #[cfg(feature = "record")]
5793 RecordQueryVersion(record::QueryVersionReply),
5794 #[cfg(feature = "record")]
5795 RecordGetContext(record::GetContextReply),
5796 #[cfg(feature = "record")]
5797 RecordEnableContext(record::EnableContextReply),
5798 #[cfg(feature = "render")]
5799 RenderQueryVersion(render::QueryVersionReply),
5800 #[cfg(feature = "render")]
5801 RenderQueryPictFormats(render::QueryPictFormatsReply),
5802 #[cfg(feature = "render")]
5803 RenderQueryPictIndexValues(render::QueryPictIndexValuesReply),
5804 #[cfg(feature = "render")]
5805 RenderQueryFilters(render::QueryFiltersReply),
5806 #[cfg(feature = "res")]
5807 ResQueryVersion(res::QueryVersionReply),
5808 #[cfg(feature = "res")]
5809 ResQueryClients(res::QueryClientsReply),
5810 #[cfg(feature = "res")]
5811 ResQueryClientResources(res::QueryClientResourcesReply),
5812 #[cfg(feature = "res")]
5813 ResQueryClientPixmapBytes(res::QueryClientPixmapBytesReply),
5814 #[cfg(feature = "res")]
5815 ResQueryClientIds(res::QueryClientIdsReply),
5816 #[cfg(feature = "res")]
5817 ResQueryResourceBytes(res::QueryResourceBytesReply),
5818 #[cfg(feature = "screensaver")]
5819 ScreensaverQueryVersion(screensaver::QueryVersionReply),
5820 #[cfg(feature = "screensaver")]
5821 ScreensaverQueryInfo(screensaver::QueryInfoReply),
5822 #[cfg(feature = "shape")]
5823 ShapeQueryVersion(shape::QueryVersionReply),
5824 #[cfg(feature = "shape")]
5825 ShapeQueryExtents(shape::QueryExtentsReply),
5826 #[cfg(feature = "shape")]
5827 ShapeInputSelected(shape::InputSelectedReply),
5828 #[cfg(feature = "shape")]
5829 ShapeGetRectangles(shape::GetRectanglesReply),
5830 #[cfg(feature = "shm")]
5831 ShmQueryVersion(shm::QueryVersionReply),
5832 #[cfg(feature = "shm")]
5833 ShmGetImage(shm::GetImageReply),
5834 #[cfg(feature = "shm")]
5835 ShmCreateSegment(shm::CreateSegmentReply),
5836 #[cfg(feature = "sync")]
5837 SyncInitialize(sync::InitializeReply),
5838 #[cfg(feature = "sync")]
5839 SyncListSystemCounters(sync::ListSystemCountersReply),
5840 #[cfg(feature = "sync")]
5841 SyncQueryCounter(sync::QueryCounterReply),
5842 #[cfg(feature = "sync")]
5843 SyncQueryAlarm(sync::QueryAlarmReply),
5844 #[cfg(feature = "sync")]
5845 SyncGetPriority(sync::GetPriorityReply),
5846 #[cfg(feature = "sync")]
5847 SyncQueryFence(sync::QueryFenceReply),
5848 XcMiscGetVersion(xc_misc::GetVersionReply),
5849 XcMiscGetXIDRange(xc_misc::GetXIDRangeReply),
5850 XcMiscGetXIDList(xc_misc::GetXIDListReply),
5851 #[cfg(feature = "xevie")]
5852 XevieQueryVersion(xevie::QueryVersionReply),
5853 #[cfg(feature = "xevie")]
5854 XevieStart(xevie::StartReply),
5855 #[cfg(feature = "xevie")]
5856 XevieEnd(xevie::EndReply),
5857 #[cfg(feature = "xevie")]
5858 XevieSend(xevie::SendReply),
5859 #[cfg(feature = "xevie")]
5860 XevieSelectInput(xevie::SelectInputReply),
5861 #[cfg(feature = "xf86dri")]
5862 Xf86driQueryVersion(xf86dri::QueryVersionReply),
5863 #[cfg(feature = "xf86dri")]
5864 Xf86driQueryDirectRenderingCapable(xf86dri::QueryDirectRenderingCapableReply),
5865 #[cfg(feature = "xf86dri")]
5866 Xf86driOpenConnection(xf86dri::OpenConnectionReply),
5867 #[cfg(feature = "xf86dri")]
5868 Xf86driGetClientDriverName(xf86dri::GetClientDriverNameReply),
5869 #[cfg(feature = "xf86dri")]
5870 Xf86driCreateContext(xf86dri::CreateContextReply),
5871 #[cfg(feature = "xf86dri")]
5872 Xf86driCreateDrawable(xf86dri::CreateDrawableReply),
5873 #[cfg(feature = "xf86dri")]
5874 Xf86driGetDrawableInfo(xf86dri::GetDrawableInfoReply),
5875 #[cfg(feature = "xf86dri")]
5876 Xf86driGetDeviceInfo(xf86dri::GetDeviceInfoReply),
5877 #[cfg(feature = "xf86dri")]
5878 Xf86driAuthConnection(xf86dri::AuthConnectionReply),
5879 #[cfg(feature = "xf86vidmode")]
5880 Xf86vidmodeQueryVersion(xf86vidmode::QueryVersionReply),
5881 #[cfg(feature = "xf86vidmode")]
5882 Xf86vidmodeGetModeLine(xf86vidmode::GetModeLineReply),
5883 #[cfg(feature = "xf86vidmode")]
5884 Xf86vidmodeGetMonitor(xf86vidmode::GetMonitorReply),
5885 #[cfg(feature = "xf86vidmode")]
5886 Xf86vidmodeGetAllModeLines(xf86vidmode::GetAllModeLinesReply),
5887 #[cfg(feature = "xf86vidmode")]
5888 Xf86vidmodeValidateModeLine(xf86vidmode::ValidateModeLineReply),
5889 #[cfg(feature = "xf86vidmode")]
5890 Xf86vidmodeGetViewPort(xf86vidmode::GetViewPortReply),
5891 #[cfg(feature = "xf86vidmode")]
5892 Xf86vidmodeGetDotClocks(xf86vidmode::GetDotClocksReply),
5893 #[cfg(feature = "xf86vidmode")]
5894 Xf86vidmodeGetGamma(xf86vidmode::GetGammaReply),
5895 #[cfg(feature = "xf86vidmode")]
5896 Xf86vidmodeGetGammaRamp(xf86vidmode::GetGammaRampReply),
5897 #[cfg(feature = "xf86vidmode")]
5898 Xf86vidmodeGetGammaRampSize(xf86vidmode::GetGammaRampSizeReply),
5899 #[cfg(feature = "xf86vidmode")]
5900 Xf86vidmodeGetPermissions(xf86vidmode::GetPermissionsReply),
5901 #[cfg(feature = "xfixes")]
5902 XfixesQueryVersion(xfixes::QueryVersionReply),
5903 #[cfg(feature = "xfixes")]
5904 XfixesGetCursorImage(xfixes::GetCursorImageReply),
5905 #[cfg(feature = "xfixes")]
5906 XfixesFetchRegion(xfixes::FetchRegionReply),
5907 #[cfg(feature = "xfixes")]
5908 XfixesGetCursorName(xfixes::GetCursorNameReply),
5909 #[cfg(feature = "xfixes")]
5910 XfixesGetCursorImageAndName(xfixes::GetCursorImageAndNameReply),
5911 #[cfg(feature = "xfixes")]
5912 XfixesGetClientDisconnectMode(xfixes::GetClientDisconnectModeReply),
5913 #[cfg(feature = "xinerama")]
5914 XineramaQueryVersion(xinerama::QueryVersionReply),
5915 #[cfg(feature = "xinerama")]
5916 XineramaGetState(xinerama::GetStateReply),
5917 #[cfg(feature = "xinerama")]
5918 XineramaGetScreenCount(xinerama::GetScreenCountReply),
5919 #[cfg(feature = "xinerama")]
5920 XineramaGetScreenSize(xinerama::GetScreenSizeReply),
5921 #[cfg(feature = "xinerama")]
5922 XineramaIsActive(xinerama::IsActiveReply),
5923 #[cfg(feature = "xinerama")]
5924 XineramaQueryScreens(xinerama::QueryScreensReply),
5925 #[cfg(feature = "xinput")]
5926 XinputGetExtensionVersion(xinput::GetExtensionVersionReply),
5927 #[cfg(feature = "xinput")]
5928 XinputListInputDevices(xinput::ListInputDevicesReply),
5929 #[cfg(feature = "xinput")]
5930 XinputOpenDevice(xinput::OpenDeviceReply),
5931 #[cfg(feature = "xinput")]
5932 XinputSetDeviceMode(xinput::SetDeviceModeReply),
5933 #[cfg(feature = "xinput")]
5934 XinputGetSelectedExtensionEvents(xinput::GetSelectedExtensionEventsReply),
5935 #[cfg(feature = "xinput")]
5936 XinputGetDeviceDontPropagateList(xinput::GetDeviceDontPropagateListReply),
5937 #[cfg(feature = "xinput")]
5938 XinputGetDeviceMotionEvents(xinput::GetDeviceMotionEventsReply),
5939 #[cfg(feature = "xinput")]
5940 XinputChangeKeyboardDevice(xinput::ChangeKeyboardDeviceReply),
5941 #[cfg(feature = "xinput")]
5942 XinputChangePointerDevice(xinput::ChangePointerDeviceReply),
5943 #[cfg(feature = "xinput")]
5944 XinputGrabDevice(xinput::GrabDeviceReply),
5945 #[cfg(feature = "xinput")]
5946 XinputGetDeviceFocus(xinput::GetDeviceFocusReply),
5947 #[cfg(feature = "xinput")]
5948 XinputGetFeedbackControl(xinput::GetFeedbackControlReply),
5949 #[cfg(feature = "xinput")]
5950 XinputGetDeviceKeyMapping(xinput::GetDeviceKeyMappingReply),
5951 #[cfg(feature = "xinput")]
5952 XinputGetDeviceModifierMapping(xinput::GetDeviceModifierMappingReply),
5953 #[cfg(feature = "xinput")]
5954 XinputSetDeviceModifierMapping(xinput::SetDeviceModifierMappingReply),
5955 #[cfg(feature = "xinput")]
5956 XinputGetDeviceButtonMapping(xinput::GetDeviceButtonMappingReply),
5957 #[cfg(feature = "xinput")]
5958 XinputSetDeviceButtonMapping(xinput::SetDeviceButtonMappingReply),
5959 #[cfg(feature = "xinput")]
5960 XinputQueryDeviceState(xinput::QueryDeviceStateReply),
5961 #[cfg(feature = "xinput")]
5962 XinputSetDeviceValuators(xinput::SetDeviceValuatorsReply),
5963 #[cfg(feature = "xinput")]
5964 XinputGetDeviceControl(xinput::GetDeviceControlReply),
5965 #[cfg(feature = "xinput")]
5966 XinputChangeDeviceControl(xinput::ChangeDeviceControlReply),
5967 #[cfg(feature = "xinput")]
5968 XinputListDeviceProperties(xinput::ListDevicePropertiesReply),
5969 #[cfg(feature = "xinput")]
5970 XinputGetDeviceProperty(xinput::GetDevicePropertyReply),
5971 #[cfg(feature = "xinput")]
5972 XinputXIQueryPointer(xinput::XIQueryPointerReply),
5973 #[cfg(feature = "xinput")]
5974 XinputXIGetClientPointer(xinput::XIGetClientPointerReply),
5975 #[cfg(feature = "xinput")]
5976 XinputXIQueryVersion(xinput::XIQueryVersionReply),
5977 #[cfg(feature = "xinput")]
5978 XinputXIQueryDevice(xinput::XIQueryDeviceReply),
5979 #[cfg(feature = "xinput")]
5980 XinputXIGetFocus(xinput::XIGetFocusReply),
5981 #[cfg(feature = "xinput")]
5982 XinputXIGrabDevice(xinput::XIGrabDeviceReply),
5983 #[cfg(feature = "xinput")]
5984 XinputXIPassiveGrabDevice(xinput::XIPassiveGrabDeviceReply),
5985 #[cfg(feature = "xinput")]
5986 XinputXIListProperties(xinput::XIListPropertiesReply),
5987 #[cfg(feature = "xinput")]
5988 XinputXIGetProperty(xinput::XIGetPropertyReply),
5989 #[cfg(feature = "xinput")]
5990 XinputXIGetSelectedEvents(xinput::XIGetSelectedEventsReply),
5991 #[cfg(feature = "xkb")]
5992 XkbUseExtension(xkb::UseExtensionReply),
5993 #[cfg(feature = "xkb")]
5994 XkbGetState(xkb::GetStateReply),
5995 #[cfg(feature = "xkb")]
5996 XkbGetControls(xkb::GetControlsReply),
5997 #[cfg(feature = "xkb")]
5998 XkbGetMap(xkb::GetMapReply),
5999 #[cfg(feature = "xkb")]
6000 XkbGetCompatMap(xkb::GetCompatMapReply),
6001 #[cfg(feature = "xkb")]
6002 XkbGetIndicatorState(xkb::GetIndicatorStateReply),
6003 #[cfg(feature = "xkb")]
6004 XkbGetIndicatorMap(xkb::GetIndicatorMapReply),
6005 #[cfg(feature = "xkb")]
6006 XkbGetNamedIndicator(xkb::GetNamedIndicatorReply),
6007 #[cfg(feature = "xkb")]
6008 XkbGetNames(xkb::GetNamesReply),
6009 #[cfg(feature = "xkb")]
6010 XkbPerClientFlags(xkb::PerClientFlagsReply),
6011 #[cfg(feature = "xkb")]
6012 XkbListComponents(xkb::ListComponentsReply),
6013 #[cfg(feature = "xkb")]
6014 XkbGetKbdByName(xkb::GetKbdByNameReply),
6015 #[cfg(feature = "xkb")]
6016 XkbGetDeviceInfo(xkb::GetDeviceInfoReply),
6017 #[cfg(feature = "xkb")]
6018 XkbSetDebuggingFlags(xkb::SetDebuggingFlagsReply),
6019 #[cfg(feature = "xprint")]
6020 XprintPrintQueryVersion(xprint::PrintQueryVersionReply),
6021 #[cfg(feature = "xprint")]
6022 XprintPrintGetPrinterList(xprint::PrintGetPrinterListReply),
6023 #[cfg(feature = "xprint")]
6024 XprintPrintGetContext(xprint::PrintGetContextReply),
6025 #[cfg(feature = "xprint")]
6026 XprintPrintGetScreenOfContext(xprint::PrintGetScreenOfContextReply),
6027 #[cfg(feature = "xprint")]
6028 XprintPrintGetDocumentData(xprint::PrintGetDocumentDataReply),
6029 #[cfg(feature = "xprint")]
6030 XprintPrintInputSelected(xprint::PrintInputSelectedReply),
6031 #[cfg(feature = "xprint")]
6032 XprintPrintGetAttributes(xprint::PrintGetAttributesReply),
6033 #[cfg(feature = "xprint")]
6034 XprintPrintGetOneAttributes(xprint::PrintGetOneAttributesReply),
6035 #[cfg(feature = "xprint")]
6036 XprintPrintGetPageDimensions(xprint::PrintGetPageDimensionsReply),
6037 #[cfg(feature = "xprint")]
6038 XprintPrintQueryScreens(xprint::PrintQueryScreensReply),
6039 #[cfg(feature = "xprint")]
6040 XprintPrintSetImageResolution(xprint::PrintSetImageResolutionReply),
6041 #[cfg(feature = "xprint")]
6042 XprintPrintGetImageResolution(xprint::PrintGetImageResolutionReply),
6043 #[cfg(feature = "xselinux")]
6044 XselinuxQueryVersion(xselinux::QueryVersionReply),
6045 #[cfg(feature = "xselinux")]
6046 XselinuxGetDeviceCreateContext(xselinux::GetDeviceCreateContextReply),
6047 #[cfg(feature = "xselinux")]
6048 XselinuxGetDeviceContext(xselinux::GetDeviceContextReply),
6049 #[cfg(feature = "xselinux")]
6050 XselinuxGetWindowCreateContext(xselinux::GetWindowCreateContextReply),
6051 #[cfg(feature = "xselinux")]
6052 XselinuxGetWindowContext(xselinux::GetWindowContextReply),
6053 #[cfg(feature = "xselinux")]
6054 XselinuxGetPropertyCreateContext(xselinux::GetPropertyCreateContextReply),
6055 #[cfg(feature = "xselinux")]
6056 XselinuxGetPropertyUseContext(xselinux::GetPropertyUseContextReply),
6057 #[cfg(feature = "xselinux")]
6058 XselinuxGetPropertyContext(xselinux::GetPropertyContextReply),
6059 #[cfg(feature = "xselinux")]
6060 XselinuxGetPropertyDataContext(xselinux::GetPropertyDataContextReply),
6061 #[cfg(feature = "xselinux")]
6062 XselinuxListProperties(xselinux::ListPropertiesReply),
6063 #[cfg(feature = "xselinux")]
6064 XselinuxGetSelectionCreateContext(xselinux::GetSelectionCreateContextReply),
6065 #[cfg(feature = "xselinux")]
6066 XselinuxGetSelectionUseContext(xselinux::GetSelectionUseContextReply),
6067 #[cfg(feature = "xselinux")]
6068 XselinuxGetSelectionContext(xselinux::GetSelectionContextReply),
6069 #[cfg(feature = "xselinux")]
6070 XselinuxGetSelectionDataContext(xselinux::GetSelectionDataContextReply),
6071 #[cfg(feature = "xselinux")]
6072 XselinuxListSelections(xselinux::ListSelectionsReply),
6073 #[cfg(feature = "xselinux")]
6074 XselinuxGetClientContext(xselinux::GetClientContextReply),
6075 #[cfg(feature = "xtest")]
6076 XtestGetVersion(xtest::GetVersionReply),
6077 #[cfg(feature = "xtest")]
6078 XtestCompareCursor(xtest::CompareCursorReply),
6079 #[cfg(feature = "xv")]
6080 XvQueryExtension(xv::QueryExtensionReply),
6081 #[cfg(feature = "xv")]
6082 XvQueryAdaptors(xv::QueryAdaptorsReply),
6083 #[cfg(feature = "xv")]
6084 XvQueryEncodings(xv::QueryEncodingsReply),
6085 #[cfg(feature = "xv")]
6086 XvGrabPort(xv::GrabPortReply),
6087 #[cfg(feature = "xv")]
6088 XvQueryBestSize(xv::QueryBestSizeReply),
6089 #[cfg(feature = "xv")]
6090 XvGetPortAttribute(xv::GetPortAttributeReply),
6091 #[cfg(feature = "xv")]
6092 XvQueryPortAttributes(xv::QueryPortAttributesReply),
6093 #[cfg(feature = "xv")]
6094 XvListImageFormats(xv::ListImageFormatsReply),
6095 #[cfg(feature = "xv")]
6096 XvQueryImageAttributes(xv::QueryImageAttributesReply),
6097 #[cfg(feature = "xvmc")]
6098 XvmcQueryVersion(xvmc::QueryVersionReply),
6099 #[cfg(feature = "xvmc")]
6100 XvmcListSurfaceTypes(xvmc::ListSurfaceTypesReply),
6101 #[cfg(feature = "xvmc")]
6102 XvmcCreateContext(xvmc::CreateContextReply),
6103 #[cfg(feature = "xvmc")]
6104 XvmcCreateSurface(xvmc::CreateSurfaceReply),
6105 #[cfg(feature = "xvmc")]
6106 XvmcCreateSubpicture(xvmc::CreateSubpictureReply),
6107 #[cfg(feature = "xvmc")]
6108 XvmcListSubpictureTypes(xvmc::ListSubpictureTypesReply),
6109}
6110impl From<()> for Reply {
6111 fn from(_: ()) -> Reply {
6112 Reply::Void
6113 }
6114}
6115impl From<xproto::GetWindowAttributesReply> for Reply {
6116 fn from(reply: xproto::GetWindowAttributesReply) -> Reply {
6117 Reply::GetWindowAttributes(reply)
6118 }
6119}
6120impl From<xproto::GetGeometryReply> for Reply {
6121 fn from(reply: xproto::GetGeometryReply) -> Reply {
6122 Reply::GetGeometry(reply)
6123 }
6124}
6125impl From<xproto::QueryTreeReply> for Reply {
6126 fn from(reply: xproto::QueryTreeReply) -> Reply {
6127 Reply::QueryTree(reply)
6128 }
6129}
6130impl From<xproto::InternAtomReply> for Reply {
6131 fn from(reply: xproto::InternAtomReply) -> Reply {
6132 Reply::InternAtom(reply)
6133 }
6134}
6135impl From<xproto::GetAtomNameReply> for Reply {
6136 fn from(reply: xproto::GetAtomNameReply) -> Reply {
6137 Reply::GetAtomName(reply)
6138 }
6139}
6140impl From<xproto::GetPropertyReply> for Reply {
6141 fn from(reply: xproto::GetPropertyReply) -> Reply {
6142 Reply::GetProperty(reply)
6143 }
6144}
6145impl From<xproto::ListPropertiesReply> for Reply {
6146 fn from(reply: xproto::ListPropertiesReply) -> Reply {
6147 Reply::ListProperties(reply)
6148 }
6149}
6150impl From<xproto::GetSelectionOwnerReply> for Reply {
6151 fn from(reply: xproto::GetSelectionOwnerReply) -> Reply {
6152 Reply::GetSelectionOwner(reply)
6153 }
6154}
6155impl From<xproto::GrabPointerReply> for Reply {
6156 fn from(reply: xproto::GrabPointerReply) -> Reply {
6157 Reply::GrabPointer(reply)
6158 }
6159}
6160impl From<xproto::GrabKeyboardReply> for Reply {
6161 fn from(reply: xproto::GrabKeyboardReply) -> Reply {
6162 Reply::GrabKeyboard(reply)
6163 }
6164}
6165impl From<xproto::QueryPointerReply> for Reply {
6166 fn from(reply: xproto::QueryPointerReply) -> Reply {
6167 Reply::QueryPointer(reply)
6168 }
6169}
6170impl From<xproto::GetMotionEventsReply> for Reply {
6171 fn from(reply: xproto::GetMotionEventsReply) -> Reply {
6172 Reply::GetMotionEvents(reply)
6173 }
6174}
6175impl From<xproto::TranslateCoordinatesReply> for Reply {
6176 fn from(reply: xproto::TranslateCoordinatesReply) -> Reply {
6177 Reply::TranslateCoordinates(reply)
6178 }
6179}
6180impl From<xproto::GetInputFocusReply> for Reply {
6181 fn from(reply: xproto::GetInputFocusReply) -> Reply {
6182 Reply::GetInputFocus(reply)
6183 }
6184}
6185impl From<xproto::QueryKeymapReply> for Reply {
6186 fn from(reply: xproto::QueryKeymapReply) -> Reply {
6187 Reply::QueryKeymap(reply)
6188 }
6189}
6190impl From<xproto::QueryFontReply> for Reply {
6191 fn from(reply: xproto::QueryFontReply) -> Reply {
6192 Reply::QueryFont(reply)
6193 }
6194}
6195impl From<xproto::QueryTextExtentsReply> for Reply {
6196 fn from(reply: xproto::QueryTextExtentsReply) -> Reply {
6197 Reply::QueryTextExtents(reply)
6198 }
6199}
6200impl From<xproto::ListFontsReply> for Reply {
6201 fn from(reply: xproto::ListFontsReply) -> Reply {
6202 Reply::ListFonts(reply)
6203 }
6204}
6205impl From<xproto::ListFontsWithInfoReply> for Reply {
6206 fn from(reply: xproto::ListFontsWithInfoReply) -> Reply {
6207 Reply::ListFontsWithInfo(reply)
6208 }
6209}
6210impl From<xproto::GetFontPathReply> for Reply {
6211 fn from(reply: xproto::GetFontPathReply) -> Reply {
6212 Reply::GetFontPath(reply)
6213 }
6214}
6215impl From<xproto::GetImageReply> for Reply {
6216 fn from(reply: xproto::GetImageReply) -> Reply {
6217 Reply::GetImage(reply)
6218 }
6219}
6220impl From<xproto::ListInstalledColormapsReply> for Reply {
6221 fn from(reply: xproto::ListInstalledColormapsReply) -> Reply {
6222 Reply::ListInstalledColormaps(reply)
6223 }
6224}
6225impl From<xproto::AllocColorReply> for Reply {
6226 fn from(reply: xproto::AllocColorReply) -> Reply {
6227 Reply::AllocColor(reply)
6228 }
6229}
6230impl From<xproto::AllocNamedColorReply> for Reply {
6231 fn from(reply: xproto::AllocNamedColorReply) -> Reply {
6232 Reply::AllocNamedColor(reply)
6233 }
6234}
6235impl From<xproto::AllocColorCellsReply> for Reply {
6236 fn from(reply: xproto::AllocColorCellsReply) -> Reply {
6237 Reply::AllocColorCells(reply)
6238 }
6239}
6240impl From<xproto::AllocColorPlanesReply> for Reply {
6241 fn from(reply: xproto::AllocColorPlanesReply) -> Reply {
6242 Reply::AllocColorPlanes(reply)
6243 }
6244}
6245impl From<xproto::QueryColorsReply> for Reply {
6246 fn from(reply: xproto::QueryColorsReply) -> Reply {
6247 Reply::QueryColors(reply)
6248 }
6249}
6250impl From<xproto::LookupColorReply> for Reply {
6251 fn from(reply: xproto::LookupColorReply) -> Reply {
6252 Reply::LookupColor(reply)
6253 }
6254}
6255impl From<xproto::QueryBestSizeReply> for Reply {
6256 fn from(reply: xproto::QueryBestSizeReply) -> Reply {
6257 Reply::QueryBestSize(reply)
6258 }
6259}
6260impl From<xproto::QueryExtensionReply> for Reply {
6261 fn from(reply: xproto::QueryExtensionReply) -> Reply {
6262 Reply::QueryExtension(reply)
6263 }
6264}
6265impl From<xproto::ListExtensionsReply> for Reply {
6266 fn from(reply: xproto::ListExtensionsReply) -> Reply {
6267 Reply::ListExtensions(reply)
6268 }
6269}
6270impl From<xproto::GetKeyboardMappingReply> for Reply {
6271 fn from(reply: xproto::GetKeyboardMappingReply) -> Reply {
6272 Reply::GetKeyboardMapping(reply)
6273 }
6274}
6275impl From<xproto::GetKeyboardControlReply> for Reply {
6276 fn from(reply: xproto::GetKeyboardControlReply) -> Reply {
6277 Reply::GetKeyboardControl(reply)
6278 }
6279}
6280impl From<xproto::GetPointerControlReply> for Reply {
6281 fn from(reply: xproto::GetPointerControlReply) -> Reply {
6282 Reply::GetPointerControl(reply)
6283 }
6284}
6285impl From<xproto::GetScreenSaverReply> for Reply {
6286 fn from(reply: xproto::GetScreenSaverReply) -> Reply {
6287 Reply::GetScreenSaver(reply)
6288 }
6289}
6290impl From<xproto::ListHostsReply> for Reply {
6291 fn from(reply: xproto::ListHostsReply) -> Reply {
6292 Reply::ListHosts(reply)
6293 }
6294}
6295impl From<xproto::SetPointerMappingReply> for Reply {
6296 fn from(reply: xproto::SetPointerMappingReply) -> Reply {
6297 Reply::SetPointerMapping(reply)
6298 }
6299}
6300impl From<xproto::GetPointerMappingReply> for Reply {
6301 fn from(reply: xproto::GetPointerMappingReply) -> Reply {
6302 Reply::GetPointerMapping(reply)
6303 }
6304}
6305impl From<xproto::SetModifierMappingReply> for Reply {
6306 fn from(reply: xproto::SetModifierMappingReply) -> Reply {
6307 Reply::SetModifierMapping(reply)
6308 }
6309}
6310impl From<xproto::GetModifierMappingReply> for Reply {
6311 fn from(reply: xproto::GetModifierMappingReply) -> Reply {
6312 Reply::GetModifierMapping(reply)
6313 }
6314}
6315impl From<bigreq::EnableReply> for Reply {
6316 fn from(reply: bigreq::EnableReply) -> Reply {
6317 Reply::BigreqEnable(reply)
6318 }
6319}
6320#[cfg(feature = "composite")]
6321impl From<composite::QueryVersionReply> for Reply {
6322 fn from(reply: composite::QueryVersionReply) -> Reply {
6323 Reply::CompositeQueryVersion(reply)
6324 }
6325}
6326#[cfg(feature = "composite")]
6327impl From<composite::GetOverlayWindowReply> for Reply {
6328 fn from(reply: composite::GetOverlayWindowReply) -> Reply {
6329 Reply::CompositeGetOverlayWindow(reply)
6330 }
6331}
6332#[cfg(feature = "damage")]
6333impl From<damage::QueryVersionReply> for Reply {
6334 fn from(reply: damage::QueryVersionReply) -> Reply {
6335 Reply::DamageQueryVersion(reply)
6336 }
6337}
6338#[cfg(feature = "dbe")]
6339impl From<dbe::QueryVersionReply> for Reply {
6340 fn from(reply: dbe::QueryVersionReply) -> Reply {
6341 Reply::DbeQueryVersion(reply)
6342 }
6343}
6344#[cfg(feature = "dbe")]
6345impl From<dbe::GetVisualInfoReply> for Reply {
6346 fn from(reply: dbe::GetVisualInfoReply) -> Reply {
6347 Reply::DbeGetVisualInfo(reply)
6348 }
6349}
6350#[cfg(feature = "dbe")]
6351impl From<dbe::GetBackBufferAttributesReply> for Reply {
6352 fn from(reply: dbe::GetBackBufferAttributesReply) -> Reply {
6353 Reply::DbeGetBackBufferAttributes(reply)
6354 }
6355}
6356#[cfg(feature = "dpms")]
6357impl From<dpms::GetVersionReply> for Reply {
6358 fn from(reply: dpms::GetVersionReply) -> Reply {
6359 Reply::DpmsGetVersion(reply)
6360 }
6361}
6362#[cfg(feature = "dpms")]
6363impl From<dpms::CapableReply> for Reply {
6364 fn from(reply: dpms::CapableReply) -> Reply {
6365 Reply::DpmsCapable(reply)
6366 }
6367}
6368#[cfg(feature = "dpms")]
6369impl From<dpms::GetTimeoutsReply> for Reply {
6370 fn from(reply: dpms::GetTimeoutsReply) -> Reply {
6371 Reply::DpmsGetTimeouts(reply)
6372 }
6373}
6374#[cfg(feature = "dpms")]
6375impl From<dpms::InfoReply> for Reply {
6376 fn from(reply: dpms::InfoReply) -> Reply {
6377 Reply::DpmsInfo(reply)
6378 }
6379}
6380#[cfg(feature = "dri2")]
6381impl From<dri2::QueryVersionReply> for Reply {
6382 fn from(reply: dri2::QueryVersionReply) -> Reply {
6383 Reply::Dri2QueryVersion(reply)
6384 }
6385}
6386#[cfg(feature = "dri2")]
6387impl From<dri2::ConnectReply> for Reply {
6388 fn from(reply: dri2::ConnectReply) -> Reply {
6389 Reply::Dri2Connect(reply)
6390 }
6391}
6392#[cfg(feature = "dri2")]
6393impl From<dri2::AuthenticateReply> for Reply {
6394 fn from(reply: dri2::AuthenticateReply) -> Reply {
6395 Reply::Dri2Authenticate(reply)
6396 }
6397}
6398#[cfg(feature = "dri2")]
6399impl From<dri2::GetBuffersReply> for Reply {
6400 fn from(reply: dri2::GetBuffersReply) -> Reply {
6401 Reply::Dri2GetBuffers(reply)
6402 }
6403}
6404#[cfg(feature = "dri2")]
6405impl From<dri2::CopyRegionReply> for Reply {
6406 fn from(reply: dri2::CopyRegionReply) -> Reply {
6407 Reply::Dri2CopyRegion(reply)
6408 }
6409}
6410#[cfg(feature = "dri2")]
6411impl From<dri2::GetBuffersWithFormatReply> for Reply {
6412 fn from(reply: dri2::GetBuffersWithFormatReply) -> Reply {
6413 Reply::Dri2GetBuffersWithFormat(reply)
6414 }
6415}
6416#[cfg(feature = "dri2")]
6417impl From<dri2::SwapBuffersReply> for Reply {
6418 fn from(reply: dri2::SwapBuffersReply) -> Reply {
6419 Reply::Dri2SwapBuffers(reply)
6420 }
6421}
6422#[cfg(feature = "dri2")]
6423impl From<dri2::GetMSCReply> for Reply {
6424 fn from(reply: dri2::GetMSCReply) -> Reply {
6425 Reply::Dri2GetMSC(reply)
6426 }
6427}
6428#[cfg(feature = "dri2")]
6429impl From<dri2::WaitMSCReply> for Reply {
6430 fn from(reply: dri2::WaitMSCReply) -> Reply {
6431 Reply::Dri2WaitMSC(reply)
6432 }
6433}
6434#[cfg(feature = "dri2")]
6435impl From<dri2::WaitSBCReply> for Reply {
6436 fn from(reply: dri2::WaitSBCReply) -> Reply {
6437 Reply::Dri2WaitSBC(reply)
6438 }
6439}
6440#[cfg(feature = "dri2")]
6441impl From<dri2::GetParamReply> for Reply {
6442 fn from(reply: dri2::GetParamReply) -> Reply {
6443 Reply::Dri2GetParam(reply)
6444 }
6445}
6446#[cfg(feature = "dri3")]
6447impl From<dri3::QueryVersionReply> for Reply {
6448 fn from(reply: dri3::QueryVersionReply) -> Reply {
6449 Reply::Dri3QueryVersion(reply)
6450 }
6451}
6452#[cfg(feature = "dri3")]
6453impl From<dri3::OpenReply> for Reply {
6454 fn from(reply: dri3::OpenReply) -> Reply {
6455 Reply::Dri3Open(reply)
6456 }
6457}
6458#[cfg(feature = "dri3")]
6459impl From<dri3::BufferFromPixmapReply> for Reply {
6460 fn from(reply: dri3::BufferFromPixmapReply) -> Reply {
6461 Reply::Dri3BufferFromPixmap(reply)
6462 }
6463}
6464#[cfg(feature = "dri3")]
6465impl From<dri3::FDFromFenceReply> for Reply {
6466 fn from(reply: dri3::FDFromFenceReply) -> Reply {
6467 Reply::Dri3FDFromFence(reply)
6468 }
6469}
6470#[cfg(feature = "dri3")]
6471impl From<dri3::GetSupportedModifiersReply> for Reply {
6472 fn from(reply: dri3::GetSupportedModifiersReply) -> Reply {
6473 Reply::Dri3GetSupportedModifiers(reply)
6474 }
6475}
6476#[cfg(feature = "dri3")]
6477impl From<dri3::BuffersFromPixmapReply> for Reply {
6478 fn from(reply: dri3::BuffersFromPixmapReply) -> Reply {
6479 Reply::Dri3BuffersFromPixmap(reply)
6480 }
6481}
6482impl From<ge::QueryVersionReply> for Reply {
6483 fn from(reply: ge::QueryVersionReply) -> Reply {
6484 Reply::GeQueryVersion(reply)
6485 }
6486}
6487#[cfg(feature = "glx")]
6488impl From<glx::MakeCurrentReply> for Reply {
6489 fn from(reply: glx::MakeCurrentReply) -> Reply {
6490 Reply::GlxMakeCurrent(reply)
6491 }
6492}
6493#[cfg(feature = "glx")]
6494impl From<glx::IsDirectReply> for Reply {
6495 fn from(reply: glx::IsDirectReply) -> Reply {
6496 Reply::GlxIsDirect(reply)
6497 }
6498}
6499#[cfg(feature = "glx")]
6500impl From<glx::QueryVersionReply> for Reply {
6501 fn from(reply: glx::QueryVersionReply) -> Reply {
6502 Reply::GlxQueryVersion(reply)
6503 }
6504}
6505#[cfg(feature = "glx")]
6506impl From<glx::GetVisualConfigsReply> for Reply {
6507 fn from(reply: glx::GetVisualConfigsReply) -> Reply {
6508 Reply::GlxGetVisualConfigs(reply)
6509 }
6510}
6511#[cfg(feature = "glx")]
6512impl From<glx::VendorPrivateWithReplyReply> for Reply {
6513 fn from(reply: glx::VendorPrivateWithReplyReply) -> Reply {
6514 Reply::GlxVendorPrivateWithReply(reply)
6515 }
6516}
6517#[cfg(feature = "glx")]
6518impl From<glx::QueryExtensionsStringReply> for Reply {
6519 fn from(reply: glx::QueryExtensionsStringReply) -> Reply {
6520 Reply::GlxQueryExtensionsString(reply)
6521 }
6522}
6523#[cfg(feature = "glx")]
6524impl From<glx::QueryServerStringReply> for Reply {
6525 fn from(reply: glx::QueryServerStringReply) -> Reply {
6526 Reply::GlxQueryServerString(reply)
6527 }
6528}
6529#[cfg(feature = "glx")]
6530impl From<glx::GetFBConfigsReply> for Reply {
6531 fn from(reply: glx::GetFBConfigsReply) -> Reply {
6532 Reply::GlxGetFBConfigs(reply)
6533 }
6534}
6535#[cfg(feature = "glx")]
6536impl From<glx::QueryContextReply> for Reply {
6537 fn from(reply: glx::QueryContextReply) -> Reply {
6538 Reply::GlxQueryContext(reply)
6539 }
6540}
6541#[cfg(feature = "glx")]
6542impl From<glx::MakeContextCurrentReply> for Reply {
6543 fn from(reply: glx::MakeContextCurrentReply) -> Reply {
6544 Reply::GlxMakeContextCurrent(reply)
6545 }
6546}
6547#[cfg(feature = "glx")]
6548impl From<glx::GetDrawableAttributesReply> for Reply {
6549 fn from(reply: glx::GetDrawableAttributesReply) -> Reply {
6550 Reply::GlxGetDrawableAttributes(reply)
6551 }
6552}
6553#[cfg(feature = "glx")]
6554impl From<glx::GenListsReply> for Reply {
6555 fn from(reply: glx::GenListsReply) -> Reply {
6556 Reply::GlxGenLists(reply)
6557 }
6558}
6559#[cfg(feature = "glx")]
6560impl From<glx::RenderModeReply> for Reply {
6561 fn from(reply: glx::RenderModeReply) -> Reply {
6562 Reply::GlxRenderMode(reply)
6563 }
6564}
6565#[cfg(feature = "glx")]
6566impl From<glx::FinishReply> for Reply {
6567 fn from(reply: glx::FinishReply) -> Reply {
6568 Reply::GlxFinish(reply)
6569 }
6570}
6571#[cfg(feature = "glx")]
6572impl From<glx::ReadPixelsReply> for Reply {
6573 fn from(reply: glx::ReadPixelsReply) -> Reply {
6574 Reply::GlxReadPixels(reply)
6575 }
6576}
6577#[cfg(feature = "glx")]
6578impl From<glx::GetBooleanvReply> for Reply {
6579 fn from(reply: glx::GetBooleanvReply) -> Reply {
6580 Reply::GlxGetBooleanv(reply)
6581 }
6582}
6583#[cfg(feature = "glx")]
6584impl From<glx::GetClipPlaneReply> for Reply {
6585 fn from(reply: glx::GetClipPlaneReply) -> Reply {
6586 Reply::GlxGetClipPlane(reply)
6587 }
6588}
6589#[cfg(feature = "glx")]
6590impl From<glx::GetDoublevReply> for Reply {
6591 fn from(reply: glx::GetDoublevReply) -> Reply {
6592 Reply::GlxGetDoublev(reply)
6593 }
6594}
6595#[cfg(feature = "glx")]
6596impl From<glx::GetErrorReply> for Reply {
6597 fn from(reply: glx::GetErrorReply) -> Reply {
6598 Reply::GlxGetError(reply)
6599 }
6600}
6601#[cfg(feature = "glx")]
6602impl From<glx::GetFloatvReply> for Reply {
6603 fn from(reply: glx::GetFloatvReply) -> Reply {
6604 Reply::GlxGetFloatv(reply)
6605 }
6606}
6607#[cfg(feature = "glx")]
6608impl From<glx::GetIntegervReply> for Reply {
6609 fn from(reply: glx::GetIntegervReply) -> Reply {
6610 Reply::GlxGetIntegerv(reply)
6611 }
6612}
6613#[cfg(feature = "glx")]
6614impl From<glx::GetLightfvReply> for Reply {
6615 fn from(reply: glx::GetLightfvReply) -> Reply {
6616 Reply::GlxGetLightfv(reply)
6617 }
6618}
6619#[cfg(feature = "glx")]
6620impl From<glx::GetLightivReply> for Reply {
6621 fn from(reply: glx::GetLightivReply) -> Reply {
6622 Reply::GlxGetLightiv(reply)
6623 }
6624}
6625#[cfg(feature = "glx")]
6626impl From<glx::GetMapdvReply> for Reply {
6627 fn from(reply: glx::GetMapdvReply) -> Reply {
6628 Reply::GlxGetMapdv(reply)
6629 }
6630}
6631#[cfg(feature = "glx")]
6632impl From<glx::GetMapfvReply> for Reply {
6633 fn from(reply: glx::GetMapfvReply) -> Reply {
6634 Reply::GlxGetMapfv(reply)
6635 }
6636}
6637#[cfg(feature = "glx")]
6638impl From<glx::GetMapivReply> for Reply {
6639 fn from(reply: glx::GetMapivReply) -> Reply {
6640 Reply::GlxGetMapiv(reply)
6641 }
6642}
6643#[cfg(feature = "glx")]
6644impl From<glx::GetMaterialfvReply> for Reply {
6645 fn from(reply: glx::GetMaterialfvReply) -> Reply {
6646 Reply::GlxGetMaterialfv(reply)
6647 }
6648}
6649#[cfg(feature = "glx")]
6650impl From<glx::GetMaterialivReply> for Reply {
6651 fn from(reply: glx::GetMaterialivReply) -> Reply {
6652 Reply::GlxGetMaterialiv(reply)
6653 }
6654}
6655#[cfg(feature = "glx")]
6656impl From<glx::GetPixelMapfvReply> for Reply {
6657 fn from(reply: glx::GetPixelMapfvReply) -> Reply {
6658 Reply::GlxGetPixelMapfv(reply)
6659 }
6660}
6661#[cfg(feature = "glx")]
6662impl From<glx::GetPixelMapuivReply> for Reply {
6663 fn from(reply: glx::GetPixelMapuivReply) -> Reply {
6664 Reply::GlxGetPixelMapuiv(reply)
6665 }
6666}
6667#[cfg(feature = "glx")]
6668impl From<glx::GetPixelMapusvReply> for Reply {
6669 fn from(reply: glx::GetPixelMapusvReply) -> Reply {
6670 Reply::GlxGetPixelMapusv(reply)
6671 }
6672}
6673#[cfg(feature = "glx")]
6674impl From<glx::GetPolygonStippleReply> for Reply {
6675 fn from(reply: glx::GetPolygonStippleReply) -> Reply {
6676 Reply::GlxGetPolygonStipple(reply)
6677 }
6678}
6679#[cfg(feature = "glx")]
6680impl From<glx::GetStringReply> for Reply {
6681 fn from(reply: glx::GetStringReply) -> Reply {
6682 Reply::GlxGetString(reply)
6683 }
6684}
6685#[cfg(feature = "glx")]
6686impl From<glx::GetTexEnvfvReply> for Reply {
6687 fn from(reply: glx::GetTexEnvfvReply) -> Reply {
6688 Reply::GlxGetTexEnvfv(reply)
6689 }
6690}
6691#[cfg(feature = "glx")]
6692impl From<glx::GetTexEnvivReply> for Reply {
6693 fn from(reply: glx::GetTexEnvivReply) -> Reply {
6694 Reply::GlxGetTexEnviv(reply)
6695 }
6696}
6697#[cfg(feature = "glx")]
6698impl From<glx::GetTexGendvReply> for Reply {
6699 fn from(reply: glx::GetTexGendvReply) -> Reply {
6700 Reply::GlxGetTexGendv(reply)
6701 }
6702}
6703#[cfg(feature = "glx")]
6704impl From<glx::GetTexGenfvReply> for Reply {
6705 fn from(reply: glx::GetTexGenfvReply) -> Reply {
6706 Reply::GlxGetTexGenfv(reply)
6707 }
6708}
6709#[cfg(feature = "glx")]
6710impl From<glx::GetTexGenivReply> for Reply {
6711 fn from(reply: glx::GetTexGenivReply) -> Reply {
6712 Reply::GlxGetTexGeniv(reply)
6713 }
6714}
6715#[cfg(feature = "glx")]
6716impl From<glx::GetTexImageReply> for Reply {
6717 fn from(reply: glx::GetTexImageReply) -> Reply {
6718 Reply::GlxGetTexImage(reply)
6719 }
6720}
6721#[cfg(feature = "glx")]
6722impl From<glx::GetTexParameterfvReply> for Reply {
6723 fn from(reply: glx::GetTexParameterfvReply) -> Reply {
6724 Reply::GlxGetTexParameterfv(reply)
6725 }
6726}
6727#[cfg(feature = "glx")]
6728impl From<glx::GetTexParameterivReply> for Reply {
6729 fn from(reply: glx::GetTexParameterivReply) -> Reply {
6730 Reply::GlxGetTexParameteriv(reply)
6731 }
6732}
6733#[cfg(feature = "glx")]
6734impl From<glx::GetTexLevelParameterfvReply> for Reply {
6735 fn from(reply: glx::GetTexLevelParameterfvReply) -> Reply {
6736 Reply::GlxGetTexLevelParameterfv(reply)
6737 }
6738}
6739#[cfg(feature = "glx")]
6740impl From<glx::GetTexLevelParameterivReply> for Reply {
6741 fn from(reply: glx::GetTexLevelParameterivReply) -> Reply {
6742 Reply::GlxGetTexLevelParameteriv(reply)
6743 }
6744}
6745#[cfg(feature = "glx")]
6746impl From<glx::IsEnabledReply> for Reply {
6747 fn from(reply: glx::IsEnabledReply) -> Reply {
6748 Reply::GlxIsEnabled(reply)
6749 }
6750}
6751#[cfg(feature = "glx")]
6752impl From<glx::IsListReply> for Reply {
6753 fn from(reply: glx::IsListReply) -> Reply {
6754 Reply::GlxIsList(reply)
6755 }
6756}
6757#[cfg(feature = "glx")]
6758impl From<glx::AreTexturesResidentReply> for Reply {
6759 fn from(reply: glx::AreTexturesResidentReply) -> Reply {
6760 Reply::GlxAreTexturesResident(reply)
6761 }
6762}
6763#[cfg(feature = "glx")]
6764impl From<glx::GenTexturesReply> for Reply {
6765 fn from(reply: glx::GenTexturesReply) -> Reply {
6766 Reply::GlxGenTextures(reply)
6767 }
6768}
6769#[cfg(feature = "glx")]
6770impl From<glx::IsTextureReply> for Reply {
6771 fn from(reply: glx::IsTextureReply) -> Reply {
6772 Reply::GlxIsTexture(reply)
6773 }
6774}
6775#[cfg(feature = "glx")]
6776impl From<glx::GetColorTableReply> for Reply {
6777 fn from(reply: glx::GetColorTableReply) -> Reply {
6778 Reply::GlxGetColorTable(reply)
6779 }
6780}
6781#[cfg(feature = "glx")]
6782impl From<glx::GetColorTableParameterfvReply> for Reply {
6783 fn from(reply: glx::GetColorTableParameterfvReply) -> Reply {
6784 Reply::GlxGetColorTableParameterfv(reply)
6785 }
6786}
6787#[cfg(feature = "glx")]
6788impl From<glx::GetColorTableParameterivReply> for Reply {
6789 fn from(reply: glx::GetColorTableParameterivReply) -> Reply {
6790 Reply::GlxGetColorTableParameteriv(reply)
6791 }
6792}
6793#[cfg(feature = "glx")]
6794impl From<glx::GetConvolutionFilterReply> for Reply {
6795 fn from(reply: glx::GetConvolutionFilterReply) -> Reply {
6796 Reply::GlxGetConvolutionFilter(reply)
6797 }
6798}
6799#[cfg(feature = "glx")]
6800impl From<glx::GetConvolutionParameterfvReply> for Reply {
6801 fn from(reply: glx::GetConvolutionParameterfvReply) -> Reply {
6802 Reply::GlxGetConvolutionParameterfv(reply)
6803 }
6804}
6805#[cfg(feature = "glx")]
6806impl From<glx::GetConvolutionParameterivReply> for Reply {
6807 fn from(reply: glx::GetConvolutionParameterivReply) -> Reply {
6808 Reply::GlxGetConvolutionParameteriv(reply)
6809 }
6810}
6811#[cfg(feature = "glx")]
6812impl From<glx::GetSeparableFilterReply> for Reply {
6813 fn from(reply: glx::GetSeparableFilterReply) -> Reply {
6814 Reply::GlxGetSeparableFilter(reply)
6815 }
6816}
6817#[cfg(feature = "glx")]
6818impl From<glx::GetHistogramReply> for Reply {
6819 fn from(reply: glx::GetHistogramReply) -> Reply {
6820 Reply::GlxGetHistogram(reply)
6821 }
6822}
6823#[cfg(feature = "glx")]
6824impl From<glx::GetHistogramParameterfvReply> for Reply {
6825 fn from(reply: glx::GetHistogramParameterfvReply) -> Reply {
6826 Reply::GlxGetHistogramParameterfv(reply)
6827 }
6828}
6829#[cfg(feature = "glx")]
6830impl From<glx::GetHistogramParameterivReply> for Reply {
6831 fn from(reply: glx::GetHistogramParameterivReply) -> Reply {
6832 Reply::GlxGetHistogramParameteriv(reply)
6833 }
6834}
6835#[cfg(feature = "glx")]
6836impl From<glx::GetMinmaxReply> for Reply {
6837 fn from(reply: glx::GetMinmaxReply) -> Reply {
6838 Reply::GlxGetMinmax(reply)
6839 }
6840}
6841#[cfg(feature = "glx")]
6842impl From<glx::GetMinmaxParameterfvReply> for Reply {
6843 fn from(reply: glx::GetMinmaxParameterfvReply) -> Reply {
6844 Reply::GlxGetMinmaxParameterfv(reply)
6845 }
6846}
6847#[cfg(feature = "glx")]
6848impl From<glx::GetMinmaxParameterivReply> for Reply {
6849 fn from(reply: glx::GetMinmaxParameterivReply) -> Reply {
6850 Reply::GlxGetMinmaxParameteriv(reply)
6851 }
6852}
6853#[cfg(feature = "glx")]
6854impl From<glx::GetCompressedTexImageARBReply> for Reply {
6855 fn from(reply: glx::GetCompressedTexImageARBReply) -> Reply {
6856 Reply::GlxGetCompressedTexImageARB(reply)
6857 }
6858}
6859#[cfg(feature = "glx")]
6860impl From<glx::GenQueriesARBReply> for Reply {
6861 fn from(reply: glx::GenQueriesARBReply) -> Reply {
6862 Reply::GlxGenQueriesARB(reply)
6863 }
6864}
6865#[cfg(feature = "glx")]
6866impl From<glx::IsQueryARBReply> for Reply {
6867 fn from(reply: glx::IsQueryARBReply) -> Reply {
6868 Reply::GlxIsQueryARB(reply)
6869 }
6870}
6871#[cfg(feature = "glx")]
6872impl From<glx::GetQueryivARBReply> for Reply {
6873 fn from(reply: glx::GetQueryivARBReply) -> Reply {
6874 Reply::GlxGetQueryivARB(reply)
6875 }
6876}
6877#[cfg(feature = "glx")]
6878impl From<glx::GetQueryObjectivARBReply> for Reply {
6879 fn from(reply: glx::GetQueryObjectivARBReply) -> Reply {
6880 Reply::GlxGetQueryObjectivARB(reply)
6881 }
6882}
6883#[cfg(feature = "glx")]
6884impl From<glx::GetQueryObjectuivARBReply> for Reply {
6885 fn from(reply: glx::GetQueryObjectuivARBReply) -> Reply {
6886 Reply::GlxGetQueryObjectuivARB(reply)
6887 }
6888}
6889#[cfg(feature = "present")]
6890impl From<present::QueryVersionReply> for Reply {
6891 fn from(reply: present::QueryVersionReply) -> Reply {
6892 Reply::PresentQueryVersion(reply)
6893 }
6894}
6895#[cfg(feature = "present")]
6896impl From<present::QueryCapabilitiesReply> for Reply {
6897 fn from(reply: present::QueryCapabilitiesReply) -> Reply {
6898 Reply::PresentQueryCapabilities(reply)
6899 }
6900}
6901#[cfg(feature = "randr")]
6902impl From<randr::QueryVersionReply> for Reply {
6903 fn from(reply: randr::QueryVersionReply) -> Reply {
6904 Reply::RandrQueryVersion(reply)
6905 }
6906}
6907#[cfg(feature = "randr")]
6908impl From<randr::SetScreenConfigReply> for Reply {
6909 fn from(reply: randr::SetScreenConfigReply) -> Reply {
6910 Reply::RandrSetScreenConfig(reply)
6911 }
6912}
6913#[cfg(feature = "randr")]
6914impl From<randr::GetScreenInfoReply> for Reply {
6915 fn from(reply: randr::GetScreenInfoReply) -> Reply {
6916 Reply::RandrGetScreenInfo(reply)
6917 }
6918}
6919#[cfg(feature = "randr")]
6920impl From<randr::GetScreenSizeRangeReply> for Reply {
6921 fn from(reply: randr::GetScreenSizeRangeReply) -> Reply {
6922 Reply::RandrGetScreenSizeRange(reply)
6923 }
6924}
6925#[cfg(feature = "randr")]
6926impl From<randr::GetScreenResourcesReply> for Reply {
6927 fn from(reply: randr::GetScreenResourcesReply) -> Reply {
6928 Reply::RandrGetScreenResources(reply)
6929 }
6930}
6931#[cfg(feature = "randr")]
6932impl From<randr::GetOutputInfoReply> for Reply {
6933 fn from(reply: randr::GetOutputInfoReply) -> Reply {
6934 Reply::RandrGetOutputInfo(reply)
6935 }
6936}
6937#[cfg(feature = "randr")]
6938impl From<randr::ListOutputPropertiesReply> for Reply {
6939 fn from(reply: randr::ListOutputPropertiesReply) -> Reply {
6940 Reply::RandrListOutputProperties(reply)
6941 }
6942}
6943#[cfg(feature = "randr")]
6944impl From<randr::QueryOutputPropertyReply> for Reply {
6945 fn from(reply: randr::QueryOutputPropertyReply) -> Reply {
6946 Reply::RandrQueryOutputProperty(reply)
6947 }
6948}
6949#[cfg(feature = "randr")]
6950impl From<randr::GetOutputPropertyReply> for Reply {
6951 fn from(reply: randr::GetOutputPropertyReply) -> Reply {
6952 Reply::RandrGetOutputProperty(reply)
6953 }
6954}
6955#[cfg(feature = "randr")]
6956impl From<randr::CreateModeReply> for Reply {
6957 fn from(reply: randr::CreateModeReply) -> Reply {
6958 Reply::RandrCreateMode(reply)
6959 }
6960}
6961#[cfg(feature = "randr")]
6962impl From<randr::GetCrtcInfoReply> for Reply {
6963 fn from(reply: randr::GetCrtcInfoReply) -> Reply {
6964 Reply::RandrGetCrtcInfo(reply)
6965 }
6966}
6967#[cfg(feature = "randr")]
6968impl From<randr::SetCrtcConfigReply> for Reply {
6969 fn from(reply: randr::SetCrtcConfigReply) -> Reply {
6970 Reply::RandrSetCrtcConfig(reply)
6971 }
6972}
6973#[cfg(feature = "randr")]
6974impl From<randr::GetCrtcGammaSizeReply> for Reply {
6975 fn from(reply: randr::GetCrtcGammaSizeReply) -> Reply {
6976 Reply::RandrGetCrtcGammaSize(reply)
6977 }
6978}
6979#[cfg(feature = "randr")]
6980impl From<randr::GetCrtcGammaReply> for Reply {
6981 fn from(reply: randr::GetCrtcGammaReply) -> Reply {
6982 Reply::RandrGetCrtcGamma(reply)
6983 }
6984}
6985#[cfg(feature = "randr")]
6986impl From<randr::GetScreenResourcesCurrentReply> for Reply {
6987 fn from(reply: randr::GetScreenResourcesCurrentReply) -> Reply {
6988 Reply::RandrGetScreenResourcesCurrent(reply)
6989 }
6990}
6991#[cfg(feature = "randr")]
6992impl From<randr::GetCrtcTransformReply> for Reply {
6993 fn from(reply: randr::GetCrtcTransformReply) -> Reply {
6994 Reply::RandrGetCrtcTransform(reply)
6995 }
6996}
6997#[cfg(feature = "randr")]
6998impl From<randr::GetPanningReply> for Reply {
6999 fn from(reply: randr::GetPanningReply) -> Reply {
7000 Reply::RandrGetPanning(reply)
7001 }
7002}
7003#[cfg(feature = "randr")]
7004impl From<randr::SetPanningReply> for Reply {
7005 fn from(reply: randr::SetPanningReply) -> Reply {
7006 Reply::RandrSetPanning(reply)
7007 }
7008}
7009#[cfg(feature = "randr")]
7010impl From<randr::GetOutputPrimaryReply> for Reply {
7011 fn from(reply: randr::GetOutputPrimaryReply) -> Reply {
7012 Reply::RandrGetOutputPrimary(reply)
7013 }
7014}
7015#[cfg(feature = "randr")]
7016impl From<randr::GetProvidersReply> for Reply {
7017 fn from(reply: randr::GetProvidersReply) -> Reply {
7018 Reply::RandrGetProviders(reply)
7019 }
7020}
7021#[cfg(feature = "randr")]
7022impl From<randr::GetProviderInfoReply> for Reply {
7023 fn from(reply: randr::GetProviderInfoReply) -> Reply {
7024 Reply::RandrGetProviderInfo(reply)
7025 }
7026}
7027#[cfg(feature = "randr")]
7028impl From<randr::ListProviderPropertiesReply> for Reply {
7029 fn from(reply: randr::ListProviderPropertiesReply) -> Reply {
7030 Reply::RandrListProviderProperties(reply)
7031 }
7032}
7033#[cfg(feature = "randr")]
7034impl From<randr::QueryProviderPropertyReply> for Reply {
7035 fn from(reply: randr::QueryProviderPropertyReply) -> Reply {
7036 Reply::RandrQueryProviderProperty(reply)
7037 }
7038}
7039#[cfg(feature = "randr")]
7040impl From<randr::GetProviderPropertyReply> for Reply {
7041 fn from(reply: randr::GetProviderPropertyReply) -> Reply {
7042 Reply::RandrGetProviderProperty(reply)
7043 }
7044}
7045#[cfg(feature = "randr")]
7046impl From<randr::GetMonitorsReply> for Reply {
7047 fn from(reply: randr::GetMonitorsReply) -> Reply {
7048 Reply::RandrGetMonitors(reply)
7049 }
7050}
7051#[cfg(feature = "randr")]
7052impl From<randr::CreateLeaseReply> for Reply {
7053 fn from(reply: randr::CreateLeaseReply) -> Reply {
7054 Reply::RandrCreateLease(reply)
7055 }
7056}
7057#[cfg(feature = "record")]
7058impl From<record::QueryVersionReply> for Reply {
7059 fn from(reply: record::QueryVersionReply) -> Reply {
7060 Reply::RecordQueryVersion(reply)
7061 }
7062}
7063#[cfg(feature = "record")]
7064impl From<record::GetContextReply> for Reply {
7065 fn from(reply: record::GetContextReply) -> Reply {
7066 Reply::RecordGetContext(reply)
7067 }
7068}
7069#[cfg(feature = "record")]
7070impl From<record::EnableContextReply> for Reply {
7071 fn from(reply: record::EnableContextReply) -> Reply {
7072 Reply::RecordEnableContext(reply)
7073 }
7074}
7075#[cfg(feature = "render")]
7076impl From<render::QueryVersionReply> for Reply {
7077 fn from(reply: render::QueryVersionReply) -> Reply {
7078 Reply::RenderQueryVersion(reply)
7079 }
7080}
7081#[cfg(feature = "render")]
7082impl From<render::QueryPictFormatsReply> for Reply {
7083 fn from(reply: render::QueryPictFormatsReply) -> Reply {
7084 Reply::RenderQueryPictFormats(reply)
7085 }
7086}
7087#[cfg(feature = "render")]
7088impl From<render::QueryPictIndexValuesReply> for Reply {
7089 fn from(reply: render::QueryPictIndexValuesReply) -> Reply {
7090 Reply::RenderQueryPictIndexValues(reply)
7091 }
7092}
7093#[cfg(feature = "render")]
7094impl From<render::QueryFiltersReply> for Reply {
7095 fn from(reply: render::QueryFiltersReply) -> Reply {
7096 Reply::RenderQueryFilters(reply)
7097 }
7098}
7099#[cfg(feature = "res")]
7100impl From<res::QueryVersionReply> for Reply {
7101 fn from(reply: res::QueryVersionReply) -> Reply {
7102 Reply::ResQueryVersion(reply)
7103 }
7104}
7105#[cfg(feature = "res")]
7106impl From<res::QueryClientsReply> for Reply {
7107 fn from(reply: res::QueryClientsReply) -> Reply {
7108 Reply::ResQueryClients(reply)
7109 }
7110}
7111#[cfg(feature = "res")]
7112impl From<res::QueryClientResourcesReply> for Reply {
7113 fn from(reply: res::QueryClientResourcesReply) -> Reply {
7114 Reply::ResQueryClientResources(reply)
7115 }
7116}
7117#[cfg(feature = "res")]
7118impl From<res::QueryClientPixmapBytesReply> for Reply {
7119 fn from(reply: res::QueryClientPixmapBytesReply) -> Reply {
7120 Reply::ResQueryClientPixmapBytes(reply)
7121 }
7122}
7123#[cfg(feature = "res")]
7124impl From<res::QueryClientIdsReply> for Reply {
7125 fn from(reply: res::QueryClientIdsReply) -> Reply {
7126 Reply::ResQueryClientIds(reply)
7127 }
7128}
7129#[cfg(feature = "res")]
7130impl From<res::QueryResourceBytesReply> for Reply {
7131 fn from(reply: res::QueryResourceBytesReply) -> Reply {
7132 Reply::ResQueryResourceBytes(reply)
7133 }
7134}
7135#[cfg(feature = "screensaver")]
7136impl From<screensaver::QueryVersionReply> for Reply {
7137 fn from(reply: screensaver::QueryVersionReply) -> Reply {
7138 Reply::ScreensaverQueryVersion(reply)
7139 }
7140}
7141#[cfg(feature = "screensaver")]
7142impl From<screensaver::QueryInfoReply> for Reply {
7143 fn from(reply: screensaver::QueryInfoReply) -> Reply {
7144 Reply::ScreensaverQueryInfo(reply)
7145 }
7146}
7147#[cfg(feature = "shape")]
7148impl From<shape::QueryVersionReply> for Reply {
7149 fn from(reply: shape::QueryVersionReply) -> Reply {
7150 Reply::ShapeQueryVersion(reply)
7151 }
7152}
7153#[cfg(feature = "shape")]
7154impl From<shape::QueryExtentsReply> for Reply {
7155 fn from(reply: shape::QueryExtentsReply) -> Reply {
7156 Reply::ShapeQueryExtents(reply)
7157 }
7158}
7159#[cfg(feature = "shape")]
7160impl From<shape::InputSelectedReply> for Reply {
7161 fn from(reply: shape::InputSelectedReply) -> Reply {
7162 Reply::ShapeInputSelected(reply)
7163 }
7164}
7165#[cfg(feature = "shape")]
7166impl From<shape::GetRectanglesReply> for Reply {
7167 fn from(reply: shape::GetRectanglesReply) -> Reply {
7168 Reply::ShapeGetRectangles(reply)
7169 }
7170}
7171#[cfg(feature = "shm")]
7172impl From<shm::QueryVersionReply> for Reply {
7173 fn from(reply: shm::QueryVersionReply) -> Reply {
7174 Reply::ShmQueryVersion(reply)
7175 }
7176}
7177#[cfg(feature = "shm")]
7178impl From<shm::GetImageReply> for Reply {
7179 fn from(reply: shm::GetImageReply) -> Reply {
7180 Reply::ShmGetImage(reply)
7181 }
7182}
7183#[cfg(feature = "shm")]
7184impl From<shm::CreateSegmentReply> for Reply {
7185 fn from(reply: shm::CreateSegmentReply) -> Reply {
7186 Reply::ShmCreateSegment(reply)
7187 }
7188}
7189#[cfg(feature = "sync")]
7190impl From<sync::InitializeReply> for Reply {
7191 fn from(reply: sync::InitializeReply) -> Reply {
7192 Reply::SyncInitialize(reply)
7193 }
7194}
7195#[cfg(feature = "sync")]
7196impl From<sync::ListSystemCountersReply> for Reply {
7197 fn from(reply: sync::ListSystemCountersReply) -> Reply {
7198 Reply::SyncListSystemCounters(reply)
7199 }
7200}
7201#[cfg(feature = "sync")]
7202impl From<sync::QueryCounterReply> for Reply {
7203 fn from(reply: sync::QueryCounterReply) -> Reply {
7204 Reply::SyncQueryCounter(reply)
7205 }
7206}
7207#[cfg(feature = "sync")]
7208impl From<sync::QueryAlarmReply> for Reply {
7209 fn from(reply: sync::QueryAlarmReply) -> Reply {
7210 Reply::SyncQueryAlarm(reply)
7211 }
7212}
7213#[cfg(feature = "sync")]
7214impl From<sync::GetPriorityReply> for Reply {
7215 fn from(reply: sync::GetPriorityReply) -> Reply {
7216 Reply::SyncGetPriority(reply)
7217 }
7218}
7219#[cfg(feature = "sync")]
7220impl From<sync::QueryFenceReply> for Reply {
7221 fn from(reply: sync::QueryFenceReply) -> Reply {
7222 Reply::SyncQueryFence(reply)
7223 }
7224}
7225impl From<xc_misc::GetVersionReply> for Reply {
7226 fn from(reply: xc_misc::GetVersionReply) -> Reply {
7227 Reply::XcMiscGetVersion(reply)
7228 }
7229}
7230impl From<xc_misc::GetXIDRangeReply> for Reply {
7231 fn from(reply: xc_misc::GetXIDRangeReply) -> Reply {
7232 Reply::XcMiscGetXIDRange(reply)
7233 }
7234}
7235impl From<xc_misc::GetXIDListReply> for Reply {
7236 fn from(reply: xc_misc::GetXIDListReply) -> Reply {
7237 Reply::XcMiscGetXIDList(reply)
7238 }
7239}
7240#[cfg(feature = "xevie")]
7241impl From<xevie::QueryVersionReply> for Reply {
7242 fn from(reply: xevie::QueryVersionReply) -> Reply {
7243 Reply::XevieQueryVersion(reply)
7244 }
7245}
7246#[cfg(feature = "xevie")]
7247impl From<xevie::StartReply> for Reply {
7248 fn from(reply: xevie::StartReply) -> Reply {
7249 Reply::XevieStart(reply)
7250 }
7251}
7252#[cfg(feature = "xevie")]
7253impl From<xevie::EndReply> for Reply {
7254 fn from(reply: xevie::EndReply) -> Reply {
7255 Reply::XevieEnd(reply)
7256 }
7257}
7258#[cfg(feature = "xevie")]
7259impl From<xevie::SendReply> for Reply {
7260 fn from(reply: xevie::SendReply) -> Reply {
7261 Reply::XevieSend(reply)
7262 }
7263}
7264#[cfg(feature = "xevie")]
7265impl From<xevie::SelectInputReply> for Reply {
7266 fn from(reply: xevie::SelectInputReply) -> Reply {
7267 Reply::XevieSelectInput(reply)
7268 }
7269}
7270#[cfg(feature = "xf86dri")]
7271impl From<xf86dri::QueryVersionReply> for Reply {
7272 fn from(reply: xf86dri::QueryVersionReply) -> Reply {
7273 Reply::Xf86driQueryVersion(reply)
7274 }
7275}
7276#[cfg(feature = "xf86dri")]
7277impl From<xf86dri::QueryDirectRenderingCapableReply> for Reply {
7278 fn from(reply: xf86dri::QueryDirectRenderingCapableReply) -> Reply {
7279 Reply::Xf86driQueryDirectRenderingCapable(reply)
7280 }
7281}
7282#[cfg(feature = "xf86dri")]
7283impl From<xf86dri::OpenConnectionReply> for Reply {
7284 fn from(reply: xf86dri::OpenConnectionReply) -> Reply {
7285 Reply::Xf86driOpenConnection(reply)
7286 }
7287}
7288#[cfg(feature = "xf86dri")]
7289impl From<xf86dri::GetClientDriverNameReply> for Reply {
7290 fn from(reply: xf86dri::GetClientDriverNameReply) -> Reply {
7291 Reply::Xf86driGetClientDriverName(reply)
7292 }
7293}
7294#[cfg(feature = "xf86dri")]
7295impl From<xf86dri::CreateContextReply> for Reply {
7296 fn from(reply: xf86dri::CreateContextReply) -> Reply {
7297 Reply::Xf86driCreateContext(reply)
7298 }
7299}
7300#[cfg(feature = "xf86dri")]
7301impl From<xf86dri::CreateDrawableReply> for Reply {
7302 fn from(reply: xf86dri::CreateDrawableReply) -> Reply {
7303 Reply::Xf86driCreateDrawable(reply)
7304 }
7305}
7306#[cfg(feature = "xf86dri")]
7307impl From<xf86dri::GetDrawableInfoReply> for Reply {
7308 fn from(reply: xf86dri::GetDrawableInfoReply) -> Reply {
7309 Reply::Xf86driGetDrawableInfo(reply)
7310 }
7311}
7312#[cfg(feature = "xf86dri")]
7313impl From<xf86dri::GetDeviceInfoReply> for Reply {
7314 fn from(reply: xf86dri::GetDeviceInfoReply) -> Reply {
7315 Reply::Xf86driGetDeviceInfo(reply)
7316 }
7317}
7318#[cfg(feature = "xf86dri")]
7319impl From<xf86dri::AuthConnectionReply> for Reply {
7320 fn from(reply: xf86dri::AuthConnectionReply) -> Reply {
7321 Reply::Xf86driAuthConnection(reply)
7322 }
7323}
7324#[cfg(feature = "xf86vidmode")]
7325impl From<xf86vidmode::QueryVersionReply> for Reply {
7326 fn from(reply: xf86vidmode::QueryVersionReply) -> Reply {
7327 Reply::Xf86vidmodeQueryVersion(reply)
7328 }
7329}
7330#[cfg(feature = "xf86vidmode")]
7331impl From<xf86vidmode::GetModeLineReply> for Reply {
7332 fn from(reply: xf86vidmode::GetModeLineReply) -> Reply {
7333 Reply::Xf86vidmodeGetModeLine(reply)
7334 }
7335}
7336#[cfg(feature = "xf86vidmode")]
7337impl From<xf86vidmode::GetMonitorReply> for Reply {
7338 fn from(reply: xf86vidmode::GetMonitorReply) -> Reply {
7339 Reply::Xf86vidmodeGetMonitor(reply)
7340 }
7341}
7342#[cfg(feature = "xf86vidmode")]
7343impl From<xf86vidmode::GetAllModeLinesReply> for Reply {
7344 fn from(reply: xf86vidmode::GetAllModeLinesReply) -> Reply {
7345 Reply::Xf86vidmodeGetAllModeLines(reply)
7346 }
7347}
7348#[cfg(feature = "xf86vidmode")]
7349impl From<xf86vidmode::ValidateModeLineReply> for Reply {
7350 fn from(reply: xf86vidmode::ValidateModeLineReply) -> Reply {
7351 Reply::Xf86vidmodeValidateModeLine(reply)
7352 }
7353}
7354#[cfg(feature = "xf86vidmode")]
7355impl From<xf86vidmode::GetViewPortReply> for Reply {
7356 fn from(reply: xf86vidmode::GetViewPortReply) -> Reply {
7357 Reply::Xf86vidmodeGetViewPort(reply)
7358 }
7359}
7360#[cfg(feature = "xf86vidmode")]
7361impl From<xf86vidmode::GetDotClocksReply> for Reply {
7362 fn from(reply: xf86vidmode::GetDotClocksReply) -> Reply {
7363 Reply::Xf86vidmodeGetDotClocks(reply)
7364 }
7365}
7366#[cfg(feature = "xf86vidmode")]
7367impl From<xf86vidmode::GetGammaReply> for Reply {
7368 fn from(reply: xf86vidmode::GetGammaReply) -> Reply {
7369 Reply::Xf86vidmodeGetGamma(reply)
7370 }
7371}
7372#[cfg(feature = "xf86vidmode")]
7373impl From<xf86vidmode::GetGammaRampReply> for Reply {
7374 fn from(reply: xf86vidmode::GetGammaRampReply) -> Reply {
7375 Reply::Xf86vidmodeGetGammaRamp(reply)
7376 }
7377}
7378#[cfg(feature = "xf86vidmode")]
7379impl From<xf86vidmode::GetGammaRampSizeReply> for Reply {
7380 fn from(reply: xf86vidmode::GetGammaRampSizeReply) -> Reply {
7381 Reply::Xf86vidmodeGetGammaRampSize(reply)
7382 }
7383}
7384#[cfg(feature = "xf86vidmode")]
7385impl From<xf86vidmode::GetPermissionsReply> for Reply {
7386 fn from(reply: xf86vidmode::GetPermissionsReply) -> Reply {
7387 Reply::Xf86vidmodeGetPermissions(reply)
7388 }
7389}
7390#[cfg(feature = "xfixes")]
7391impl From<xfixes::QueryVersionReply> for Reply {
7392 fn from(reply: xfixes::QueryVersionReply) -> Reply {
7393 Reply::XfixesQueryVersion(reply)
7394 }
7395}
7396#[cfg(feature = "xfixes")]
7397impl From<xfixes::GetCursorImageReply> for Reply {
7398 fn from(reply: xfixes::GetCursorImageReply) -> Reply {
7399 Reply::XfixesGetCursorImage(reply)
7400 }
7401}
7402#[cfg(feature = "xfixes")]
7403impl From<xfixes::FetchRegionReply> for Reply {
7404 fn from(reply: xfixes::FetchRegionReply) -> Reply {
7405 Reply::XfixesFetchRegion(reply)
7406 }
7407}
7408#[cfg(feature = "xfixes")]
7409impl From<xfixes::GetCursorNameReply> for Reply {
7410 fn from(reply: xfixes::GetCursorNameReply) -> Reply {
7411 Reply::XfixesGetCursorName(reply)
7412 }
7413}
7414#[cfg(feature = "xfixes")]
7415impl From<xfixes::GetCursorImageAndNameReply> for Reply {
7416 fn from(reply: xfixes::GetCursorImageAndNameReply) -> Reply {
7417 Reply::XfixesGetCursorImageAndName(reply)
7418 }
7419}
7420#[cfg(feature = "xfixes")]
7421impl From<xfixes::GetClientDisconnectModeReply> for Reply {
7422 fn from(reply: xfixes::GetClientDisconnectModeReply) -> Reply {
7423 Reply::XfixesGetClientDisconnectMode(reply)
7424 }
7425}
7426#[cfg(feature = "xinerama")]
7427impl From<xinerama::QueryVersionReply> for Reply {
7428 fn from(reply: xinerama::QueryVersionReply) -> Reply {
7429 Reply::XineramaQueryVersion(reply)
7430 }
7431}
7432#[cfg(feature = "xinerama")]
7433impl From<xinerama::GetStateReply> for Reply {
7434 fn from(reply: xinerama::GetStateReply) -> Reply {
7435 Reply::XineramaGetState(reply)
7436 }
7437}
7438#[cfg(feature = "xinerama")]
7439impl From<xinerama::GetScreenCountReply> for Reply {
7440 fn from(reply: xinerama::GetScreenCountReply) -> Reply {
7441 Reply::XineramaGetScreenCount(reply)
7442 }
7443}
7444#[cfg(feature = "xinerama")]
7445impl From<xinerama::GetScreenSizeReply> for Reply {
7446 fn from(reply: xinerama::GetScreenSizeReply) -> Reply {
7447 Reply::XineramaGetScreenSize(reply)
7448 }
7449}
7450#[cfg(feature = "xinerama")]
7451impl From<xinerama::IsActiveReply> for Reply {
7452 fn from(reply: xinerama::IsActiveReply) -> Reply {
7453 Reply::XineramaIsActive(reply)
7454 }
7455}
7456#[cfg(feature = "xinerama")]
7457impl From<xinerama::QueryScreensReply> for Reply {
7458 fn from(reply: xinerama::QueryScreensReply) -> Reply {
7459 Reply::XineramaQueryScreens(reply)
7460 }
7461}
7462#[cfg(feature = "xinput")]
7463impl From<xinput::GetExtensionVersionReply> for Reply {
7464 fn from(reply: xinput::GetExtensionVersionReply) -> Reply {
7465 Reply::XinputGetExtensionVersion(reply)
7466 }
7467}
7468#[cfg(feature = "xinput")]
7469impl From<xinput::ListInputDevicesReply> for Reply {
7470 fn from(reply: xinput::ListInputDevicesReply) -> Reply {
7471 Reply::XinputListInputDevices(reply)
7472 }
7473}
7474#[cfg(feature = "xinput")]
7475impl From<xinput::OpenDeviceReply> for Reply {
7476 fn from(reply: xinput::OpenDeviceReply) -> Reply {
7477 Reply::XinputOpenDevice(reply)
7478 }
7479}
7480#[cfg(feature = "xinput")]
7481impl From<xinput::SetDeviceModeReply> for Reply {
7482 fn from(reply: xinput::SetDeviceModeReply) -> Reply {
7483 Reply::XinputSetDeviceMode(reply)
7484 }
7485}
7486#[cfg(feature = "xinput")]
7487impl From<xinput::GetSelectedExtensionEventsReply> for Reply {
7488 fn from(reply: xinput::GetSelectedExtensionEventsReply) -> Reply {
7489 Reply::XinputGetSelectedExtensionEvents(reply)
7490 }
7491}
7492#[cfg(feature = "xinput")]
7493impl From<xinput::GetDeviceDontPropagateListReply> for Reply {
7494 fn from(reply: xinput::GetDeviceDontPropagateListReply) -> Reply {
7495 Reply::XinputGetDeviceDontPropagateList(reply)
7496 }
7497}
7498#[cfg(feature = "xinput")]
7499impl From<xinput::GetDeviceMotionEventsReply> for Reply {
7500 fn from(reply: xinput::GetDeviceMotionEventsReply) -> Reply {
7501 Reply::XinputGetDeviceMotionEvents(reply)
7502 }
7503}
7504#[cfg(feature = "xinput")]
7505impl From<xinput::ChangeKeyboardDeviceReply> for Reply {
7506 fn from(reply: xinput::ChangeKeyboardDeviceReply) -> Reply {
7507 Reply::XinputChangeKeyboardDevice(reply)
7508 }
7509}
7510#[cfg(feature = "xinput")]
7511impl From<xinput::ChangePointerDeviceReply> for Reply {
7512 fn from(reply: xinput::ChangePointerDeviceReply) -> Reply {
7513 Reply::XinputChangePointerDevice(reply)
7514 }
7515}
7516#[cfg(feature = "xinput")]
7517impl From<xinput::GrabDeviceReply> for Reply {
7518 fn from(reply: xinput::GrabDeviceReply) -> Reply {
7519 Reply::XinputGrabDevice(reply)
7520 }
7521}
7522#[cfg(feature = "xinput")]
7523impl From<xinput::GetDeviceFocusReply> for Reply {
7524 fn from(reply: xinput::GetDeviceFocusReply) -> Reply {
7525 Reply::XinputGetDeviceFocus(reply)
7526 }
7527}
7528#[cfg(feature = "xinput")]
7529impl From<xinput::GetFeedbackControlReply> for Reply {
7530 fn from(reply: xinput::GetFeedbackControlReply) -> Reply {
7531 Reply::XinputGetFeedbackControl(reply)
7532 }
7533}
7534#[cfg(feature = "xinput")]
7535impl From<xinput::GetDeviceKeyMappingReply> for Reply {
7536 fn from(reply: xinput::GetDeviceKeyMappingReply) -> Reply {
7537 Reply::XinputGetDeviceKeyMapping(reply)
7538 }
7539}
7540#[cfg(feature = "xinput")]
7541impl From<xinput::GetDeviceModifierMappingReply> for Reply {
7542 fn from(reply: xinput::GetDeviceModifierMappingReply) -> Reply {
7543 Reply::XinputGetDeviceModifierMapping(reply)
7544 }
7545}
7546#[cfg(feature = "xinput")]
7547impl From<xinput::SetDeviceModifierMappingReply> for Reply {
7548 fn from(reply: xinput::SetDeviceModifierMappingReply) -> Reply {
7549 Reply::XinputSetDeviceModifierMapping(reply)
7550 }
7551}
7552#[cfg(feature = "xinput")]
7553impl From<xinput::GetDeviceButtonMappingReply> for Reply {
7554 fn from(reply: xinput::GetDeviceButtonMappingReply) -> Reply {
7555 Reply::XinputGetDeviceButtonMapping(reply)
7556 }
7557}
7558#[cfg(feature = "xinput")]
7559impl From<xinput::SetDeviceButtonMappingReply> for Reply {
7560 fn from(reply: xinput::SetDeviceButtonMappingReply) -> Reply {
7561 Reply::XinputSetDeviceButtonMapping(reply)
7562 }
7563}
7564#[cfg(feature = "xinput")]
7565impl From<xinput::QueryDeviceStateReply> for Reply {
7566 fn from(reply: xinput::QueryDeviceStateReply) -> Reply {
7567 Reply::XinputQueryDeviceState(reply)
7568 }
7569}
7570#[cfg(feature = "xinput")]
7571impl From<xinput::SetDeviceValuatorsReply> for Reply {
7572 fn from(reply: xinput::SetDeviceValuatorsReply) -> Reply {
7573 Reply::XinputSetDeviceValuators(reply)
7574 }
7575}
7576#[cfg(feature = "xinput")]
7577impl From<xinput::GetDeviceControlReply> for Reply {
7578 fn from(reply: xinput::GetDeviceControlReply) -> Reply {
7579 Reply::XinputGetDeviceControl(reply)
7580 }
7581}
7582#[cfg(feature = "xinput")]
7583impl From<xinput::ChangeDeviceControlReply> for Reply {
7584 fn from(reply: xinput::ChangeDeviceControlReply) -> Reply {
7585 Reply::XinputChangeDeviceControl(reply)
7586 }
7587}
7588#[cfg(feature = "xinput")]
7589impl From<xinput::ListDevicePropertiesReply> for Reply {
7590 fn from(reply: xinput::ListDevicePropertiesReply) -> Reply {
7591 Reply::XinputListDeviceProperties(reply)
7592 }
7593}
7594#[cfg(feature = "xinput")]
7595impl From<xinput::GetDevicePropertyReply> for Reply {
7596 fn from(reply: xinput::GetDevicePropertyReply) -> Reply {
7597 Reply::XinputGetDeviceProperty(reply)
7598 }
7599}
7600#[cfg(feature = "xinput")]
7601impl From<xinput::XIQueryPointerReply> for Reply {
7602 fn from(reply: xinput::XIQueryPointerReply) -> Reply {
7603 Reply::XinputXIQueryPointer(reply)
7604 }
7605}
7606#[cfg(feature = "xinput")]
7607impl From<xinput::XIGetClientPointerReply> for Reply {
7608 fn from(reply: xinput::XIGetClientPointerReply) -> Reply {
7609 Reply::XinputXIGetClientPointer(reply)
7610 }
7611}
7612#[cfg(feature = "xinput")]
7613impl From<xinput::XIQueryVersionReply> for Reply {
7614 fn from(reply: xinput::XIQueryVersionReply) -> Reply {
7615 Reply::XinputXIQueryVersion(reply)
7616 }
7617}
7618#[cfg(feature = "xinput")]
7619impl From<xinput::XIQueryDeviceReply> for Reply {
7620 fn from(reply: xinput::XIQueryDeviceReply) -> Reply {
7621 Reply::XinputXIQueryDevice(reply)
7622 }
7623}
7624#[cfg(feature = "xinput")]
7625impl From<xinput::XIGetFocusReply> for Reply {
7626 fn from(reply: xinput::XIGetFocusReply) -> Reply {
7627 Reply::XinputXIGetFocus(reply)
7628 }
7629}
7630#[cfg(feature = "xinput")]
7631impl From<xinput::XIGrabDeviceReply> for Reply {
7632 fn from(reply: xinput::XIGrabDeviceReply) -> Reply {
7633 Reply::XinputXIGrabDevice(reply)
7634 }
7635}
7636#[cfg(feature = "xinput")]
7637impl From<xinput::XIPassiveGrabDeviceReply> for Reply {
7638 fn from(reply: xinput::XIPassiveGrabDeviceReply) -> Reply {
7639 Reply::XinputXIPassiveGrabDevice(reply)
7640 }
7641}
7642#[cfg(feature = "xinput")]
7643impl From<xinput::XIListPropertiesReply> for Reply {
7644 fn from(reply: xinput::XIListPropertiesReply) -> Reply {
7645 Reply::XinputXIListProperties(reply)
7646 }
7647}
7648#[cfg(feature = "xinput")]
7649impl From<xinput::XIGetPropertyReply> for Reply {
7650 fn from(reply: xinput::XIGetPropertyReply) -> Reply {
7651 Reply::XinputXIGetProperty(reply)
7652 }
7653}
7654#[cfg(feature = "xinput")]
7655impl From<xinput::XIGetSelectedEventsReply> for Reply {
7656 fn from(reply: xinput::XIGetSelectedEventsReply) -> Reply {
7657 Reply::XinputXIGetSelectedEvents(reply)
7658 }
7659}
7660#[cfg(feature = "xkb")]
7661impl From<xkb::UseExtensionReply> for Reply {
7662 fn from(reply: xkb::UseExtensionReply) -> Reply {
7663 Reply::XkbUseExtension(reply)
7664 }
7665}
7666#[cfg(feature = "xkb")]
7667impl From<xkb::GetStateReply> for Reply {
7668 fn from(reply: xkb::GetStateReply) -> Reply {
7669 Reply::XkbGetState(reply)
7670 }
7671}
7672#[cfg(feature = "xkb")]
7673impl From<xkb::GetControlsReply> for Reply {
7674 fn from(reply: xkb::GetControlsReply) -> Reply {
7675 Reply::XkbGetControls(reply)
7676 }
7677}
7678#[cfg(feature = "xkb")]
7679impl From<xkb::GetMapReply> for Reply {
7680 fn from(reply: xkb::GetMapReply) -> Reply {
7681 Reply::XkbGetMap(reply)
7682 }
7683}
7684#[cfg(feature = "xkb")]
7685impl From<xkb::GetCompatMapReply> for Reply {
7686 fn from(reply: xkb::GetCompatMapReply) -> Reply {
7687 Reply::XkbGetCompatMap(reply)
7688 }
7689}
7690#[cfg(feature = "xkb")]
7691impl From<xkb::GetIndicatorStateReply> for Reply {
7692 fn from(reply: xkb::GetIndicatorStateReply) -> Reply {
7693 Reply::XkbGetIndicatorState(reply)
7694 }
7695}
7696#[cfg(feature = "xkb")]
7697impl From<xkb::GetIndicatorMapReply> for Reply {
7698 fn from(reply: xkb::GetIndicatorMapReply) -> Reply {
7699 Reply::XkbGetIndicatorMap(reply)
7700 }
7701}
7702#[cfg(feature = "xkb")]
7703impl From<xkb::GetNamedIndicatorReply> for Reply {
7704 fn from(reply: xkb::GetNamedIndicatorReply) -> Reply {
7705 Reply::XkbGetNamedIndicator(reply)
7706 }
7707}
7708#[cfg(feature = "xkb")]
7709impl From<xkb::GetNamesReply> for Reply {
7710 fn from(reply: xkb::GetNamesReply) -> Reply {
7711 Reply::XkbGetNames(reply)
7712 }
7713}
7714#[cfg(feature = "xkb")]
7715impl From<xkb::PerClientFlagsReply> for Reply {
7716 fn from(reply: xkb::PerClientFlagsReply) -> Reply {
7717 Reply::XkbPerClientFlags(reply)
7718 }
7719}
7720#[cfg(feature = "xkb")]
7721impl From<xkb::ListComponentsReply> for Reply {
7722 fn from(reply: xkb::ListComponentsReply) -> Reply {
7723 Reply::XkbListComponents(reply)
7724 }
7725}
7726#[cfg(feature = "xkb")]
7727impl From<xkb::GetKbdByNameReply> for Reply {
7728 fn from(reply: xkb::GetKbdByNameReply) -> Reply {
7729 Reply::XkbGetKbdByName(reply)
7730 }
7731}
7732#[cfg(feature = "xkb")]
7733impl From<xkb::GetDeviceInfoReply> for Reply {
7734 fn from(reply: xkb::GetDeviceInfoReply) -> Reply {
7735 Reply::XkbGetDeviceInfo(reply)
7736 }
7737}
7738#[cfg(feature = "xkb")]
7739impl From<xkb::SetDebuggingFlagsReply> for Reply {
7740 fn from(reply: xkb::SetDebuggingFlagsReply) -> Reply {
7741 Reply::XkbSetDebuggingFlags(reply)
7742 }
7743}
7744#[cfg(feature = "xprint")]
7745impl From<xprint::PrintQueryVersionReply> for Reply {
7746 fn from(reply: xprint::PrintQueryVersionReply) -> Reply {
7747 Reply::XprintPrintQueryVersion(reply)
7748 }
7749}
7750#[cfg(feature = "xprint")]
7751impl From<xprint::PrintGetPrinterListReply> for Reply {
7752 fn from(reply: xprint::PrintGetPrinterListReply) -> Reply {
7753 Reply::XprintPrintGetPrinterList(reply)
7754 }
7755}
7756#[cfg(feature = "xprint")]
7757impl From<xprint::PrintGetContextReply> for Reply {
7758 fn from(reply: xprint::PrintGetContextReply) -> Reply {
7759 Reply::XprintPrintGetContext(reply)
7760 }
7761}
7762#[cfg(feature = "xprint")]
7763impl From<xprint::PrintGetScreenOfContextReply> for Reply {
7764 fn from(reply: xprint::PrintGetScreenOfContextReply) -> Reply {
7765 Reply::XprintPrintGetScreenOfContext(reply)
7766 }
7767}
7768#[cfg(feature = "xprint")]
7769impl From<xprint::PrintGetDocumentDataReply> for Reply {
7770 fn from(reply: xprint::PrintGetDocumentDataReply) -> Reply {
7771 Reply::XprintPrintGetDocumentData(reply)
7772 }
7773}
7774#[cfg(feature = "xprint")]
7775impl From<xprint::PrintInputSelectedReply> for Reply {
7776 fn from(reply: xprint::PrintInputSelectedReply) -> Reply {
7777 Reply::XprintPrintInputSelected(reply)
7778 }
7779}
7780#[cfg(feature = "xprint")]
7781impl From<xprint::PrintGetAttributesReply> for Reply {
7782 fn from(reply: xprint::PrintGetAttributesReply) -> Reply {
7783 Reply::XprintPrintGetAttributes(reply)
7784 }
7785}
7786#[cfg(feature = "xprint")]
7787impl From<xprint::PrintGetOneAttributesReply> for Reply {
7788 fn from(reply: xprint::PrintGetOneAttributesReply) -> Reply {
7789 Reply::XprintPrintGetOneAttributes(reply)
7790 }
7791}
7792#[cfg(feature = "xprint")]
7793impl From<xprint::PrintGetPageDimensionsReply> for Reply {
7794 fn from(reply: xprint::PrintGetPageDimensionsReply) -> Reply {
7795 Reply::XprintPrintGetPageDimensions(reply)
7796 }
7797}
7798#[cfg(feature = "xprint")]
7799impl From<xprint::PrintQueryScreensReply> for Reply {
7800 fn from(reply: xprint::PrintQueryScreensReply) -> Reply {
7801 Reply::XprintPrintQueryScreens(reply)
7802 }
7803}
7804#[cfg(feature = "xprint")]
7805impl From<xprint::PrintSetImageResolutionReply> for Reply {
7806 fn from(reply: xprint::PrintSetImageResolutionReply) -> Reply {
7807 Reply::XprintPrintSetImageResolution(reply)
7808 }
7809}
7810#[cfg(feature = "xprint")]
7811impl From<xprint::PrintGetImageResolutionReply> for Reply {
7812 fn from(reply: xprint::PrintGetImageResolutionReply) -> Reply {
7813 Reply::XprintPrintGetImageResolution(reply)
7814 }
7815}
7816#[cfg(feature = "xselinux")]
7817impl From<xselinux::QueryVersionReply> for Reply {
7818 fn from(reply: xselinux::QueryVersionReply) -> Reply {
7819 Reply::XselinuxQueryVersion(reply)
7820 }
7821}
7822#[cfg(feature = "xselinux")]
7823impl From<xselinux::GetDeviceCreateContextReply> for Reply {
7824 fn from(reply: xselinux::GetDeviceCreateContextReply) -> Reply {
7825 Reply::XselinuxGetDeviceCreateContext(reply)
7826 }
7827}
7828#[cfg(feature = "xselinux")]
7829impl From<xselinux::GetDeviceContextReply> for Reply {
7830 fn from(reply: xselinux::GetDeviceContextReply) -> Reply {
7831 Reply::XselinuxGetDeviceContext(reply)
7832 }
7833}
7834#[cfg(feature = "xselinux")]
7835impl From<xselinux::GetWindowCreateContextReply> for Reply {
7836 fn from(reply: xselinux::GetWindowCreateContextReply) -> Reply {
7837 Reply::XselinuxGetWindowCreateContext(reply)
7838 }
7839}
7840#[cfg(feature = "xselinux")]
7841impl From<xselinux::GetWindowContextReply> for Reply {
7842 fn from(reply: xselinux::GetWindowContextReply) -> Reply {
7843 Reply::XselinuxGetWindowContext(reply)
7844 }
7845}
7846#[cfg(feature = "xselinux")]
7847impl From<xselinux::GetPropertyCreateContextReply> for Reply {
7848 fn from(reply: xselinux::GetPropertyCreateContextReply) -> Reply {
7849 Reply::XselinuxGetPropertyCreateContext(reply)
7850 }
7851}
7852#[cfg(feature = "xselinux")]
7853impl From<xselinux::GetPropertyUseContextReply> for Reply {
7854 fn from(reply: xselinux::GetPropertyUseContextReply) -> Reply {
7855 Reply::XselinuxGetPropertyUseContext(reply)
7856 }
7857}
7858#[cfg(feature = "xselinux")]
7859impl From<xselinux::GetPropertyContextReply> for Reply {
7860 fn from(reply: xselinux::GetPropertyContextReply) -> Reply {
7861 Reply::XselinuxGetPropertyContext(reply)
7862 }
7863}
7864#[cfg(feature = "xselinux")]
7865impl From<xselinux::GetPropertyDataContextReply> for Reply {
7866 fn from(reply: xselinux::GetPropertyDataContextReply) -> Reply {
7867 Reply::XselinuxGetPropertyDataContext(reply)
7868 }
7869}
7870#[cfg(feature = "xselinux")]
7871impl From<xselinux::ListPropertiesReply> for Reply {
7872 fn from(reply: xselinux::ListPropertiesReply) -> Reply {
7873 Reply::XselinuxListProperties(reply)
7874 }
7875}
7876#[cfg(feature = "xselinux")]
7877impl From<xselinux::GetSelectionCreateContextReply> for Reply {
7878 fn from(reply: xselinux::GetSelectionCreateContextReply) -> Reply {
7879 Reply::XselinuxGetSelectionCreateContext(reply)
7880 }
7881}
7882#[cfg(feature = "xselinux")]
7883impl From<xselinux::GetSelectionUseContextReply> for Reply {
7884 fn from(reply: xselinux::GetSelectionUseContextReply) -> Reply {
7885 Reply::XselinuxGetSelectionUseContext(reply)
7886 }
7887}
7888#[cfg(feature = "xselinux")]
7889impl From<xselinux::GetSelectionContextReply> for Reply {
7890 fn from(reply: xselinux::GetSelectionContextReply) -> Reply {
7891 Reply::XselinuxGetSelectionContext(reply)
7892 }
7893}
7894#[cfg(feature = "xselinux")]
7895impl From<xselinux::GetSelectionDataContextReply> for Reply {
7896 fn from(reply: xselinux::GetSelectionDataContextReply) -> Reply {
7897 Reply::XselinuxGetSelectionDataContext(reply)
7898 }
7899}
7900#[cfg(feature = "xselinux")]
7901impl From<xselinux::ListSelectionsReply> for Reply {
7902 fn from(reply: xselinux::ListSelectionsReply) -> Reply {
7903 Reply::XselinuxListSelections(reply)
7904 }
7905}
7906#[cfg(feature = "xselinux")]
7907impl From<xselinux::GetClientContextReply> for Reply {
7908 fn from(reply: xselinux::GetClientContextReply) -> Reply {
7909 Reply::XselinuxGetClientContext(reply)
7910 }
7911}
7912#[cfg(feature = "xtest")]
7913impl From<xtest::GetVersionReply> for Reply {
7914 fn from(reply: xtest::GetVersionReply) -> Reply {
7915 Reply::XtestGetVersion(reply)
7916 }
7917}
7918#[cfg(feature = "xtest")]
7919impl From<xtest::CompareCursorReply> for Reply {
7920 fn from(reply: xtest::CompareCursorReply) -> Reply {
7921 Reply::XtestCompareCursor(reply)
7922 }
7923}
7924#[cfg(feature = "xv")]
7925impl From<xv::QueryExtensionReply> for Reply {
7926 fn from(reply: xv::QueryExtensionReply) -> Reply {
7927 Reply::XvQueryExtension(reply)
7928 }
7929}
7930#[cfg(feature = "xv")]
7931impl From<xv::QueryAdaptorsReply> for Reply {
7932 fn from(reply: xv::QueryAdaptorsReply) -> Reply {
7933 Reply::XvQueryAdaptors(reply)
7934 }
7935}
7936#[cfg(feature = "xv")]
7937impl From<xv::QueryEncodingsReply> for Reply {
7938 fn from(reply: xv::QueryEncodingsReply) -> Reply {
7939 Reply::XvQueryEncodings(reply)
7940 }
7941}
7942#[cfg(feature = "xv")]
7943impl From<xv::GrabPortReply> for Reply {
7944 fn from(reply: xv::GrabPortReply) -> Reply {
7945 Reply::XvGrabPort(reply)
7946 }
7947}
7948#[cfg(feature = "xv")]
7949impl From<xv::QueryBestSizeReply> for Reply {
7950 fn from(reply: xv::QueryBestSizeReply) -> Reply {
7951 Reply::XvQueryBestSize(reply)
7952 }
7953}
7954#[cfg(feature = "xv")]
7955impl From<xv::GetPortAttributeReply> for Reply {
7956 fn from(reply: xv::GetPortAttributeReply) -> Reply {
7957 Reply::XvGetPortAttribute(reply)
7958 }
7959}
7960#[cfg(feature = "xv")]
7961impl From<xv::QueryPortAttributesReply> for Reply {
7962 fn from(reply: xv::QueryPortAttributesReply) -> Reply {
7963 Reply::XvQueryPortAttributes(reply)
7964 }
7965}
7966#[cfg(feature = "xv")]
7967impl From<xv::ListImageFormatsReply> for Reply {
7968 fn from(reply: xv::ListImageFormatsReply) -> Reply {
7969 Reply::XvListImageFormats(reply)
7970 }
7971}
7972#[cfg(feature = "xv")]
7973impl From<xv::QueryImageAttributesReply> for Reply {
7974 fn from(reply: xv::QueryImageAttributesReply) -> Reply {
7975 Reply::XvQueryImageAttributes(reply)
7976 }
7977}
7978#[cfg(feature = "xvmc")]
7979impl From<xvmc::QueryVersionReply> for Reply {
7980 fn from(reply: xvmc::QueryVersionReply) -> Reply {
7981 Reply::XvmcQueryVersion(reply)
7982 }
7983}
7984#[cfg(feature = "xvmc")]
7985impl From<xvmc::ListSurfaceTypesReply> for Reply {
7986 fn from(reply: xvmc::ListSurfaceTypesReply) -> Reply {
7987 Reply::XvmcListSurfaceTypes(reply)
7988 }
7989}
7990#[cfg(feature = "xvmc")]
7991impl From<xvmc::CreateContextReply> for Reply {
7992 fn from(reply: xvmc::CreateContextReply) -> Reply {
7993 Reply::XvmcCreateContext(reply)
7994 }
7995}
7996#[cfg(feature = "xvmc")]
7997impl From<xvmc::CreateSurfaceReply> for Reply {
7998 fn from(reply: xvmc::CreateSurfaceReply) -> Reply {
7999 Reply::XvmcCreateSurface(reply)
8000 }
8001}
8002#[cfg(feature = "xvmc")]
8003impl From<xvmc::CreateSubpictureReply> for Reply {
8004 fn from(reply: xvmc::CreateSubpictureReply) -> Reply {
8005 Reply::XvmcCreateSubpicture(reply)
8006 }
8007}
8008#[cfg(feature = "xvmc")]
8009impl From<xvmc::ListSubpictureTypesReply> for Reply {
8010 fn from(reply: xvmc::ListSubpictureTypesReply) -> Reply {
8011 Reply::XvmcListSubpictureTypes(reply)
8012 }
8013}
8014
8015/// Get the name of a request from its extension name and opcodes.
8016///
8017/// First result is the name of the extension, second the name of the request.
8018pub(crate) fn request_name(ext_info_provider: &dyn ExtInfoProvider, major_opcode: u8, minor_opcode: u16) -> (Option<String>, Option<&'static str>) {
8019 // Don't ask me why X11 errors contain u16 for minor opcode, but requests are sent with u8.
8020 // We have to work around that incompatibility here.
8021 // From the X11 protocol reference manual:
8022 // Major opcodes 128 through 255 are reserved for extensions.
8023 let (ext: Option<&str>, info: RequestInfo) = if major_opcode < 128 || minor_opcode <= u16::from(u8::MAX) {
8024 get_request_name_internal(ext_info_provider, major_opcode, minor_opcode as u8)
8025 } else {
8026 let ext: Option<(&str, ExtensionInformation)> = ext_info_provider.get_from_major_opcode(major_opcode);
8027 return (ext.map(|(ext: &str, _)| String::from(ext)), None);
8028 };
8029 let ext: Option = ext.map(String::from);
8030 let info: Option<&str> = match info {
8031 RequestInfo::Xproto(request: &str) => request.into(),
8032 RequestInfo::KnownExt(ext_and_request: &str) => ext_and_request.split_once(delimiter:"::").map(|r: (&str, &str)| r.1),
8033 RequestInfo::UnknownRequest(_, _) => None,
8034 RequestInfo::UnknownExtension(_, _) => None,
8035 };
8036 (ext, info)
8037}
8038
8039/// Enumeration of all possible X11 error kinds.
8040#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
8041#[non_exhaustive]
8042pub enum ErrorKind {
8043 Unknown(u8),
8044 Access,
8045 Alloc,
8046 Atom,
8047 Colormap,
8048 Cursor,
8049 Drawable,
8050 Font,
8051 GContext,
8052 IDChoice,
8053 Implementation,
8054 Length,
8055 Match,
8056 Name,
8057 Pixmap,
8058 Request,
8059 Value,
8060 Window,
8061 #[cfg(feature = "damage")]
8062 DamageBadDamage,
8063 #[cfg(feature = "dbe")]
8064 DbeBadBuffer,
8065 #[cfg(feature = "glx")]
8066 GlxBadContext,
8067 #[cfg(feature = "glx")]
8068 GlxBadContextState,
8069 #[cfg(feature = "glx")]
8070 GlxBadContextTag,
8071 #[cfg(feature = "glx")]
8072 GlxBadCurrentDrawable,
8073 #[cfg(feature = "glx")]
8074 GlxBadCurrentWindow,
8075 #[cfg(feature = "glx")]
8076 GlxBadDrawable,
8077 #[cfg(feature = "glx")]
8078 GlxBadFBConfig,
8079 #[cfg(feature = "glx")]
8080 GlxBadLargeRequest,
8081 #[cfg(feature = "glx")]
8082 GlxBadPbuffer,
8083 #[cfg(feature = "glx")]
8084 GlxBadPixmap,
8085 #[cfg(feature = "glx")]
8086 GlxBadRenderRequest,
8087 #[cfg(feature = "glx")]
8088 GlxBadWindow,
8089 #[cfg(feature = "glx")]
8090 GlxGLXBadProfileARB,
8091 #[cfg(feature = "glx")]
8092 GlxUnsupportedPrivateRequest,
8093 #[cfg(feature = "randr")]
8094 RandrBadCrtc,
8095 #[cfg(feature = "randr")]
8096 RandrBadMode,
8097 #[cfg(feature = "randr")]
8098 RandrBadOutput,
8099 #[cfg(feature = "randr")]
8100 RandrBadProvider,
8101 #[cfg(feature = "record")]
8102 RecordBadContext,
8103 #[cfg(feature = "render")]
8104 RenderGlyph,
8105 #[cfg(feature = "render")]
8106 RenderGlyphSet,
8107 #[cfg(feature = "render")]
8108 RenderPictFormat,
8109 #[cfg(feature = "render")]
8110 RenderPictOp,
8111 #[cfg(feature = "render")]
8112 RenderPicture,
8113 #[cfg(feature = "shm")]
8114 ShmBadSeg,
8115 #[cfg(feature = "sync")]
8116 SyncAlarm,
8117 #[cfg(feature = "sync")]
8118 SyncCounter,
8119 #[cfg(feature = "xf86vidmode")]
8120 Xf86vidmodeBadClock,
8121 #[cfg(feature = "xf86vidmode")]
8122 Xf86vidmodeBadHTimings,
8123 #[cfg(feature = "xf86vidmode")]
8124 Xf86vidmodeBadVTimings,
8125 #[cfg(feature = "xf86vidmode")]
8126 Xf86vidmodeClientNotLocal,
8127 #[cfg(feature = "xf86vidmode")]
8128 Xf86vidmodeExtensionDisabled,
8129 #[cfg(feature = "xf86vidmode")]
8130 Xf86vidmodeModeUnsuitable,
8131 #[cfg(feature = "xf86vidmode")]
8132 Xf86vidmodeZoomLocked,
8133 #[cfg(feature = "xfixes")]
8134 XfixesBadRegion,
8135 #[cfg(feature = "xinput")]
8136 XinputClass,
8137 #[cfg(feature = "xinput")]
8138 XinputDevice,
8139 #[cfg(feature = "xinput")]
8140 XinputDeviceBusy,
8141 #[cfg(feature = "xinput")]
8142 XinputEvent,
8143 #[cfg(feature = "xinput")]
8144 XinputMode,
8145 #[cfg(feature = "xkb")]
8146 XkbKeyboard,
8147 #[cfg(feature = "xprint")]
8148 XprintBadContext,
8149 #[cfg(feature = "xprint")]
8150 XprintBadSequence,
8151 #[cfg(feature = "xv")]
8152 XvBadControl,
8153 #[cfg(feature = "xv")]
8154 XvBadEncoding,
8155 #[cfg(feature = "xv")]
8156 XvBadPort,
8157}
8158
8159impl ErrorKind {
8160 #[allow(clippy::match_single_binding)]
8161 pub fn from_wire_error_code(
8162 error_code: u8,
8163 ext_info_provider: &dyn ExtInfoProvider,
8164 ) -> Self {
8165 // Check if this is a core protocol error
8166 match error_code {
8167 xproto::ACCESS_ERROR => return Self::Access,
8168 xproto::ALLOC_ERROR => return Self::Alloc,
8169 xproto::ATOM_ERROR => return Self::Atom,
8170 xproto::COLORMAP_ERROR => return Self::Colormap,
8171 xproto::CURSOR_ERROR => return Self::Cursor,
8172 xproto::DRAWABLE_ERROR => return Self::Drawable,
8173 xproto::FONT_ERROR => return Self::Font,
8174 xproto::G_CONTEXT_ERROR => return Self::GContext,
8175 xproto::ID_CHOICE_ERROR => return Self::IDChoice,
8176 xproto::IMPLEMENTATION_ERROR => return Self::Implementation,
8177 xproto::LENGTH_ERROR => return Self::Length,
8178 xproto::MATCH_ERROR => return Self::Match,
8179 xproto::NAME_ERROR => return Self::Name,
8180 xproto::PIXMAP_ERROR => return Self::Pixmap,
8181 xproto::REQUEST_ERROR => return Self::Request,
8182 xproto::VALUE_ERROR => return Self::Value,
8183 xproto::WINDOW_ERROR => return Self::Window,
8184 _ => {}
8185 }
8186
8187 // Find the extension that this error could belong to
8188 let ext_info = ext_info_provider.get_from_error_code(error_code);
8189 match ext_info {
8190 #[cfg(feature = "damage")]
8191 Some((damage::X11_EXTENSION_NAME, ext_info)) => {
8192 match error_code - ext_info.first_error {
8193 damage::BAD_DAMAGE_ERROR => Self::DamageBadDamage,
8194 _ => Self::Unknown(error_code),
8195 }
8196 }
8197 #[cfg(feature = "dbe")]
8198 Some((dbe::X11_EXTENSION_NAME, ext_info)) => {
8199 match error_code - ext_info.first_error {
8200 dbe::BAD_BUFFER_ERROR => Self::DbeBadBuffer,
8201 _ => Self::Unknown(error_code),
8202 }
8203 }
8204 #[cfg(feature = "glx")]
8205 Some((glx::X11_EXTENSION_NAME, ext_info)) => {
8206 match error_code - ext_info.first_error {
8207 glx::BAD_CONTEXT_ERROR => Self::GlxBadContext,
8208 glx::BAD_CONTEXT_STATE_ERROR => Self::GlxBadContextState,
8209 glx::BAD_CONTEXT_TAG_ERROR => Self::GlxBadContextTag,
8210 glx::BAD_CURRENT_DRAWABLE_ERROR => Self::GlxBadCurrentDrawable,
8211 glx::BAD_CURRENT_WINDOW_ERROR => Self::GlxBadCurrentWindow,
8212 glx::BAD_DRAWABLE_ERROR => Self::GlxBadDrawable,
8213 glx::BAD_FB_CONFIG_ERROR => Self::GlxBadFBConfig,
8214 glx::BAD_LARGE_REQUEST_ERROR => Self::GlxBadLargeRequest,
8215 glx::BAD_PBUFFER_ERROR => Self::GlxBadPbuffer,
8216 glx::BAD_PIXMAP_ERROR => Self::GlxBadPixmap,
8217 glx::BAD_RENDER_REQUEST_ERROR => Self::GlxBadRenderRequest,
8218 glx::BAD_WINDOW_ERROR => Self::GlxBadWindow,
8219 glx::GLX_BAD_PROFILE_ARB_ERROR => Self::GlxGLXBadProfileARB,
8220 glx::UNSUPPORTED_PRIVATE_REQUEST_ERROR => Self::GlxUnsupportedPrivateRequest,
8221 _ => Self::Unknown(error_code),
8222 }
8223 }
8224 #[cfg(feature = "randr")]
8225 Some((randr::X11_EXTENSION_NAME, ext_info)) => {
8226 match error_code - ext_info.first_error {
8227 randr::BAD_CRTC_ERROR => Self::RandrBadCrtc,
8228 randr::BAD_MODE_ERROR => Self::RandrBadMode,
8229 randr::BAD_OUTPUT_ERROR => Self::RandrBadOutput,
8230 randr::BAD_PROVIDER_ERROR => Self::RandrBadProvider,
8231 _ => Self::Unknown(error_code),
8232 }
8233 }
8234 #[cfg(feature = "record")]
8235 Some((record::X11_EXTENSION_NAME, ext_info)) => {
8236 match error_code - ext_info.first_error {
8237 record::BAD_CONTEXT_ERROR => Self::RecordBadContext,
8238 _ => Self::Unknown(error_code),
8239 }
8240 }
8241 #[cfg(feature = "render")]
8242 Some((render::X11_EXTENSION_NAME, ext_info)) => {
8243 match error_code - ext_info.first_error {
8244 render::GLYPH_ERROR => Self::RenderGlyph,
8245 render::GLYPH_SET_ERROR => Self::RenderGlyphSet,
8246 render::PICT_FORMAT_ERROR => Self::RenderPictFormat,
8247 render::PICT_OP_ERROR => Self::RenderPictOp,
8248 render::PICTURE_ERROR => Self::RenderPicture,
8249 _ => Self::Unknown(error_code),
8250 }
8251 }
8252 #[cfg(feature = "shm")]
8253 Some((shm::X11_EXTENSION_NAME, ext_info)) => {
8254 match error_code - ext_info.first_error {
8255 shm::BAD_SEG_ERROR => Self::ShmBadSeg,
8256 _ => Self::Unknown(error_code),
8257 }
8258 }
8259 #[cfg(feature = "sync")]
8260 Some((sync::X11_EXTENSION_NAME, ext_info)) => {
8261 match error_code - ext_info.first_error {
8262 sync::ALARM_ERROR => Self::SyncAlarm,
8263 sync::COUNTER_ERROR => Self::SyncCounter,
8264 _ => Self::Unknown(error_code),
8265 }
8266 }
8267 #[cfg(feature = "xf86vidmode")]
8268 Some((xf86vidmode::X11_EXTENSION_NAME, ext_info)) => {
8269 match error_code - ext_info.first_error {
8270 xf86vidmode::BAD_CLOCK_ERROR => Self::Xf86vidmodeBadClock,
8271 xf86vidmode::BAD_H_TIMINGS_ERROR => Self::Xf86vidmodeBadHTimings,
8272 xf86vidmode::BAD_V_TIMINGS_ERROR => Self::Xf86vidmodeBadVTimings,
8273 xf86vidmode::CLIENT_NOT_LOCAL_ERROR => Self::Xf86vidmodeClientNotLocal,
8274 xf86vidmode::EXTENSION_DISABLED_ERROR => Self::Xf86vidmodeExtensionDisabled,
8275 xf86vidmode::MODE_UNSUITABLE_ERROR => Self::Xf86vidmodeModeUnsuitable,
8276 xf86vidmode::ZOOM_LOCKED_ERROR => Self::Xf86vidmodeZoomLocked,
8277 _ => Self::Unknown(error_code),
8278 }
8279 }
8280 #[cfg(feature = "xfixes")]
8281 Some((xfixes::X11_EXTENSION_NAME, ext_info)) => {
8282 match error_code - ext_info.first_error {
8283 xfixes::BAD_REGION_ERROR => Self::XfixesBadRegion,
8284 _ => Self::Unknown(error_code),
8285 }
8286 }
8287 #[cfg(feature = "xinput")]
8288 Some((xinput::X11_EXTENSION_NAME, ext_info)) => {
8289 match error_code - ext_info.first_error {
8290 xinput::CLASS_ERROR => Self::XinputClass,
8291 xinput::DEVICE_ERROR => Self::XinputDevice,
8292 xinput::DEVICE_BUSY_ERROR => Self::XinputDeviceBusy,
8293 xinput::EVENT_ERROR => Self::XinputEvent,
8294 xinput::MODE_ERROR => Self::XinputMode,
8295 _ => Self::Unknown(error_code),
8296 }
8297 }
8298 #[cfg(feature = "xkb")]
8299 Some((xkb::X11_EXTENSION_NAME, ext_info)) => {
8300 match error_code - ext_info.first_error {
8301 xkb::KEYBOARD_ERROR => Self::XkbKeyboard,
8302 _ => Self::Unknown(error_code),
8303 }
8304 }
8305 #[cfg(feature = "xprint")]
8306 Some((xprint::X11_EXTENSION_NAME, ext_info)) => {
8307 match error_code - ext_info.first_error {
8308 xprint::BAD_CONTEXT_ERROR => Self::XprintBadContext,
8309 xprint::BAD_SEQUENCE_ERROR => Self::XprintBadSequence,
8310 _ => Self::Unknown(error_code),
8311 }
8312 }
8313 #[cfg(feature = "xv")]
8314 Some((xv::X11_EXTENSION_NAME, ext_info)) => {
8315 match error_code - ext_info.first_error {
8316 xv::BAD_CONTROL_ERROR => Self::XvBadControl,
8317 xv::BAD_ENCODING_ERROR => Self::XvBadEncoding,
8318 xv::BAD_PORT_ERROR => Self::XvBadPort,
8319 _ => Self::Unknown(error_code),
8320 }
8321 }
8322 _ => Self::Unknown(error_code),
8323 }
8324 }
8325}
8326
8327
8328/// Enumeration of all possible X11 events.
8329#[derive(Debug, Clone)]
8330#[non_exhaustive]
8331pub enum Event {
8332 Unknown(Vec<u8>),
8333 Error(X11Error),
8334 ButtonPress(xproto::ButtonPressEvent),
8335 ButtonRelease(xproto::ButtonReleaseEvent),
8336 CirculateNotify(xproto::CirculateNotifyEvent),
8337 CirculateRequest(xproto::CirculateRequestEvent),
8338 ClientMessage(xproto::ClientMessageEvent),
8339 ColormapNotify(xproto::ColormapNotifyEvent),
8340 ConfigureNotify(xproto::ConfigureNotifyEvent),
8341 ConfigureRequest(xproto::ConfigureRequestEvent),
8342 CreateNotify(xproto::CreateNotifyEvent),
8343 DestroyNotify(xproto::DestroyNotifyEvent),
8344 EnterNotify(xproto::EnterNotifyEvent),
8345 Expose(xproto::ExposeEvent),
8346 FocusIn(xproto::FocusInEvent),
8347 FocusOut(xproto::FocusOutEvent),
8348 GeGeneric(xproto::GeGenericEvent),
8349 GraphicsExposure(xproto::GraphicsExposureEvent),
8350 GravityNotify(xproto::GravityNotifyEvent),
8351 KeyPress(xproto::KeyPressEvent),
8352 KeyRelease(xproto::KeyReleaseEvent),
8353 KeymapNotify(xproto::KeymapNotifyEvent),
8354 LeaveNotify(xproto::LeaveNotifyEvent),
8355 MapNotify(xproto::MapNotifyEvent),
8356 MapRequest(xproto::MapRequestEvent),
8357 MappingNotify(xproto::MappingNotifyEvent),
8358 MotionNotify(xproto::MotionNotifyEvent),
8359 NoExposure(xproto::NoExposureEvent),
8360 PropertyNotify(xproto::PropertyNotifyEvent),
8361 ReparentNotify(xproto::ReparentNotifyEvent),
8362 ResizeRequest(xproto::ResizeRequestEvent),
8363 SelectionClear(xproto::SelectionClearEvent),
8364 SelectionNotify(xproto::SelectionNotifyEvent),
8365 SelectionRequest(xproto::SelectionRequestEvent),
8366 UnmapNotify(xproto::UnmapNotifyEvent),
8367 VisibilityNotify(xproto::VisibilityNotifyEvent),
8368 #[cfg(feature = "damage")]
8369 DamageNotify(damage::NotifyEvent),
8370 #[cfg(feature = "dri2")]
8371 Dri2BufferSwapComplete(dri2::BufferSwapCompleteEvent),
8372 #[cfg(feature = "dri2")]
8373 Dri2InvalidateBuffers(dri2::InvalidateBuffersEvent),
8374 #[cfg(feature = "glx")]
8375 GlxBufferSwapComplete(glx::BufferSwapCompleteEvent),
8376 #[cfg(feature = "glx")]
8377 GlxPbufferClobber(glx::PbufferClobberEvent),
8378 #[cfg(feature = "present")]
8379 PresentCompleteNotify(present::CompleteNotifyEvent),
8380 #[cfg(feature = "present")]
8381 PresentConfigureNotify(present::ConfigureNotifyEvent),
8382 #[cfg(feature = "present")]
8383 PresentGeneric(present::GenericEvent),
8384 #[cfg(feature = "present")]
8385 PresentIdleNotify(present::IdleNotifyEvent),
8386 #[cfg(feature = "present")]
8387 PresentRedirectNotify(present::RedirectNotifyEvent),
8388 #[cfg(feature = "randr")]
8389 RandrNotify(randr::NotifyEvent),
8390 #[cfg(feature = "randr")]
8391 RandrScreenChangeNotify(randr::ScreenChangeNotifyEvent),
8392 #[cfg(feature = "screensaver")]
8393 ScreensaverNotify(screensaver::NotifyEvent),
8394 #[cfg(feature = "shape")]
8395 ShapeNotify(shape::NotifyEvent),
8396 #[cfg(feature = "shm")]
8397 ShmCompletion(shm::CompletionEvent),
8398 #[cfg(feature = "sync")]
8399 SyncAlarmNotify(sync::AlarmNotifyEvent),
8400 #[cfg(feature = "sync")]
8401 SyncCounterNotify(sync::CounterNotifyEvent),
8402 #[cfg(feature = "xfixes")]
8403 XfixesCursorNotify(xfixes::CursorNotifyEvent),
8404 #[cfg(feature = "xfixes")]
8405 XfixesSelectionNotify(xfixes::SelectionNotifyEvent),
8406 #[cfg(feature = "xinput")]
8407 XinputBarrierHit(xinput::BarrierHitEvent),
8408 #[cfg(feature = "xinput")]
8409 XinputBarrierLeave(xinput::BarrierLeaveEvent),
8410 #[cfg(feature = "xinput")]
8411 XinputButtonPress(xinput::ButtonPressEvent),
8412 #[cfg(feature = "xinput")]
8413 XinputButtonRelease(xinput::ButtonReleaseEvent),
8414 #[cfg(feature = "xinput")]
8415 XinputChangeDeviceNotify(xinput::ChangeDeviceNotifyEvent),
8416 #[cfg(feature = "xinput")]
8417 XinputDeviceButtonPress(xinput::DeviceButtonPressEvent),
8418 #[cfg(feature = "xinput")]
8419 XinputDeviceButtonRelease(xinput::DeviceButtonReleaseEvent),
8420 #[cfg(feature = "xinput")]
8421 XinputDeviceButtonStateNotify(xinput::DeviceButtonStateNotifyEvent),
8422 #[cfg(feature = "xinput")]
8423 XinputDeviceChanged(xinput::DeviceChangedEvent),
8424 #[cfg(feature = "xinput")]
8425 XinputDeviceFocusIn(xinput::DeviceFocusInEvent),
8426 #[cfg(feature = "xinput")]
8427 XinputDeviceFocusOut(xinput::DeviceFocusOutEvent),
8428 #[cfg(feature = "xinput")]
8429 XinputDeviceKeyPress(xinput::DeviceKeyPressEvent),
8430 #[cfg(feature = "xinput")]
8431 XinputDeviceKeyRelease(xinput::DeviceKeyReleaseEvent),
8432 #[cfg(feature = "xinput")]
8433 XinputDeviceKeyStateNotify(xinput::DeviceKeyStateNotifyEvent),
8434 #[cfg(feature = "xinput")]
8435 XinputDeviceMappingNotify(xinput::DeviceMappingNotifyEvent),
8436 #[cfg(feature = "xinput")]
8437 XinputDeviceMotionNotify(xinput::DeviceMotionNotifyEvent),
8438 #[cfg(feature = "xinput")]
8439 XinputDevicePresenceNotify(xinput::DevicePresenceNotifyEvent),
8440 #[cfg(feature = "xinput")]
8441 XinputDevicePropertyNotify(xinput::DevicePropertyNotifyEvent),
8442 #[cfg(feature = "xinput")]
8443 XinputDeviceStateNotify(xinput::DeviceStateNotifyEvent),
8444 #[cfg(feature = "xinput")]
8445 XinputDeviceValuator(xinput::DeviceValuatorEvent),
8446 #[cfg(feature = "xinput")]
8447 XinputEnter(xinput::EnterEvent),
8448 #[cfg(feature = "xinput")]
8449 XinputFocusIn(xinput::FocusInEvent),
8450 #[cfg(feature = "xinput")]
8451 XinputFocusOut(xinput::FocusOutEvent),
8452 #[cfg(feature = "xinput")]
8453 XinputGesturePinchBegin(xinput::GesturePinchBeginEvent),
8454 #[cfg(feature = "xinput")]
8455 XinputGesturePinchEnd(xinput::GesturePinchEndEvent),
8456 #[cfg(feature = "xinput")]
8457 XinputGesturePinchUpdate(xinput::GesturePinchUpdateEvent),
8458 #[cfg(feature = "xinput")]
8459 XinputGestureSwipeBegin(xinput::GestureSwipeBeginEvent),
8460 #[cfg(feature = "xinput")]
8461 XinputGestureSwipeEnd(xinput::GestureSwipeEndEvent),
8462 #[cfg(feature = "xinput")]
8463 XinputGestureSwipeUpdate(xinput::GestureSwipeUpdateEvent),
8464 #[cfg(feature = "xinput")]
8465 XinputHierarchy(xinput::HierarchyEvent),
8466 #[cfg(feature = "xinput")]
8467 XinputKeyPress(xinput::KeyPressEvent),
8468 #[cfg(feature = "xinput")]
8469 XinputKeyRelease(xinput::KeyReleaseEvent),
8470 #[cfg(feature = "xinput")]
8471 XinputLeave(xinput::LeaveEvent),
8472 #[cfg(feature = "xinput")]
8473 XinputMotion(xinput::MotionEvent),
8474 #[cfg(feature = "xinput")]
8475 XinputProperty(xinput::PropertyEvent),
8476 #[cfg(feature = "xinput")]
8477 XinputProximityIn(xinput::ProximityInEvent),
8478 #[cfg(feature = "xinput")]
8479 XinputProximityOut(xinput::ProximityOutEvent),
8480 #[cfg(feature = "xinput")]
8481 XinputRawButtonPress(xinput::RawButtonPressEvent),
8482 #[cfg(feature = "xinput")]
8483 XinputRawButtonRelease(xinput::RawButtonReleaseEvent),
8484 #[cfg(feature = "xinput")]
8485 XinputRawKeyPress(xinput::RawKeyPressEvent),
8486 #[cfg(feature = "xinput")]
8487 XinputRawKeyRelease(xinput::RawKeyReleaseEvent),
8488 #[cfg(feature = "xinput")]
8489 XinputRawMotion(xinput::RawMotionEvent),
8490 #[cfg(feature = "xinput")]
8491 XinputRawTouchBegin(xinput::RawTouchBeginEvent),
8492 #[cfg(feature = "xinput")]
8493 XinputRawTouchEnd(xinput::RawTouchEndEvent),
8494 #[cfg(feature = "xinput")]
8495 XinputRawTouchUpdate(xinput::RawTouchUpdateEvent),
8496 #[cfg(feature = "xinput")]
8497 XinputTouchBegin(xinput::TouchBeginEvent),
8498 #[cfg(feature = "xinput")]
8499 XinputTouchEnd(xinput::TouchEndEvent),
8500 #[cfg(feature = "xinput")]
8501 XinputTouchOwnership(xinput::TouchOwnershipEvent),
8502 #[cfg(feature = "xinput")]
8503 XinputTouchUpdate(xinput::TouchUpdateEvent),
8504 #[cfg(feature = "xkb")]
8505 XkbAccessXNotify(xkb::AccessXNotifyEvent),
8506 #[cfg(feature = "xkb")]
8507 XkbActionMessage(xkb::ActionMessageEvent),
8508 #[cfg(feature = "xkb")]
8509 XkbBellNotify(xkb::BellNotifyEvent),
8510 #[cfg(feature = "xkb")]
8511 XkbCompatMapNotify(xkb::CompatMapNotifyEvent),
8512 #[cfg(feature = "xkb")]
8513 XkbControlsNotify(xkb::ControlsNotifyEvent),
8514 #[cfg(feature = "xkb")]
8515 XkbExtensionDeviceNotify(xkb::ExtensionDeviceNotifyEvent),
8516 #[cfg(feature = "xkb")]
8517 XkbIndicatorMapNotify(xkb::IndicatorMapNotifyEvent),
8518 #[cfg(feature = "xkb")]
8519 XkbIndicatorStateNotify(xkb::IndicatorStateNotifyEvent),
8520 #[cfg(feature = "xkb")]
8521 XkbMapNotify(xkb::MapNotifyEvent),
8522 #[cfg(feature = "xkb")]
8523 XkbNamesNotify(xkb::NamesNotifyEvent),
8524 #[cfg(feature = "xkb")]
8525 XkbNewKeyboardNotify(xkb::NewKeyboardNotifyEvent),
8526 #[cfg(feature = "xkb")]
8527 XkbStateNotify(xkb::StateNotifyEvent),
8528 #[cfg(feature = "xprint")]
8529 XprintAttributNotify(xprint::AttributNotifyEvent),
8530 #[cfg(feature = "xprint")]
8531 XprintNotify(xprint::NotifyEvent),
8532 #[cfg(feature = "xv")]
8533 XvPortNotify(xv::PortNotifyEvent),
8534 #[cfg(feature = "xv")]
8535 XvVideoNotify(xv::VideoNotifyEvent),
8536}
8537
8538impl Event {
8539 /// Parse a generic X11 event into a concrete event type.
8540 #[allow(clippy::cognitive_complexity, clippy::match_single_binding)]
8541 pub fn parse(
8542 event: &[u8],
8543 ext_info_provider: &dyn ExtInfoProvider,
8544 ) -> Result<Self, ParseError> {
8545 let event_code = response_type(event)?;
8546
8547 // Check if this is a core protocol event or error, or from the generic event extension
8548 match event_code {
8549 0 => return Ok(Self::Error(X11Error::try_parse(event, ext_info_provider)?)),
8550 xproto::BUTTON_PRESS_EVENT => return Ok(Self::ButtonPress(TryParse::try_parse(event)?.0)),
8551 xproto::BUTTON_RELEASE_EVENT => return Ok(Self::ButtonRelease(TryParse::try_parse(event)?.0)),
8552 xproto::CIRCULATE_NOTIFY_EVENT => return Ok(Self::CirculateNotify(TryParse::try_parse(event)?.0)),
8553 xproto::CIRCULATE_REQUEST_EVENT => return Ok(Self::CirculateRequest(TryParse::try_parse(event)?.0)),
8554 xproto::CLIENT_MESSAGE_EVENT => return Ok(Self::ClientMessage(TryParse::try_parse(event)?.0)),
8555 xproto::COLORMAP_NOTIFY_EVENT => return Ok(Self::ColormapNotify(TryParse::try_parse(event)?.0)),
8556 xproto::CONFIGURE_NOTIFY_EVENT => return Ok(Self::ConfigureNotify(TryParse::try_parse(event)?.0)),
8557 xproto::CONFIGURE_REQUEST_EVENT => return Ok(Self::ConfigureRequest(TryParse::try_parse(event)?.0)),
8558 xproto::CREATE_NOTIFY_EVENT => return Ok(Self::CreateNotify(TryParse::try_parse(event)?.0)),
8559 xproto::DESTROY_NOTIFY_EVENT => return Ok(Self::DestroyNotify(TryParse::try_parse(event)?.0)),
8560 xproto::ENTER_NOTIFY_EVENT => return Ok(Self::EnterNotify(TryParse::try_parse(event)?.0)),
8561 xproto::EXPOSE_EVENT => return Ok(Self::Expose(TryParse::try_parse(event)?.0)),
8562 xproto::FOCUS_IN_EVENT => return Ok(Self::FocusIn(TryParse::try_parse(event)?.0)),
8563 xproto::FOCUS_OUT_EVENT => return Ok(Self::FocusOut(TryParse::try_parse(event)?.0)),
8564 xproto::GRAPHICS_EXPOSURE_EVENT => return Ok(Self::GraphicsExposure(TryParse::try_parse(event)?.0)),
8565 xproto::GRAVITY_NOTIFY_EVENT => return Ok(Self::GravityNotify(TryParse::try_parse(event)?.0)),
8566 xproto::KEY_PRESS_EVENT => return Ok(Self::KeyPress(TryParse::try_parse(event)?.0)),
8567 xproto::KEY_RELEASE_EVENT => return Ok(Self::KeyRelease(TryParse::try_parse(event)?.0)),
8568 xproto::KEYMAP_NOTIFY_EVENT => return Ok(Self::KeymapNotify(TryParse::try_parse(event)?.0)),
8569 xproto::LEAVE_NOTIFY_EVENT => return Ok(Self::LeaveNotify(TryParse::try_parse(event)?.0)),
8570 xproto::MAP_NOTIFY_EVENT => return Ok(Self::MapNotify(TryParse::try_parse(event)?.0)),
8571 xproto::MAP_REQUEST_EVENT => return Ok(Self::MapRequest(TryParse::try_parse(event)?.0)),
8572 xproto::MAPPING_NOTIFY_EVENT => return Ok(Self::MappingNotify(TryParse::try_parse(event)?.0)),
8573 xproto::MOTION_NOTIFY_EVENT => return Ok(Self::MotionNotify(TryParse::try_parse(event)?.0)),
8574 xproto::NO_EXPOSURE_EVENT => return Ok(Self::NoExposure(TryParse::try_parse(event)?.0)),
8575 xproto::PROPERTY_NOTIFY_EVENT => return Ok(Self::PropertyNotify(TryParse::try_parse(event)?.0)),
8576 xproto::REPARENT_NOTIFY_EVENT => return Ok(Self::ReparentNotify(TryParse::try_parse(event)?.0)),
8577 xproto::RESIZE_REQUEST_EVENT => return Ok(Self::ResizeRequest(TryParse::try_parse(event)?.0)),
8578 xproto::SELECTION_CLEAR_EVENT => return Ok(Self::SelectionClear(TryParse::try_parse(event)?.0)),
8579 xproto::SELECTION_NOTIFY_EVENT => return Ok(Self::SelectionNotify(TryParse::try_parse(event)?.0)),
8580 xproto::SELECTION_REQUEST_EVENT => return Ok(Self::SelectionRequest(TryParse::try_parse(event)?.0)),
8581 xproto::UNMAP_NOTIFY_EVENT => return Ok(Self::UnmapNotify(TryParse::try_parse(event)?.0)),
8582 xproto::VISIBILITY_NOTIFY_EVENT => return Ok(Self::VisibilityNotify(TryParse::try_parse(event)?.0)),
8583 xproto::GE_GENERIC_EVENT => return Self::from_generic_event(event, ext_info_provider),
8584 _ => {}
8585 }
8586 // Find the extension that this event could belong to
8587 let ext_info = ext_info_provider.get_from_event_code(event_code);
8588 match ext_info {
8589 #[cfg(feature = "damage")]
8590 Some((damage::X11_EXTENSION_NAME, ext_info)) => {
8591 match event_code - ext_info.first_event {
8592 damage::NOTIFY_EVENT => Ok(Self::DamageNotify(TryParse::try_parse(event)?.0)),
8593 _ => Ok(Self::Unknown(event.to_vec())),
8594 }
8595 }
8596 #[cfg(feature = "dri2")]
8597 Some((dri2::X11_EXTENSION_NAME, ext_info)) => {
8598 match event_code - ext_info.first_event {
8599 dri2::BUFFER_SWAP_COMPLETE_EVENT => Ok(Self::Dri2BufferSwapComplete(TryParse::try_parse(event)?.0)),
8600 dri2::INVALIDATE_BUFFERS_EVENT => Ok(Self::Dri2InvalidateBuffers(TryParse::try_parse(event)?.0)),
8601 _ => Ok(Self::Unknown(event.to_vec())),
8602 }
8603 }
8604 #[cfg(feature = "glx")]
8605 Some((glx::X11_EXTENSION_NAME, ext_info)) => {
8606 match event_code - ext_info.first_event {
8607 glx::BUFFER_SWAP_COMPLETE_EVENT => Ok(Self::GlxBufferSwapComplete(TryParse::try_parse(event)?.0)),
8608 glx::PBUFFER_CLOBBER_EVENT => Ok(Self::GlxPbufferClobber(TryParse::try_parse(event)?.0)),
8609 _ => Ok(Self::Unknown(event.to_vec())),
8610 }
8611 }
8612 #[cfg(feature = "present")]
8613 Some((present::X11_EXTENSION_NAME, ext_info)) => {
8614 match event_code - ext_info.first_event {
8615 present::GENERIC_EVENT => Ok(Self::PresentGeneric(TryParse::try_parse(event)?.0)),
8616 _ => Ok(Self::Unknown(event.to_vec())),
8617 }
8618 }
8619 #[cfg(feature = "randr")]
8620 Some((randr::X11_EXTENSION_NAME, ext_info)) => {
8621 match event_code - ext_info.first_event {
8622 randr::NOTIFY_EVENT => Ok(Self::RandrNotify(TryParse::try_parse(event)?.0)),
8623 randr::SCREEN_CHANGE_NOTIFY_EVENT => Ok(Self::RandrScreenChangeNotify(TryParse::try_parse(event)?.0)),
8624 _ => Ok(Self::Unknown(event.to_vec())),
8625 }
8626 }
8627 #[cfg(feature = "screensaver")]
8628 Some((screensaver::X11_EXTENSION_NAME, ext_info)) => {
8629 match event_code - ext_info.first_event {
8630 screensaver::NOTIFY_EVENT => Ok(Self::ScreensaverNotify(TryParse::try_parse(event)?.0)),
8631 _ => Ok(Self::Unknown(event.to_vec())),
8632 }
8633 }
8634 #[cfg(feature = "shape")]
8635 Some((shape::X11_EXTENSION_NAME, ext_info)) => {
8636 match event_code - ext_info.first_event {
8637 shape::NOTIFY_EVENT => Ok(Self::ShapeNotify(TryParse::try_parse(event)?.0)),
8638 _ => Ok(Self::Unknown(event.to_vec())),
8639 }
8640 }
8641 #[cfg(feature = "shm")]
8642 Some((shm::X11_EXTENSION_NAME, ext_info)) => {
8643 match event_code - ext_info.first_event {
8644 shm::COMPLETION_EVENT => Ok(Self::ShmCompletion(TryParse::try_parse(event)?.0)),
8645 _ => Ok(Self::Unknown(event.to_vec())),
8646 }
8647 }
8648 #[cfg(feature = "sync")]
8649 Some((sync::X11_EXTENSION_NAME, ext_info)) => {
8650 match event_code - ext_info.first_event {
8651 sync::ALARM_NOTIFY_EVENT => Ok(Self::SyncAlarmNotify(TryParse::try_parse(event)?.0)),
8652 sync::COUNTER_NOTIFY_EVENT => Ok(Self::SyncCounterNotify(TryParse::try_parse(event)?.0)),
8653 _ => Ok(Self::Unknown(event.to_vec())),
8654 }
8655 }
8656 #[cfg(feature = "xfixes")]
8657 Some((xfixes::X11_EXTENSION_NAME, ext_info)) => {
8658 match event_code - ext_info.first_event {
8659 xfixes::CURSOR_NOTIFY_EVENT => Ok(Self::XfixesCursorNotify(TryParse::try_parse(event)?.0)),
8660 xfixes::SELECTION_NOTIFY_EVENT => Ok(Self::XfixesSelectionNotify(TryParse::try_parse(event)?.0)),
8661 _ => Ok(Self::Unknown(event.to_vec())),
8662 }
8663 }
8664 #[cfg(feature = "xinput")]
8665 Some((xinput::X11_EXTENSION_NAME, ext_info)) => {
8666 match event_code - ext_info.first_event {
8667 xinput::CHANGE_DEVICE_NOTIFY_EVENT => Ok(Self::XinputChangeDeviceNotify(TryParse::try_parse(event)?.0)),
8668 xinput::DEVICE_BUTTON_PRESS_EVENT => Ok(Self::XinputDeviceButtonPress(TryParse::try_parse(event)?.0)),
8669 xinput::DEVICE_BUTTON_RELEASE_EVENT => Ok(Self::XinputDeviceButtonRelease(TryParse::try_parse(event)?.0)),
8670 xinput::DEVICE_BUTTON_STATE_NOTIFY_EVENT => Ok(Self::XinputDeviceButtonStateNotify(TryParse::try_parse(event)?.0)),
8671 xinput::DEVICE_FOCUS_IN_EVENT => Ok(Self::XinputDeviceFocusIn(TryParse::try_parse(event)?.0)),
8672 xinput::DEVICE_FOCUS_OUT_EVENT => Ok(Self::XinputDeviceFocusOut(TryParse::try_parse(event)?.0)),
8673 xinput::DEVICE_KEY_PRESS_EVENT => Ok(Self::XinputDeviceKeyPress(TryParse::try_parse(event)?.0)),
8674 xinput::DEVICE_KEY_RELEASE_EVENT => Ok(Self::XinputDeviceKeyRelease(TryParse::try_parse(event)?.0)),
8675 xinput::DEVICE_KEY_STATE_NOTIFY_EVENT => Ok(Self::XinputDeviceKeyStateNotify(TryParse::try_parse(event)?.0)),
8676 xinput::DEVICE_MAPPING_NOTIFY_EVENT => Ok(Self::XinputDeviceMappingNotify(TryParse::try_parse(event)?.0)),
8677 xinput::DEVICE_MOTION_NOTIFY_EVENT => Ok(Self::XinputDeviceMotionNotify(TryParse::try_parse(event)?.0)),
8678 xinput::DEVICE_PRESENCE_NOTIFY_EVENT => Ok(Self::XinputDevicePresenceNotify(TryParse::try_parse(event)?.0)),
8679 xinput::DEVICE_PROPERTY_NOTIFY_EVENT => Ok(Self::XinputDevicePropertyNotify(TryParse::try_parse(event)?.0)),
8680 xinput::DEVICE_STATE_NOTIFY_EVENT => Ok(Self::XinputDeviceStateNotify(TryParse::try_parse(event)?.0)),
8681 xinput::DEVICE_VALUATOR_EVENT => Ok(Self::XinputDeviceValuator(TryParse::try_parse(event)?.0)),
8682 xinput::PROXIMITY_IN_EVENT => Ok(Self::XinputProximityIn(TryParse::try_parse(event)?.0)),
8683 xinput::PROXIMITY_OUT_EVENT => Ok(Self::XinputProximityOut(TryParse::try_parse(event)?.0)),
8684 _ => Ok(Self::Unknown(event.to_vec())),
8685 }
8686 }
8687 #[cfg(feature = "xkb")]
8688 Some((xkb::X11_EXTENSION_NAME, ext_info)) => {
8689 if event_code != ext_info.first_event {
8690 return Ok(Self::Unknown(event.to_vec()));
8691 }
8692 match *event.get(1).ok_or(ParseError::InsufficientData)? {
8693 xkb::ACCESS_X_NOTIFY_EVENT => Ok(Self::XkbAccessXNotify(TryParse::try_parse(event)?.0)),
8694 xkb::ACTION_MESSAGE_EVENT => Ok(Self::XkbActionMessage(TryParse::try_parse(event)?.0)),
8695 xkb::BELL_NOTIFY_EVENT => Ok(Self::XkbBellNotify(TryParse::try_parse(event)?.0)),
8696 xkb::COMPAT_MAP_NOTIFY_EVENT => Ok(Self::XkbCompatMapNotify(TryParse::try_parse(event)?.0)),
8697 xkb::CONTROLS_NOTIFY_EVENT => Ok(Self::XkbControlsNotify(TryParse::try_parse(event)?.0)),
8698 xkb::EXTENSION_DEVICE_NOTIFY_EVENT => Ok(Self::XkbExtensionDeviceNotify(TryParse::try_parse(event)?.0)),
8699 xkb::INDICATOR_MAP_NOTIFY_EVENT => Ok(Self::XkbIndicatorMapNotify(TryParse::try_parse(event)?.0)),
8700 xkb::INDICATOR_STATE_NOTIFY_EVENT => Ok(Self::XkbIndicatorStateNotify(TryParse::try_parse(event)?.0)),
8701 xkb::MAP_NOTIFY_EVENT => Ok(Self::XkbMapNotify(TryParse::try_parse(event)?.0)),
8702 xkb::NAMES_NOTIFY_EVENT => Ok(Self::XkbNamesNotify(TryParse::try_parse(event)?.0)),
8703 xkb::NEW_KEYBOARD_NOTIFY_EVENT => Ok(Self::XkbNewKeyboardNotify(TryParse::try_parse(event)?.0)),
8704 xkb::STATE_NOTIFY_EVENT => Ok(Self::XkbStateNotify(TryParse::try_parse(event)?.0)),
8705 _ => Ok(Self::Unknown(event.to_vec())),
8706 }
8707 }
8708 #[cfg(feature = "xprint")]
8709 Some((xprint::X11_EXTENSION_NAME, ext_info)) => {
8710 match event_code - ext_info.first_event {
8711 xprint::ATTRIBUT_NOTIFY_EVENT => Ok(Self::XprintAttributNotify(TryParse::try_parse(event)?.0)),
8712 xprint::NOTIFY_EVENT => Ok(Self::XprintNotify(TryParse::try_parse(event)?.0)),
8713 _ => Ok(Self::Unknown(event.to_vec())),
8714 }
8715 }
8716 #[cfg(feature = "xv")]
8717 Some((xv::X11_EXTENSION_NAME, ext_info)) => {
8718 match event_code - ext_info.first_event {
8719 xv::PORT_NOTIFY_EVENT => Ok(Self::XvPortNotify(TryParse::try_parse(event)?.0)),
8720 xv::VIDEO_NOTIFY_EVENT => Ok(Self::XvVideoNotify(TryParse::try_parse(event)?.0)),
8721 _ => Ok(Self::Unknown(event.to_vec())),
8722 }
8723 }
8724 _ => Ok(Self::Unknown(event.to_vec())),
8725 }
8726 }
8727
8728 #[allow(clippy::match_single_binding)]
8729 fn from_generic_event(
8730 event: &[u8],
8731 ext_info_provider: &dyn ExtInfoProvider,
8732 ) -> Result<Self, ParseError> {
8733 let ge_event = xproto::GeGenericEvent::try_parse(event)?.0;
8734 let ext_name = ext_info_provider
8735 .get_from_major_opcode(ge_event.extension)
8736 .map(|(name, _)| name);
8737 match ext_name {
8738 #[cfg(feature = "present")]
8739 Some(present::X11_EXTENSION_NAME) => {
8740 match ge_event.event_type {
8741 present::COMPLETE_NOTIFY_EVENT => Ok(Self::PresentCompleteNotify(TryParse::try_parse(event)?.0)),
8742 present::CONFIGURE_NOTIFY_EVENT => Ok(Self::PresentConfigureNotify(TryParse::try_parse(event)?.0)),
8743 present::IDLE_NOTIFY_EVENT => Ok(Self::PresentIdleNotify(TryParse::try_parse(event)?.0)),
8744 present::REDIRECT_NOTIFY_EVENT => Ok(Self::PresentRedirectNotify(TryParse::try_parse(event)?.0)),
8745 _ => Ok(Self::Unknown(event.to_vec())),
8746 }
8747 }
8748 #[cfg(feature = "xinput")]
8749 Some(xinput::X11_EXTENSION_NAME) => {
8750 match ge_event.event_type {
8751 xinput::BARRIER_HIT_EVENT => Ok(Self::XinputBarrierHit(TryParse::try_parse(event)?.0)),
8752 xinput::BARRIER_LEAVE_EVENT => Ok(Self::XinputBarrierLeave(TryParse::try_parse(event)?.0)),
8753 xinput::BUTTON_PRESS_EVENT => Ok(Self::XinputButtonPress(TryParse::try_parse(event)?.0)),
8754 xinput::BUTTON_RELEASE_EVENT => Ok(Self::XinputButtonRelease(TryParse::try_parse(event)?.0)),
8755 xinput::DEVICE_CHANGED_EVENT => Ok(Self::XinputDeviceChanged(TryParse::try_parse(event)?.0)),
8756 xinput::ENTER_EVENT => Ok(Self::XinputEnter(TryParse::try_parse(event)?.0)),
8757 xinput::FOCUS_IN_EVENT => Ok(Self::XinputFocusIn(TryParse::try_parse(event)?.0)),
8758 xinput::FOCUS_OUT_EVENT => Ok(Self::XinputFocusOut(TryParse::try_parse(event)?.0)),
8759 xinput::GESTURE_PINCH_BEGIN_EVENT => Ok(Self::XinputGesturePinchBegin(TryParse::try_parse(event)?.0)),
8760 xinput::GESTURE_PINCH_END_EVENT => Ok(Self::XinputGesturePinchEnd(TryParse::try_parse(event)?.0)),
8761 xinput::GESTURE_PINCH_UPDATE_EVENT => Ok(Self::XinputGesturePinchUpdate(TryParse::try_parse(event)?.0)),
8762 xinput::GESTURE_SWIPE_BEGIN_EVENT => Ok(Self::XinputGestureSwipeBegin(TryParse::try_parse(event)?.0)),
8763 xinput::GESTURE_SWIPE_END_EVENT => Ok(Self::XinputGestureSwipeEnd(TryParse::try_parse(event)?.0)),
8764 xinput::GESTURE_SWIPE_UPDATE_EVENT => Ok(Self::XinputGestureSwipeUpdate(TryParse::try_parse(event)?.0)),
8765 xinput::HIERARCHY_EVENT => Ok(Self::XinputHierarchy(TryParse::try_parse(event)?.0)),
8766 xinput::KEY_PRESS_EVENT => Ok(Self::XinputKeyPress(TryParse::try_parse(event)?.0)),
8767 xinput::KEY_RELEASE_EVENT => Ok(Self::XinputKeyRelease(TryParse::try_parse(event)?.0)),
8768 xinput::LEAVE_EVENT => Ok(Self::XinputLeave(TryParse::try_parse(event)?.0)),
8769 xinput::MOTION_EVENT => Ok(Self::XinputMotion(TryParse::try_parse(event)?.0)),
8770 xinput::PROPERTY_EVENT => Ok(Self::XinputProperty(TryParse::try_parse(event)?.0)),
8771 xinput::RAW_BUTTON_PRESS_EVENT => Ok(Self::XinputRawButtonPress(TryParse::try_parse(event)?.0)),
8772 xinput::RAW_BUTTON_RELEASE_EVENT => Ok(Self::XinputRawButtonRelease(TryParse::try_parse(event)?.0)),
8773 xinput::RAW_KEY_PRESS_EVENT => Ok(Self::XinputRawKeyPress(TryParse::try_parse(event)?.0)),
8774 xinput::RAW_KEY_RELEASE_EVENT => Ok(Self::XinputRawKeyRelease(TryParse::try_parse(event)?.0)),
8775 xinput::RAW_MOTION_EVENT => Ok(Self::XinputRawMotion(TryParse::try_parse(event)?.0)),
8776 xinput::RAW_TOUCH_BEGIN_EVENT => Ok(Self::XinputRawTouchBegin(TryParse::try_parse(event)?.0)),
8777 xinput::RAW_TOUCH_END_EVENT => Ok(Self::XinputRawTouchEnd(TryParse::try_parse(event)?.0)),
8778 xinput::RAW_TOUCH_UPDATE_EVENT => Ok(Self::XinputRawTouchUpdate(TryParse::try_parse(event)?.0)),
8779 xinput::TOUCH_BEGIN_EVENT => Ok(Self::XinputTouchBegin(TryParse::try_parse(event)?.0)),
8780 xinput::TOUCH_END_EVENT => Ok(Self::XinputTouchEnd(TryParse::try_parse(event)?.0)),
8781 xinput::TOUCH_OWNERSHIP_EVENT => Ok(Self::XinputTouchOwnership(TryParse::try_parse(event)?.0)),
8782 xinput::TOUCH_UPDATE_EVENT => Ok(Self::XinputTouchUpdate(TryParse::try_parse(event)?.0)),
8783 _ => Ok(Self::Unknown(event.to_vec())),
8784 }
8785 }
8786 _ => Ok(Self::Unknown(event.to_vec())),
8787 }
8788 }
8789
8790 /// Get the sequence number contained in this X11 event
8791 pub fn wire_sequence_number(&self) -> Option<u16> {
8792 match self {
8793 Event::Unknown(value) => sequence_number(value).ok(),
8794 Event::Error(value) => Some(value.sequence),
8795 Event::ButtonPress(value) => Some(value.sequence),
8796 Event::ButtonRelease(value) => Some(value.sequence),
8797 Event::CirculateNotify(value) => Some(value.sequence),
8798 Event::CirculateRequest(value) => Some(value.sequence),
8799 Event::ClientMessage(value) => Some(value.sequence),
8800 Event::ColormapNotify(value) => Some(value.sequence),
8801 Event::ConfigureNotify(value) => Some(value.sequence),
8802 Event::ConfigureRequest(value) => Some(value.sequence),
8803 Event::CreateNotify(value) => Some(value.sequence),
8804 Event::DestroyNotify(value) => Some(value.sequence),
8805 Event::EnterNotify(value) => Some(value.sequence),
8806 Event::Expose(value) => Some(value.sequence),
8807 Event::FocusIn(value) => Some(value.sequence),
8808 Event::FocusOut(value) => Some(value.sequence),
8809 Event::GeGeneric(value) => Some(value.sequence),
8810 Event::GraphicsExposure(value) => Some(value.sequence),
8811 Event::GravityNotify(value) => Some(value.sequence),
8812 Event::KeyPress(value) => Some(value.sequence),
8813 Event::KeyRelease(value) => Some(value.sequence),
8814 Event::KeymapNotify(_) => None,
8815 Event::LeaveNotify(value) => Some(value.sequence),
8816 Event::MapNotify(value) => Some(value.sequence),
8817 Event::MapRequest(value) => Some(value.sequence),
8818 Event::MappingNotify(value) => Some(value.sequence),
8819 Event::MotionNotify(value) => Some(value.sequence),
8820 Event::NoExposure(value) => Some(value.sequence),
8821 Event::PropertyNotify(value) => Some(value.sequence),
8822 Event::ReparentNotify(value) => Some(value.sequence),
8823 Event::ResizeRequest(value) => Some(value.sequence),
8824 Event::SelectionClear(value) => Some(value.sequence),
8825 Event::SelectionNotify(value) => Some(value.sequence),
8826 Event::SelectionRequest(value) => Some(value.sequence),
8827 Event::UnmapNotify(value) => Some(value.sequence),
8828 Event::VisibilityNotify(value) => Some(value.sequence),
8829 #[cfg(feature = "damage")]
8830 Event::DamageNotify(value) => Some(value.sequence),
8831 #[cfg(feature = "dri2")]
8832 Event::Dri2BufferSwapComplete(value) => Some(value.sequence),
8833 #[cfg(feature = "dri2")]
8834 Event::Dri2InvalidateBuffers(value) => Some(value.sequence),
8835 #[cfg(feature = "glx")]
8836 Event::GlxBufferSwapComplete(value) => Some(value.sequence),
8837 #[cfg(feature = "glx")]
8838 Event::GlxPbufferClobber(value) => Some(value.sequence),
8839 #[cfg(feature = "present")]
8840 Event::PresentCompleteNotify(value) => Some(value.sequence),
8841 #[cfg(feature = "present")]
8842 Event::PresentConfigureNotify(value) => Some(value.sequence),
8843 #[cfg(feature = "present")]
8844 Event::PresentGeneric(value) => Some(value.sequence),
8845 #[cfg(feature = "present")]
8846 Event::PresentIdleNotify(value) => Some(value.sequence),
8847 #[cfg(feature = "present")]
8848 Event::PresentRedirectNotify(value) => Some(value.sequence),
8849 #[cfg(feature = "randr")]
8850 Event::RandrNotify(value) => Some(value.sequence),
8851 #[cfg(feature = "randr")]
8852 Event::RandrScreenChangeNotify(value) => Some(value.sequence),
8853 #[cfg(feature = "screensaver")]
8854 Event::ScreensaverNotify(value) => Some(value.sequence),
8855 #[cfg(feature = "shape")]
8856 Event::ShapeNotify(value) => Some(value.sequence),
8857 #[cfg(feature = "shm")]
8858 Event::ShmCompletion(value) => Some(value.sequence),
8859 #[cfg(feature = "sync")]
8860 Event::SyncAlarmNotify(value) => Some(value.sequence),
8861 #[cfg(feature = "sync")]
8862 Event::SyncCounterNotify(value) => Some(value.sequence),
8863 #[cfg(feature = "xfixes")]
8864 Event::XfixesCursorNotify(value) => Some(value.sequence),
8865 #[cfg(feature = "xfixes")]
8866 Event::XfixesSelectionNotify(value) => Some(value.sequence),
8867 #[cfg(feature = "xinput")]
8868 Event::XinputBarrierHit(value) => Some(value.sequence),
8869 #[cfg(feature = "xinput")]
8870 Event::XinputBarrierLeave(value) => Some(value.sequence),
8871 #[cfg(feature = "xinput")]
8872 Event::XinputButtonPress(value) => Some(value.sequence),
8873 #[cfg(feature = "xinput")]
8874 Event::XinputButtonRelease(value) => Some(value.sequence),
8875 #[cfg(feature = "xinput")]
8876 Event::XinputChangeDeviceNotify(value) => Some(value.sequence),
8877 #[cfg(feature = "xinput")]
8878 Event::XinputDeviceButtonPress(value) => Some(value.sequence),
8879 #[cfg(feature = "xinput")]
8880 Event::XinputDeviceButtonRelease(value) => Some(value.sequence),
8881 #[cfg(feature = "xinput")]
8882 Event::XinputDeviceButtonStateNotify(value) => Some(value.sequence),
8883 #[cfg(feature = "xinput")]
8884 Event::XinputDeviceChanged(value) => Some(value.sequence),
8885 #[cfg(feature = "xinput")]
8886 Event::XinputDeviceFocusIn(value) => Some(value.sequence),
8887 #[cfg(feature = "xinput")]
8888 Event::XinputDeviceFocusOut(value) => Some(value.sequence),
8889 #[cfg(feature = "xinput")]
8890 Event::XinputDeviceKeyPress(value) => Some(value.sequence),
8891 #[cfg(feature = "xinput")]
8892 Event::XinputDeviceKeyRelease(value) => Some(value.sequence),
8893 #[cfg(feature = "xinput")]
8894 Event::XinputDeviceKeyStateNotify(value) => Some(value.sequence),
8895 #[cfg(feature = "xinput")]
8896 Event::XinputDeviceMappingNotify(value) => Some(value.sequence),
8897 #[cfg(feature = "xinput")]
8898 Event::XinputDeviceMotionNotify(value) => Some(value.sequence),
8899 #[cfg(feature = "xinput")]
8900 Event::XinputDevicePresenceNotify(value) => Some(value.sequence),
8901 #[cfg(feature = "xinput")]
8902 Event::XinputDevicePropertyNotify(value) => Some(value.sequence),
8903 #[cfg(feature = "xinput")]
8904 Event::XinputDeviceStateNotify(value) => Some(value.sequence),
8905 #[cfg(feature = "xinput")]
8906 Event::XinputDeviceValuator(value) => Some(value.sequence),
8907 #[cfg(feature = "xinput")]
8908 Event::XinputEnter(value) => Some(value.sequence),
8909 #[cfg(feature = "xinput")]
8910 Event::XinputFocusIn(value) => Some(value.sequence),
8911 #[cfg(feature = "xinput")]
8912 Event::XinputFocusOut(value) => Some(value.sequence),
8913 #[cfg(feature = "xinput")]
8914 Event::XinputGesturePinchBegin(value) => Some(value.sequence),
8915 #[cfg(feature = "xinput")]
8916 Event::XinputGesturePinchEnd(value) => Some(value.sequence),
8917 #[cfg(feature = "xinput")]
8918 Event::XinputGesturePinchUpdate(value) => Some(value.sequence),
8919 #[cfg(feature = "xinput")]
8920 Event::XinputGestureSwipeBegin(value) => Some(value.sequence),
8921 #[cfg(feature = "xinput")]
8922 Event::XinputGestureSwipeEnd(value) => Some(value.sequence),
8923 #[cfg(feature = "xinput")]
8924 Event::XinputGestureSwipeUpdate(value) => Some(value.sequence),
8925 #[cfg(feature = "xinput")]
8926 Event::XinputHierarchy(value) => Some(value.sequence),
8927 #[cfg(feature = "xinput")]
8928 Event::XinputKeyPress(value) => Some(value.sequence),
8929 #[cfg(feature = "xinput")]
8930 Event::XinputKeyRelease(value) => Some(value.sequence),
8931 #[cfg(feature = "xinput")]
8932 Event::XinputLeave(value) => Some(value.sequence),
8933 #[cfg(feature = "xinput")]
8934 Event::XinputMotion(value) => Some(value.sequence),
8935 #[cfg(feature = "xinput")]
8936 Event::XinputProperty(value) => Some(value.sequence),
8937 #[cfg(feature = "xinput")]
8938 Event::XinputProximityIn(value) => Some(value.sequence),
8939 #[cfg(feature = "xinput")]
8940 Event::XinputProximityOut(value) => Some(value.sequence),
8941 #[cfg(feature = "xinput")]
8942 Event::XinputRawButtonPress(value) => Some(value.sequence),
8943 #[cfg(feature = "xinput")]
8944 Event::XinputRawButtonRelease(value) => Some(value.sequence),
8945 #[cfg(feature = "xinput")]
8946 Event::XinputRawKeyPress(value) => Some(value.sequence),
8947 #[cfg(feature = "xinput")]
8948 Event::XinputRawKeyRelease(value) => Some(value.sequence),
8949 #[cfg(feature = "xinput")]
8950 Event::XinputRawMotion(value) => Some(value.sequence),
8951 #[cfg(feature = "xinput")]
8952 Event::XinputRawTouchBegin(value) => Some(value.sequence),
8953 #[cfg(feature = "xinput")]
8954 Event::XinputRawTouchEnd(value) => Some(value.sequence),
8955 #[cfg(feature = "xinput")]
8956 Event::XinputRawTouchUpdate(value) => Some(value.sequence),
8957 #[cfg(feature = "xinput")]
8958 Event::XinputTouchBegin(value) => Some(value.sequence),
8959 #[cfg(feature = "xinput")]
8960 Event::XinputTouchEnd(value) => Some(value.sequence),
8961 #[cfg(feature = "xinput")]
8962 Event::XinputTouchOwnership(value) => Some(value.sequence),
8963 #[cfg(feature = "xinput")]
8964 Event::XinputTouchUpdate(value) => Some(value.sequence),
8965 #[cfg(feature = "xkb")]
8966 Event::XkbAccessXNotify(value) => Some(value.sequence),
8967 #[cfg(feature = "xkb")]
8968 Event::XkbActionMessage(value) => Some(value.sequence),
8969 #[cfg(feature = "xkb")]
8970 Event::XkbBellNotify(value) => Some(value.sequence),
8971 #[cfg(feature = "xkb")]
8972 Event::XkbCompatMapNotify(value) => Some(value.sequence),
8973 #[cfg(feature = "xkb")]
8974 Event::XkbControlsNotify(value) => Some(value.sequence),
8975 #[cfg(feature = "xkb")]
8976 Event::XkbExtensionDeviceNotify(value) => Some(value.sequence),
8977 #[cfg(feature = "xkb")]
8978 Event::XkbIndicatorMapNotify(value) => Some(value.sequence),
8979 #[cfg(feature = "xkb")]
8980 Event::XkbIndicatorStateNotify(value) => Some(value.sequence),
8981 #[cfg(feature = "xkb")]
8982 Event::XkbMapNotify(value) => Some(value.sequence),
8983 #[cfg(feature = "xkb")]
8984 Event::XkbNamesNotify(value) => Some(value.sequence),
8985 #[cfg(feature = "xkb")]
8986 Event::XkbNewKeyboardNotify(value) => Some(value.sequence),
8987 #[cfg(feature = "xkb")]
8988 Event::XkbStateNotify(value) => Some(value.sequence),
8989 #[cfg(feature = "xprint")]
8990 Event::XprintAttributNotify(value) => Some(value.sequence),
8991 #[cfg(feature = "xprint")]
8992 Event::XprintNotify(value) => Some(value.sequence),
8993 #[cfg(feature = "xv")]
8994 Event::XvPortNotify(value) => Some(value.sequence),
8995 #[cfg(feature = "xv")]
8996 Event::XvVideoNotify(value) => Some(value.sequence),
8997 }
8998 }
8999
9000 /// Get the raw response type of this X11 event
9001 ///
9002 /// Response types have seven bits in X11. The eight bit indicates whether
9003 /// the packet was generated through the `SendEvent` request. This function
9004 /// returns all eight bits.
9005 ///
9006 /// See also the `response_type()`, `server_generated()` and `sent_event()` methods.
9007 pub fn raw_response_type(&self) -> u8 {
9008 match self {
9009 Event::Unknown(value) => response_type(value).unwrap(),
9010 Event::Error(_) => 0,
9011 Event::ButtonPress(value) => value.response_type,
9012 Event::ButtonRelease(value) => value.response_type,
9013 Event::CirculateNotify(value) => value.response_type,
9014 Event::CirculateRequest(value) => value.response_type,
9015 Event::ClientMessage(value) => value.response_type,
9016 Event::ColormapNotify(value) => value.response_type,
9017 Event::ConfigureNotify(value) => value.response_type,
9018 Event::ConfigureRequest(value) => value.response_type,
9019 Event::CreateNotify(value) => value.response_type,
9020 Event::DestroyNotify(value) => value.response_type,
9021 Event::EnterNotify(value) => value.response_type,
9022 Event::Expose(value) => value.response_type,
9023 Event::FocusIn(value) => value.response_type,
9024 Event::FocusOut(value) => value.response_type,
9025 Event::GeGeneric(value) => value.response_type,
9026 Event::GraphicsExposure(value) => value.response_type,
9027 Event::GravityNotify(value) => value.response_type,
9028 Event::KeyPress(value) => value.response_type,
9029 Event::KeyRelease(value) => value.response_type,
9030 Event::KeymapNotify(value) => value.response_type,
9031 Event::LeaveNotify(value) => value.response_type,
9032 Event::MapNotify(value) => value.response_type,
9033 Event::MapRequest(value) => value.response_type,
9034 Event::MappingNotify(value) => value.response_type,
9035 Event::MotionNotify(value) => value.response_type,
9036 Event::NoExposure(value) => value.response_type,
9037 Event::PropertyNotify(value) => value.response_type,
9038 Event::ReparentNotify(value) => value.response_type,
9039 Event::ResizeRequest(value) => value.response_type,
9040 Event::SelectionClear(value) => value.response_type,
9041 Event::SelectionNotify(value) => value.response_type,
9042 Event::SelectionRequest(value) => value.response_type,
9043 Event::UnmapNotify(value) => value.response_type,
9044 Event::VisibilityNotify(value) => value.response_type,
9045 #[cfg(feature = "damage")]
9046 Event::DamageNotify(value) => value.response_type,
9047 #[cfg(feature = "dri2")]
9048 Event::Dri2BufferSwapComplete(value) => value.response_type,
9049 #[cfg(feature = "dri2")]
9050 Event::Dri2InvalidateBuffers(value) => value.response_type,
9051 #[cfg(feature = "glx")]
9052 Event::GlxBufferSwapComplete(value) => value.response_type,
9053 #[cfg(feature = "glx")]
9054 Event::GlxPbufferClobber(value) => value.response_type,
9055 #[cfg(feature = "present")]
9056 Event::PresentCompleteNotify(value) => value.response_type,
9057 #[cfg(feature = "present")]
9058 Event::PresentConfigureNotify(value) => value.response_type,
9059 #[cfg(feature = "present")]
9060 Event::PresentGeneric(value) => value.response_type,
9061 #[cfg(feature = "present")]
9062 Event::PresentIdleNotify(value) => value.response_type,
9063 #[cfg(feature = "present")]
9064 Event::PresentRedirectNotify(value) => value.response_type,
9065 #[cfg(feature = "randr")]
9066 Event::RandrNotify(value) => value.response_type,
9067 #[cfg(feature = "randr")]
9068 Event::RandrScreenChangeNotify(value) => value.response_type,
9069 #[cfg(feature = "screensaver")]
9070 Event::ScreensaverNotify(value) => value.response_type,
9071 #[cfg(feature = "shape")]
9072 Event::ShapeNotify(value) => value.response_type,
9073 #[cfg(feature = "shm")]
9074 Event::ShmCompletion(value) => value.response_type,
9075 #[cfg(feature = "sync")]
9076 Event::SyncAlarmNotify(value) => value.response_type,
9077 #[cfg(feature = "sync")]
9078 Event::SyncCounterNotify(value) => value.response_type,
9079 #[cfg(feature = "xfixes")]
9080 Event::XfixesCursorNotify(value) => value.response_type,
9081 #[cfg(feature = "xfixes")]
9082 Event::XfixesSelectionNotify(value) => value.response_type,
9083 #[cfg(feature = "xinput")]
9084 Event::XinputBarrierHit(value) => value.response_type,
9085 #[cfg(feature = "xinput")]
9086 Event::XinputBarrierLeave(value) => value.response_type,
9087 #[cfg(feature = "xinput")]
9088 Event::XinputButtonPress(value) => value.response_type,
9089 #[cfg(feature = "xinput")]
9090 Event::XinputButtonRelease(value) => value.response_type,
9091 #[cfg(feature = "xinput")]
9092 Event::XinputChangeDeviceNotify(value) => value.response_type,
9093 #[cfg(feature = "xinput")]
9094 Event::XinputDeviceButtonPress(value) => value.response_type,
9095 #[cfg(feature = "xinput")]
9096 Event::XinputDeviceButtonRelease(value) => value.response_type,
9097 #[cfg(feature = "xinput")]
9098 Event::XinputDeviceButtonStateNotify(value) => value.response_type,
9099 #[cfg(feature = "xinput")]
9100 Event::XinputDeviceChanged(value) => value.response_type,
9101 #[cfg(feature = "xinput")]
9102 Event::XinputDeviceFocusIn(value) => value.response_type,
9103 #[cfg(feature = "xinput")]
9104 Event::XinputDeviceFocusOut(value) => value.response_type,
9105 #[cfg(feature = "xinput")]
9106 Event::XinputDeviceKeyPress(value) => value.response_type,
9107 #[cfg(feature = "xinput")]
9108 Event::XinputDeviceKeyRelease(value) => value.response_type,
9109 #[cfg(feature = "xinput")]
9110 Event::XinputDeviceKeyStateNotify(value) => value.response_type,
9111 #[cfg(feature = "xinput")]
9112 Event::XinputDeviceMappingNotify(value) => value.response_type,
9113 #[cfg(feature = "xinput")]
9114 Event::XinputDeviceMotionNotify(value) => value.response_type,
9115 #[cfg(feature = "xinput")]
9116 Event::XinputDevicePresenceNotify(value) => value.response_type,
9117 #[cfg(feature = "xinput")]
9118 Event::XinputDevicePropertyNotify(value) => value.response_type,
9119 #[cfg(feature = "xinput")]
9120 Event::XinputDeviceStateNotify(value) => value.response_type,
9121 #[cfg(feature = "xinput")]
9122 Event::XinputDeviceValuator(value) => value.response_type,
9123 #[cfg(feature = "xinput")]
9124 Event::XinputEnter(value) => value.response_type,
9125 #[cfg(feature = "xinput")]
9126 Event::XinputFocusIn(value) => value.response_type,
9127 #[cfg(feature = "xinput")]
9128 Event::XinputFocusOut(value) => value.response_type,
9129 #[cfg(feature = "xinput")]
9130 Event::XinputGesturePinchBegin(value) => value.response_type,
9131 #[cfg(feature = "xinput")]
9132 Event::XinputGesturePinchEnd(value) => value.response_type,
9133 #[cfg(feature = "xinput")]
9134 Event::XinputGesturePinchUpdate(value) => value.response_type,
9135 #[cfg(feature = "xinput")]
9136 Event::XinputGestureSwipeBegin(value) => value.response_type,
9137 #[cfg(feature = "xinput")]
9138 Event::XinputGestureSwipeEnd(value) => value.response_type,
9139 #[cfg(feature = "xinput")]
9140 Event::XinputGestureSwipeUpdate(value) => value.response_type,
9141 #[cfg(feature = "xinput")]
9142 Event::XinputHierarchy(value) => value.response_type,
9143 #[cfg(feature = "xinput")]
9144 Event::XinputKeyPress(value) => value.response_type,
9145 #[cfg(feature = "xinput")]
9146 Event::XinputKeyRelease(value) => value.response_type,
9147 #[cfg(feature = "xinput")]
9148 Event::XinputLeave(value) => value.response_type,
9149 #[cfg(feature = "xinput")]
9150 Event::XinputMotion(value) => value.response_type,
9151 #[cfg(feature = "xinput")]
9152 Event::XinputProperty(value) => value.response_type,
9153 #[cfg(feature = "xinput")]
9154 Event::XinputProximityIn(value) => value.response_type,
9155 #[cfg(feature = "xinput")]
9156 Event::XinputProximityOut(value) => value.response_type,
9157 #[cfg(feature = "xinput")]
9158 Event::XinputRawButtonPress(value) => value.response_type,
9159 #[cfg(feature = "xinput")]
9160 Event::XinputRawButtonRelease(value) => value.response_type,
9161 #[cfg(feature = "xinput")]
9162 Event::XinputRawKeyPress(value) => value.response_type,
9163 #[cfg(feature = "xinput")]
9164 Event::XinputRawKeyRelease(value) => value.response_type,
9165 #[cfg(feature = "xinput")]
9166 Event::XinputRawMotion(value) => value.response_type,
9167 #[cfg(feature = "xinput")]
9168 Event::XinputRawTouchBegin(value) => value.response_type,
9169 #[cfg(feature = "xinput")]
9170 Event::XinputRawTouchEnd(value) => value.response_type,
9171 #[cfg(feature = "xinput")]
9172 Event::XinputRawTouchUpdate(value) => value.response_type,
9173 #[cfg(feature = "xinput")]
9174 Event::XinputTouchBegin(value) => value.response_type,
9175 #[cfg(feature = "xinput")]
9176 Event::XinputTouchEnd(value) => value.response_type,
9177 #[cfg(feature = "xinput")]
9178 Event::XinputTouchOwnership(value) => value.response_type,
9179 #[cfg(feature = "xinput")]
9180 Event::XinputTouchUpdate(value) => value.response_type,
9181 #[cfg(feature = "xkb")]
9182 Event::XkbAccessXNotify(value) => value.response_type,
9183 #[cfg(feature = "xkb")]
9184 Event::XkbActionMessage(value) => value.response_type,
9185 #[cfg(feature = "xkb")]
9186 Event::XkbBellNotify(value) => value.response_type,
9187 #[cfg(feature = "xkb")]
9188 Event::XkbCompatMapNotify(value) => value.response_type,
9189 #[cfg(feature = "xkb")]
9190 Event::XkbControlsNotify(value) => value.response_type,
9191 #[cfg(feature = "xkb")]
9192 Event::XkbExtensionDeviceNotify(value) => value.response_type,
9193 #[cfg(feature = "xkb")]
9194 Event::XkbIndicatorMapNotify(value) => value.response_type,
9195 #[cfg(feature = "xkb")]
9196 Event::XkbIndicatorStateNotify(value) => value.response_type,
9197 #[cfg(feature = "xkb")]
9198 Event::XkbMapNotify(value) => value.response_type,
9199 #[cfg(feature = "xkb")]
9200 Event::XkbNamesNotify(value) => value.response_type,
9201 #[cfg(feature = "xkb")]
9202 Event::XkbNewKeyboardNotify(value) => value.response_type,
9203 #[cfg(feature = "xkb")]
9204 Event::XkbStateNotify(value) => value.response_type,
9205 #[cfg(feature = "xprint")]
9206 Event::XprintAttributNotify(value) => value.response_type,
9207 #[cfg(feature = "xprint")]
9208 Event::XprintNotify(value) => value.response_type,
9209 #[cfg(feature = "xv")]
9210 Event::XvPortNotify(value) => value.response_type,
9211 #[cfg(feature = "xv")]
9212 Event::XvVideoNotify(value) => value.response_type,
9213 }
9214 }
9215
9216 /// Get the response type of this X11 event
9217 pub fn response_type(&self) -> u8 {
9218 self.raw_response_type() & 0x7f
9219 }
9220
9221 /// Was this event generated by the X11 server?
9222 ///
9223 /// If this function returns true, then this event comes from the X11 server.
9224 /// Otherwise, it was sent from another client via the `SendEvent` request.
9225 pub fn server_generated(&self) -> bool {
9226 self.raw_response_type() & 0x80 == 0
9227 }
9228
9229 /// Was this event generated by another X11 client?
9230 ///
9231 /// If this function returns true, then this event comes from another client via
9232 /// the `SendEvent` request. Otherwise, it was generated by the X11 server.
9233 pub fn sent_event(&self) -> bool {
9234 self.raw_response_type() & 0x80 != 0
9235 }
9236}
9237
9238/// Get the response type out of the raw bytes of an X11 error or event.
9239fn response_type(raw_bytes: &[u8]) -> Result<u8, ParseError> {
9240 raw_bytes.first()
9241 .map(|x| x & 0x7f)
9242 .ok_or(err:ParseError::InsufficientData)
9243}
9244
9245/// Get the sequence number out of an X11 packet.
9246fn sequence_number(raw_bytes: &[u8]) -> Result<u16, ParseError> {
9247 raw_bytes.get(2..4)
9248 .map(|b| u16::from_ne_bytes(b.try_into().unwrap()))
9249 .ok_or(err:ParseError::InsufficientData)
9250}
9251