zbus/
lib.rs

1#![deny(rust_2018_idioms)]
2#![doc(
3    html_logo_url = "https://raw.githubusercontent.com/z-galaxy/zbus/9f7a90d2b594ddc48b7a5f39fda5e00cd56a7dfb/logo.png"
4)]
5#![doc = include_str!("../README.md")]
6#![doc(test(attr(
7    warn(unused),
8    deny(warnings),
9    allow(dead_code),
10    // W/o this, we seem to get some bogus warning about `extern crate zbus`.
11    allow(unused_extern_crates),
12)))]
13
14#[cfg(doctest)]
15mod doctests {
16    // Repo README.
17    doc_comment::doctest!("../../README.md");
18    // Book markdown checks
19    doc_comment::doctest!("../../book/src/client.md");
20    doc_comment::doctest!("../../book/src/concepts.md");
21    // The connection chapter contains a p2p example.
22    #[cfg(feature = "p2p")]
23    doc_comment::doctest!("../../book/src/connection.md");
24    doc_comment::doctest!("../../book/src/contributors.md");
25    doc_comment::doctest!("../../book/src/introduction.md");
26    doc_comment::doctest!("../../book/src/service.md");
27    #[cfg(feature = "blocking-api")]
28    doc_comment::doctest!("../../book/src/blocking.md");
29    doc_comment::doctest!("../../book/src/faq.md");
30}
31
32#[cfg(all(not(feature = "async-io"), not(feature = "tokio")))]
33mod error_message {
34    #[cfg(windows)]
35    compile_error!(
36        "Either \"async-io\" (default) or \"tokio\" must be enabled. On Windows \"async-io\" is (currently) required for UNIX socket support"
37    );
38
39    #[cfg(not(windows))]
40    compile_error!("Either \"async-io\" (default) or \"tokio\" must be enabled.");
41}
42
43#[cfg(windows)]
44mod win32;
45
46mod dbus_error;
47pub use dbus_error::*;
48
49mod error;
50pub use error::*;
51
52pub mod address;
53pub use address::Address;
54
55mod guid;
56pub use guid::*;
57
58pub mod message;
59pub use message::Message;
60
61pub mod connection;
62/// Alias for `connection` module, for convenience.
63pub use connection as conn;
64pub use connection::Connection;
65#[deprecated(
66    since = "5.0.0",
67    note = "Please use `connection::AuthMechanism` instead"
68)]
69pub use connection::handshake::AuthMechanism;
70
71mod message_stream;
72pub use message_stream::*;
73mod abstractions;
74pub use abstractions::*;
75
76pub mod match_rule;
77pub use match_rule::{MatchRule, OwnedMatchRule};
78
79pub mod proxy;
80pub use proxy::Proxy;
81
82pub mod object_server;
83pub use object_server::ObjectServer;
84
85mod utils;
86pub use utils::*;
87
88#[macro_use]
89pub mod fdo;
90
91#[cfg(feature = "blocking-api")]
92pub mod blocking;
93
94pub use zbus_macros::{DBusError, interface, proxy};
95
96// Required for the macros to function within this crate.
97extern crate self as zbus;
98
99// Macro support module, not part of the public API.
100#[doc(hidden)]
101pub mod export {
102    pub use async_trait;
103    pub use futures_core;
104    pub use ordered_stream;
105    pub use serde;
106}
107
108pub use zbus_names as names;
109pub use zvariant;