x11rb_async/protocol/
xf86dri.rs

1// This file contains generated code. Do not edit directly.
2// To regenerate this, run 'make'.
3
4//! Bindings to the `XF86Dri` X11 extension.
5
6#![allow(clippy::too_many_arguments)]
7
8#[allow(unused_imports)]
9use std::borrow::Cow;
10#[allow(unused_imports)]
11use std::convert::TryInto;
12#[allow(unused_imports)]
13use crate::utils::RawFdContainer;
14#[allow(unused_imports)]
15use crate::x11_utils::{Request, RequestHeader, Serialize, TryParse, TryParseFd};
16use std::io::IoSlice;
17use crate::connection::RequestConnection;
18#[allow(unused_imports)]
19use crate::connection::Connection as X11Connection;
20#[allow(unused_imports)]
21use crate::cookie::{Cookie, CookieWithFds, VoidCookie};
22use crate::errors::ConnectionError;
23#[allow(unused_imports)]
24use crate::errors::ReplyOrIdError;
25use std::future::Future;
26use std::pin::Pin;
27
28pub use x11rb_protocol::protocol::xf86dri::*;
29
30/// Get the major opcode of this extension
31async fn major_opcode<Conn: RequestConnection + ?Sized>(conn: &Conn) -> Result<u8, ConnectionError> {
32    let info = conn.extension_information(X11_EXTENSION_NAME).await?;
33    let info = info.ok_or(ConnectionError::UnsupportedExtension)?;
34    Ok(info.major_opcode)
35}
36
37pub async fn query_version<Conn>(conn: &Conn) -> Result<Cookie<'_, Conn, QueryVersionReply>, ConnectionError>
38where
39    Conn: RequestConnection + ?Sized,
40{
41    let request0 = QueryVersionRequest;
42    let (bytes, fds) = request0.serialize(major_opcode(conn).await?);
43    let slices = [IoSlice::new(&bytes[0])];
44    assert_eq!(slices.len(), bytes.len());
45    conn.send_request_with_reply(&slices, fds).await
46}
47pub async fn query_direct_rendering_capable<Conn>(conn: &Conn, screen: u32) -> Result<Cookie<'_, Conn, QueryDirectRenderingCapableReply>, ConnectionError>
48where
49    Conn: RequestConnection + ?Sized,
50{
51    let request0 = QueryDirectRenderingCapableRequest {
52        screen,
53    };
54    let (bytes, fds) = request0.serialize(major_opcode(conn).await?);
55    let slices = [IoSlice::new(&bytes[0])];
56    assert_eq!(slices.len(), bytes.len());
57    conn.send_request_with_reply(&slices, fds).await
58}
59pub async fn open_connection<Conn>(conn: &Conn, screen: u32) -> Result<Cookie<'_, Conn, OpenConnectionReply>, ConnectionError>
60where
61    Conn: RequestConnection + ?Sized,
62{
63    let request0 = OpenConnectionRequest {
64        screen,
65    };
66    let (bytes, fds) = request0.serialize(major_opcode(conn).await?);
67    let slices = [IoSlice::new(&bytes[0])];
68    assert_eq!(slices.len(), bytes.len());
69    conn.send_request_with_reply(&slices, fds).await
70}
71pub async fn close_connection<Conn>(conn: &Conn, screen: u32) -> Result<VoidCookie<'_, Conn>, ConnectionError>
72where
73    Conn: RequestConnection + ?Sized,
74{
75    let request0 = CloseConnectionRequest {
76        screen,
77    };
78    let (bytes, fds) = request0.serialize(major_opcode(conn).await?);
79    let slices = [IoSlice::new(&bytes[0])];
80    assert_eq!(slices.len(), bytes.len());
81    conn.send_request_without_reply(&slices, fds).await
82}
83pub async fn get_client_driver_name<Conn>(conn: &Conn, screen: u32) -> Result<Cookie<'_, Conn, GetClientDriverNameReply>, ConnectionError>
84where
85    Conn: RequestConnection + ?Sized,
86{
87    let request0 = GetClientDriverNameRequest {
88        screen,
89    };
90    let (bytes, fds) = request0.serialize(major_opcode(conn).await?);
91    let slices = [IoSlice::new(&bytes[0])];
92    assert_eq!(slices.len(), bytes.len());
93    conn.send_request_with_reply(&slices, fds).await
94}
95pub async fn create_context<Conn>(conn: &Conn, screen: u32, visual: u32, context: u32) -> Result<Cookie<'_, Conn, CreateContextReply>, ConnectionError>
96where
97    Conn: RequestConnection + ?Sized,
98{
99    let request0 = CreateContextRequest {
100        screen,
101        visual,
102        context,
103    };
104    let (bytes, fds) = request0.serialize(major_opcode(conn).await?);
105    let slices = [IoSlice::new(&bytes[0])];
106    assert_eq!(slices.len(), bytes.len());
107    conn.send_request_with_reply(&slices, fds).await
108}
109pub async fn destroy_context<Conn>(conn: &Conn, screen: u32, context: u32) -> Result<VoidCookie<'_, Conn>, ConnectionError>
110where
111    Conn: RequestConnection + ?Sized,
112{
113    let request0 = DestroyContextRequest {
114        screen,
115        context,
116    };
117    let (bytes, fds) = request0.serialize(major_opcode(conn).await?);
118    let slices = [IoSlice::new(&bytes[0])];
119    assert_eq!(slices.len(), bytes.len());
120    conn.send_request_without_reply(&slices, fds).await
121}
122pub async fn create_drawable<Conn>(conn: &Conn, screen: u32, drawable: u32) -> Result<Cookie<'_, Conn, CreateDrawableReply>, ConnectionError>
123where
124    Conn: RequestConnection + ?Sized,
125{
126    let request0 = CreateDrawableRequest {
127        screen,
128        drawable,
129    };
130    let (bytes, fds) = request0.serialize(major_opcode(conn).await?);
131    let slices = [IoSlice::new(&bytes[0])];
132    assert_eq!(slices.len(), bytes.len());
133    conn.send_request_with_reply(&slices, fds).await
134}
135pub async fn destroy_drawable<Conn>(conn: &Conn, screen: u32, drawable: u32) -> Result<VoidCookie<'_, Conn>, ConnectionError>
136where
137    Conn: RequestConnection + ?Sized,
138{
139    let request0 = DestroyDrawableRequest {
140        screen,
141        drawable,
142    };
143    let (bytes, fds) = request0.serialize(major_opcode(conn).await?);
144    let slices = [IoSlice::new(&bytes[0])];
145    assert_eq!(slices.len(), bytes.len());
146    conn.send_request_without_reply(&slices, fds).await
147}
148pub async fn get_drawable_info<Conn>(conn: &Conn, screen: u32, drawable: u32) -> Result<Cookie<'_, Conn, GetDrawableInfoReply>, ConnectionError>
149where
150    Conn: RequestConnection + ?Sized,
151{
152    let request0 = GetDrawableInfoRequest {
153        screen,
154        drawable,
155    };
156    let (bytes, fds) = request0.serialize(major_opcode(conn).await?);
157    let slices = [IoSlice::new(&bytes[0])];
158    assert_eq!(slices.len(), bytes.len());
159    conn.send_request_with_reply(&slices, fds).await
160}
161pub async fn get_device_info<Conn>(conn: &Conn, screen: u32) -> Result<Cookie<'_, Conn, GetDeviceInfoReply>, ConnectionError>
162where
163    Conn: RequestConnection + ?Sized,
164{
165    let request0 = GetDeviceInfoRequest {
166        screen,
167    };
168    let (bytes, fds) = request0.serialize(major_opcode(conn).await?);
169    let slices = [IoSlice::new(&bytes[0])];
170    assert_eq!(slices.len(), bytes.len());
171    conn.send_request_with_reply(&slices, fds).await
172}
173pub async fn auth_connection<Conn>(conn: &Conn, screen: u32, magic: u32) -> Result<Cookie<'_, Conn, AuthConnectionReply>, ConnectionError>
174where
175    Conn: RequestConnection + ?Sized,
176{
177    let request0 = AuthConnectionRequest {
178        screen,
179        magic,
180    };
181    let (bytes, fds) = request0.serialize(major_opcode(conn).await?);
182    let slices = [IoSlice::new(&bytes[0])];
183    assert_eq!(slices.len(), bytes.len());
184    conn.send_request_with_reply(&slices, fds).await
185}
186/// Extension trait defining the requests of this extension.
187pub trait ConnectionExt: RequestConnection {
188    fn xf86dri_query_version(&self) -> Pin<Box<dyn Future<Output = Result<Cookie<'_, Self, QueryVersionReply>, ConnectionError>> + Send + '_>>
189    {
190        Box::pin(query_version(self))
191    }
192    fn xf86dri_query_direct_rendering_capable(&self, screen: u32) -> Pin<Box<dyn Future<Output = Result<Cookie<'_, Self, QueryDirectRenderingCapableReply>, ConnectionError>> + Send + '_>>
193    {
194        Box::pin(query_direct_rendering_capable(self, screen))
195    }
196    fn xf86dri_open_connection(&self, screen: u32) -> Pin<Box<dyn Future<Output = Result<Cookie<'_, Self, OpenConnectionReply>, ConnectionError>> + Send + '_>>
197    {
198        Box::pin(open_connection(self, screen))
199    }
200    fn xf86dri_close_connection(&self, screen: u32) -> Pin<Box<dyn Future<Output = Result<VoidCookie<'_, Self>, ConnectionError>> + Send + '_>>
201    {
202        Box::pin(close_connection(self, screen))
203    }
204    fn xf86dri_get_client_driver_name(&self, screen: u32) -> Pin<Box<dyn Future<Output = Result<Cookie<'_, Self, GetClientDriverNameReply>, ConnectionError>> + Send + '_>>
205    {
206        Box::pin(get_client_driver_name(self, screen))
207    }
208    fn xf86dri_create_context(&self, screen: u32, visual: u32, context: u32) -> Pin<Box<dyn Future<Output = Result<Cookie<'_, Self, CreateContextReply>, ConnectionError>> + Send + '_>>
209    {
210        Box::pin(create_context(self, screen, visual, context))
211    }
212    fn xf86dri_destroy_context(&self, screen: u32, context: u32) -> Pin<Box<dyn Future<Output = Result<VoidCookie<'_, Self>, ConnectionError>> + Send + '_>>
213    {
214        Box::pin(destroy_context(self, screen, context))
215    }
216    fn xf86dri_create_drawable(&self, screen: u32, drawable: u32) -> Pin<Box<dyn Future<Output = Result<Cookie<'_, Self, CreateDrawableReply>, ConnectionError>> + Send + '_>>
217    {
218        Box::pin(create_drawable(self, screen, drawable))
219    }
220    fn xf86dri_destroy_drawable(&self, screen: u32, drawable: u32) -> Pin<Box<dyn Future<Output = Result<VoidCookie<'_, Self>, ConnectionError>> + Send + '_>>
221    {
222        Box::pin(destroy_drawable(self, screen, drawable))
223    }
224    fn xf86dri_get_drawable_info(&self, screen: u32, drawable: u32) -> Pin<Box<dyn Future<Output = Result<Cookie<'_, Self, GetDrawableInfoReply>, ConnectionError>> + Send + '_>>
225    {
226        Box::pin(get_drawable_info(self, screen, drawable))
227    }
228    fn xf86dri_get_device_info(&self, screen: u32) -> Pin<Box<dyn Future<Output = Result<Cookie<'_, Self, GetDeviceInfoReply>, ConnectionError>> + Send + '_>>
229    {
230        Box::pin(get_device_info(self, screen))
231    }
232    fn xf86dri_auth_connection(&self, screen: u32, magic: u32) -> Pin<Box<dyn Future<Output = Result<Cookie<'_, Self, AuthConnectionReply>, ConnectionError>> + Send + '_>>
233    {
234        Box::pin(auth_connection(self, screen, magic))
235    }
236}
237
238impl<C: RequestConnection + ?Sized> ConnectionExt for C {}