gst_client/resources/debug.rs
1//! Define [`struct@Debug`] which encapsulate methods
2//! of [`Debug API`][1] for [`GStreamer`][2]
3//!
4//! Details about [`GStreamer Debugging`]
5//!
6//! [GStreamer]: https://gstreamer.freedesktop.org/
7//! [1]: https://developer.ridgerun.com/wiki/index.php/GStreamer_Daemon_-_C_API#Debug
8//! [2]: https://developer.ridgerun.com/wiki/index.php/GStreamer_Debugging
9use crate::{gstd_types, Error, GstClient};
10
11/// Performs requests to `debug/` endpoint
12#[derive(Debug, Clone)]
13pub struct Debug {
14 client: GstClient,
15}
16
17impl Debug {
18 pub(crate) fn new(client: &GstClient) -> Self {
19 Self {
20 client: client.clone(),
21 }
22 }
23 /// Performs `PUT debug/enable?name=enable`
24 /// API request, returning the parsed [`gstd_types::SuccessResponse`]
25 ///
26 /// # Errors
27 ///
28 /// If API request cannot be performed, or fails.
29 /// See [`Error`] for details.
30 pub async fn enable(&self) -> Result<gstd_types::SuccessResponse, Error> {
31 let resp = self.client.put("debug/enable?name=true").await?;
32 self.client.process_resp(resp).await
33 }
34
35 /// Performs `PUT debug/enable?name=false`
36 /// API request, returning the parsed [`gstd_types::SuccessResponse`]
37 ///
38 /// # Errors
39 ///
40 /// If API request cannot be performed, or fails.
41 /// See [`Error`] for details.
42 pub async fn disable(&self) -> Result<gstd_types::SuccessResponse, Error> {
43 let resp = self.client.put("debug/enable?name=false").await?;
44 self.client.process_resp(resp).await
45 }
46
47 /// Performs `PUT debug/reset?name={value}`
48 /// API request, returning the parsed [`gstd_types::SuccessResponse`]
49 ///
50 /// # Errors
51 ///
52 /// If API request cannot be performed, or fails.
53 /// See [`Error`] for details.
54 pub async fn reset(&self, value: bool) -> Result<gstd_types::SuccessResponse, Error> {
55 let val = if value { "true" } else { "false" };
56 let resp = self.client.put(&format!("debug/reset?name={val}")).await?;
57 self.client.process_resp(resp).await
58 }
59 /// Performs `PUT debug/threshold?name={value}`
60 /// API request, returning the parsed [`gstd_types::SuccessResponse`]
61 ///
62 /// # Errors
63 ///
64 /// If API request cannot be performed, or fails.
65 /// See [`Error`] for details.
66 pub async fn threshold(&self, value: &str) -> Result<gstd_types::SuccessResponse, Error> {
67 let resp = self
68 .client
69 .put(&format!("debug/threshold?name={value}"))
70 .await?;
71 self.client.process_resp(resp).await
72 }
73 /// Performs `PUT debug/color?name=true`
74 /// API request, returning the parsed [`gstd_types::SuccessResponse`]
75 ///
76 /// # Errors
77 ///
78 /// If API request cannot be performed, or fails.
79 /// See [`Error`] for details.
80 pub async fn enable_color(&self) -> Result<gstd_types::SuccessResponse, Error> {
81 let resp = self.client.put("debug/color?name=true").await?;
82 self.client.process_resp(resp).await
83 }
84 /// Performs `PUT debug/color?name=false`
85 /// API request, returning the parsed [`gstd_types::SuccessResponse`]
86 ///
87 /// # Errors
88 ///
89 /// If API request cannot be performed, or fails.
90 /// See [`Error`] for details.
91 pub async fn disable_color(&self) -> Result<gstd_types::SuccessResponse, Error> {
92 let resp = self.client.put("debug/color?name=false").await?;
93 self.client.process_resp(resp).await
94 }
95}