eww_triad/lib.rs
1//! Rust client for Triad native IPC.
2//!
3//! Most Rust users should start with [`Client`]:
4//!
5//! ```no_run
6//! use eww_triad::{Client, QueryRequest};
7//!
8//! # fn main() -> eww_triad::Result<()> {
9//! let client = Client::connect_default()?;
10//! let state = client.eww_state_once()?;
11//! let capabilities = client.query(QueryRequest::Capabilities)?;
12//! # let _ = (state, capabilities);
13//! # Ok(())
14//! # }
15//! ```
16//!
17//! The client talks to Triad's Unix socket directly. The `eww-triad` binary
18//! wraps the same client for shell and Eww use.
19
20#[cfg(feature = "cli")]
21#[doc(hidden)]
22pub mod cli;
23pub mod client;
24pub mod error;
25#[doc(hidden)]
26pub mod ipc;
27#[doc(hidden)]
28pub mod protocol;
29#[doc(hidden)]
30pub mod state;
31#[doc(hidden)]
32pub mod view;
33
34#[cfg(feature = "tokio")]
35pub use client::AsyncClient;
36pub use client::{BindingKind, Client, EventFilter, LayoutTarget, QueryRequest};
37pub use error::{Error, Result};
38pub use view::{EwwState, OutputFormat};