x11rb_async/protocol/
xinerama.rs

1// This file contains generated code. Do not edit directly.
2// To regenerate this, run 'make'.
3
4//! Bindings to the `Xinerama` 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#[allow(unused_imports)]
28use super::xproto;
29
30pub use x11rb_protocol::protocol::xinerama::*;
31
32/// Get the major opcode of this extension
33async fn major_opcode<Conn: RequestConnection + ?Sized>(conn: &Conn) -> Result<u8, ConnectionError> {
34    let info = conn.extension_information(X11_EXTENSION_NAME).await?;
35    let info = info.ok_or(ConnectionError::UnsupportedExtension)?;
36    Ok(info.major_opcode)
37}
38
39pub async fn query_version<Conn>(conn: &Conn, major: u8, minor: u8) -> Result<Cookie<'_, Conn, QueryVersionReply>, ConnectionError>
40where
41    Conn: RequestConnection + ?Sized,
42{
43    let request0 = QueryVersionRequest {
44        major,
45        minor,
46    };
47    let (bytes, fds) = request0.serialize(major_opcode(conn).await?);
48    let slices = [IoSlice::new(&bytes[0])];
49    assert_eq!(slices.len(), bytes.len());
50    conn.send_request_with_reply(&slices, fds).await
51}
52pub async fn get_state<Conn>(conn: &Conn, window: xproto::Window) -> Result<Cookie<'_, Conn, GetStateReply>, ConnectionError>
53where
54    Conn: RequestConnection + ?Sized,
55{
56    let request0 = GetStateRequest {
57        window,
58    };
59    let (bytes, fds) = request0.serialize(major_opcode(conn).await?);
60    let slices = [IoSlice::new(&bytes[0])];
61    assert_eq!(slices.len(), bytes.len());
62    conn.send_request_with_reply(&slices, fds).await
63}
64pub async fn get_screen_count<Conn>(conn: &Conn, window: xproto::Window) -> Result<Cookie<'_, Conn, GetScreenCountReply>, ConnectionError>
65where
66    Conn: RequestConnection + ?Sized,
67{
68    let request0 = GetScreenCountRequest {
69        window,
70    };
71    let (bytes, fds) = request0.serialize(major_opcode(conn).await?);
72    let slices = [IoSlice::new(&bytes[0])];
73    assert_eq!(slices.len(), bytes.len());
74    conn.send_request_with_reply(&slices, fds).await
75}
76pub async fn get_screen_size<Conn>(conn: &Conn, window: xproto::Window, screen: u32) -> Result<Cookie<'_, Conn, GetScreenSizeReply>, ConnectionError>
77where
78    Conn: RequestConnection + ?Sized,
79{
80    let request0 = GetScreenSizeRequest {
81        window,
82        screen,
83    };
84    let (bytes, fds) = request0.serialize(major_opcode(conn).await?);
85    let slices = [IoSlice::new(&bytes[0])];
86    assert_eq!(slices.len(), bytes.len());
87    conn.send_request_with_reply(&slices, fds).await
88}
89pub async fn is_active<Conn>(conn: &Conn) -> Result<Cookie<'_, Conn, IsActiveReply>, ConnectionError>
90where
91    Conn: RequestConnection + ?Sized,
92{
93    let request0 = IsActiveRequest;
94    let (bytes, fds) = request0.serialize(major_opcode(conn).await?);
95    let slices = [IoSlice::new(&bytes[0])];
96    assert_eq!(slices.len(), bytes.len());
97    conn.send_request_with_reply(&slices, fds).await
98}
99pub async fn query_screens<Conn>(conn: &Conn) -> Result<Cookie<'_, Conn, QueryScreensReply>, ConnectionError>
100where
101    Conn: RequestConnection + ?Sized,
102{
103    let request0 = QueryScreensRequest;
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}
109/// Extension trait defining the requests of this extension.
110pub trait ConnectionExt: RequestConnection {
111    fn xinerama_query_version(&self, major: u8, minor: u8) -> Pin<Box<dyn Future<Output = Result<Cookie<'_, Self, QueryVersionReply>, ConnectionError>> + Send + '_>>
112    {
113        Box::pin(query_version(self, major, minor))
114    }
115    fn xinerama_get_state(&self, window: xproto::Window) -> Pin<Box<dyn Future<Output = Result<Cookie<'_, Self, GetStateReply>, ConnectionError>> + Send + '_>>
116    {
117        Box::pin(get_state(self, window))
118    }
119    fn xinerama_get_screen_count(&self, window: xproto::Window) -> Pin<Box<dyn Future<Output = Result<Cookie<'_, Self, GetScreenCountReply>, ConnectionError>> + Send + '_>>
120    {
121        Box::pin(get_screen_count(self, window))
122    }
123    fn xinerama_get_screen_size(&self, window: xproto::Window, screen: u32) -> Pin<Box<dyn Future<Output = Result<Cookie<'_, Self, GetScreenSizeReply>, ConnectionError>> + Send + '_>>
124    {
125        Box::pin(get_screen_size(self, window, screen))
126    }
127    fn xinerama_is_active(&self) -> Pin<Box<dyn Future<Output = Result<Cookie<'_, Self, IsActiveReply>, ConnectionError>> + Send + '_>>
128    {
129        Box::pin(is_active(self))
130    }
131    fn xinerama_query_screens(&self) -> Pin<Box<dyn Future<Output = Result<Cookie<'_, Self, QueryScreensReply>, ConnectionError>> + Send + '_>>
132    {
133        Box::pin(query_screens(self))
134    }
135}
136
137impl<C: RequestConnection + ?Sized> ConnectionExt for C {}