x11rb_async/protocol/
dpms.rs

1// This file contains generated code. Do not edit directly.
2// To regenerate this, run 'make'.
3
4//! Bindings to the `DPMS` 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::dpms::*;
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 get_version<Conn>(conn: &Conn, client_major_version: u16, client_minor_version: u16) -> Result<Cookie<'_, Conn, GetVersionReply>, ConnectionError>
40where
41    Conn: RequestConnection + ?Sized,
42{
43    let request0 = GetVersionRequest {
44        client_major_version,
45        client_minor_version,
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 capable<Conn>(conn: &Conn) -> Result<Cookie<'_, Conn, CapableReply>, ConnectionError>
53where
54    Conn: RequestConnection + ?Sized,
55{
56    let request0 = CapableRequest;
57    let (bytes, fds) = request0.serialize(major_opcode(conn).await?);
58    let slices = [IoSlice::new(&bytes[0])];
59    assert_eq!(slices.len(), bytes.len());
60    conn.send_request_with_reply(&slices, fds).await
61}
62pub async fn get_timeouts<Conn>(conn: &Conn) -> Result<Cookie<'_, Conn, GetTimeoutsReply>, ConnectionError>
63where
64    Conn: RequestConnection + ?Sized,
65{
66    let request0 = GetTimeoutsRequest;
67    let (bytes, fds) = request0.serialize(major_opcode(conn).await?);
68    let slices = [IoSlice::new(&bytes[0])];
69    assert_eq!(slices.len(), bytes.len());
70    conn.send_request_with_reply(&slices, fds).await
71}
72pub async fn set_timeouts<Conn>(conn: &Conn, standby_timeout: u16, suspend_timeout: u16, off_timeout: u16) -> Result<VoidCookie<'_, Conn>, ConnectionError>
73where
74    Conn: RequestConnection + ?Sized,
75{
76    let request0 = SetTimeoutsRequest {
77        standby_timeout,
78        suspend_timeout,
79        off_timeout,
80    };
81    let (bytes, fds) = request0.serialize(major_opcode(conn).await?);
82    let slices = [IoSlice::new(&bytes[0])];
83    assert_eq!(slices.len(), bytes.len());
84    conn.send_request_without_reply(&slices, fds).await
85}
86pub async fn enable<Conn>(conn: &Conn) -> Result<VoidCookie<'_, Conn>, ConnectionError>
87where
88    Conn: RequestConnection + ?Sized,
89{
90    let request0 = EnableRequest;
91    let (bytes, fds) = request0.serialize(major_opcode(conn).await?);
92    let slices = [IoSlice::new(&bytes[0])];
93    assert_eq!(slices.len(), bytes.len());
94    conn.send_request_without_reply(&slices, fds).await
95}
96pub async fn disable<Conn>(conn: &Conn) -> Result<VoidCookie<'_, Conn>, ConnectionError>
97where
98    Conn: RequestConnection + ?Sized,
99{
100    let request0 = DisableRequest;
101    let (bytes, fds) = request0.serialize(major_opcode(conn).await?);
102    let slices = [IoSlice::new(&bytes[0])];
103    assert_eq!(slices.len(), bytes.len());
104    conn.send_request_without_reply(&slices, fds).await
105}
106pub async fn force_level<Conn>(conn: &Conn, power_level: DPMSMode) -> Result<VoidCookie<'_, Conn>, ConnectionError>
107where
108    Conn: RequestConnection + ?Sized,
109{
110    let request0 = ForceLevelRequest {
111        power_level,
112    };
113    let (bytes, fds) = request0.serialize(major_opcode(conn).await?);
114    let slices = [IoSlice::new(&bytes[0])];
115    assert_eq!(slices.len(), bytes.len());
116    conn.send_request_without_reply(&slices, fds).await
117}
118pub async fn info<Conn>(conn: &Conn) -> Result<Cookie<'_, Conn, InfoReply>, ConnectionError>
119where
120    Conn: RequestConnection + ?Sized,
121{
122    let request0 = InfoRequest;
123    let (bytes, fds) = request0.serialize(major_opcode(conn).await?);
124    let slices = [IoSlice::new(&bytes[0])];
125    assert_eq!(slices.len(), bytes.len());
126    conn.send_request_with_reply(&slices, fds).await
127}
128pub async fn select_input<Conn>(conn: &Conn, event_mask: EventMask) -> Result<VoidCookie<'_, Conn>, ConnectionError>
129where
130    Conn: RequestConnection + ?Sized,
131{
132    let request0 = SelectInputRequest {
133        event_mask,
134    };
135    let (bytes, fds) = request0.serialize(major_opcode(conn).await?);
136    let slices = [IoSlice::new(&bytes[0])];
137    assert_eq!(slices.len(), bytes.len());
138    conn.send_request_without_reply(&slices, fds).await
139}
140/// Extension trait defining the requests of this extension.
141pub trait ConnectionExt: RequestConnection {
142    fn dpms_get_version(&self, client_major_version: u16, client_minor_version: u16) -> Pin<Box<dyn Future<Output = Result<Cookie<'_, Self, GetVersionReply>, ConnectionError>> + Send + '_>>
143    {
144        Box::pin(get_version(self, client_major_version, client_minor_version))
145    }
146    fn dpms_capable(&self) -> Pin<Box<dyn Future<Output = Result<Cookie<'_, Self, CapableReply>, ConnectionError>> + Send + '_>>
147    {
148        Box::pin(capable(self))
149    }
150    fn dpms_get_timeouts(&self) -> Pin<Box<dyn Future<Output = Result<Cookie<'_, Self, GetTimeoutsReply>, ConnectionError>> + Send + '_>>
151    {
152        Box::pin(get_timeouts(self))
153    }
154    fn dpms_set_timeouts(&self, standby_timeout: u16, suspend_timeout: u16, off_timeout: u16) -> Pin<Box<dyn Future<Output = Result<VoidCookie<'_, Self>, ConnectionError>> + Send + '_>>
155    {
156        Box::pin(set_timeouts(self, standby_timeout, suspend_timeout, off_timeout))
157    }
158    fn dpms_enable(&self) -> Pin<Box<dyn Future<Output = Result<VoidCookie<'_, Self>, ConnectionError>> + Send + '_>>
159    {
160        Box::pin(enable(self))
161    }
162    fn dpms_disable(&self) -> Pin<Box<dyn Future<Output = Result<VoidCookie<'_, Self>, ConnectionError>> + Send + '_>>
163    {
164        Box::pin(disable(self))
165    }
166    fn dpms_force_level(&self, power_level: DPMSMode) -> Pin<Box<dyn Future<Output = Result<VoidCookie<'_, Self>, ConnectionError>> + Send + '_>>
167    {
168        Box::pin(force_level(self, power_level))
169    }
170    fn dpms_info(&self) -> Pin<Box<dyn Future<Output = Result<Cookie<'_, Self, InfoReply>, ConnectionError>> + Send + '_>>
171    {
172        Box::pin(info(self))
173    }
174    fn dpms_select_input(&self, event_mask: EventMask) -> Pin<Box<dyn Future<Output = Result<VoidCookie<'_, Self>, ConnectionError>> + Send + '_>>
175    {
176        Box::pin(select_input(self, event_mask))
177    }
178}
179
180impl<C: RequestConnection + ?Sized> ConnectionExt for C {}