1#![cfg_attr(docsrs_alt, feature(doc_cfg))]
2#![warn(missing_docs)]
3#![allow(clippy::useless_conversion, clippy::module_name_repetitions)]
4#![doc = document_features::document_features!()]
53#![cfg_attr(not(feature = "sd_listen"), deny(unsafe_code))]
57#![cfg_attr(
58 not(feature = "default"),
59 allow(unused_imports, irrefutable_let_patterns, unused_variables)
60)]
61
62mod connection;
63mod error;
64mod listener;
65mod listener_address;
66mod options;
67mod some_socket_addr;
68mod tcp_keepalive_params;
69mod unix_chmod;
70
71#[cfg(feature = "unix_path_tools")]
72#[doc(inline)]
73pub use unix_chmod::UnixChmodVariant;
74
75#[cfg(feature = "socket_options")]
76#[doc(inline)]
77pub use tcp_keepalive_params::TcpKeepaliveParams;
78
79#[doc(inline)]
80pub use options::{SystemOptions, UserOptions};
81
82#[doc(inline)]
83pub use listener_address::ListenerAddress;
84
85#[doc(inline)]
86pub use listener::Listener;
87
88#[allow(unused_imports)]
89pub(crate) use listener::is_connection_error;
90
91#[doc(inline)]
92pub use connection::{Connection, AsyncReadWrite};
93
94#[doc(inline)]
95pub use some_socket_addr::{SomeSocketAddr, SomeSocketAddrClonable};
96
97#[cfg(feature = "clap")]
98#[cfg_attr(docsrs_alt, doc(cfg(feature = "clap")))]
99mod claptools;
100
101#[cfg(feature = "clap")]
102pub use claptools::{ListenerAddressLFlag, ListenerAddressPositional};
103
104#[cfg(feature = "hyper014")]
105#[cfg_attr(docsrs_alt, doc(cfg(feature = "hyper014")))]
106mod hyper014;
107
108#[cfg(feature = "axum07")]
110#[cfg_attr(docsrs_alt, doc(cfg(feature = "axum07")))]
111pub mod axum07;
112
113#[cfg(feature = "axum08")]
114#[cfg_attr(docsrs_alt, doc(cfg(feature = "axum08")))]
115mod axum08;
116
117#[cfg(feature = "tonic010")]
118#[cfg_attr(docsrs_alt, doc(cfg(feature = "tonic010")))]
119mod tonic010 {
120 use tonic_010 as tonic;
121 include!("tonic.rs");
122}
123
124#[cfg(feature = "tonic011")]
125#[cfg_attr(docsrs_alt, doc(cfg(feature = "tonic011")))]
126mod tonic011 {
127 use tonic_011 as tonic;
128 include!("tonic.rs");
129}
130
131#[cfg(feature = "tonic012")]
132#[cfg_attr(docsrs_alt, doc(cfg(feature = "tonic012")))]
133mod tonic012 {
134 use tonic_012 as tonic;
135 include!("tonic.rs");
136}
137
138#[cfg(feature = "tonic013")]
139#[cfg_attr(docsrs_alt, doc(cfg(feature = "tonic013")))]
140mod tonic013 {
141 use tonic_013 as tonic;
142 include!("tonic.rs");
143}
144
145#[cfg(feature = "tonic014")]
146#[cfg_attr(docsrs_alt, doc(cfg(feature = "tonic014")))]
147mod tonic014 {
148 use tonic_014 as tonic;
149 include!("tonic.rs");
150}
151
152#[cfg(feature = "tokio-util")]
153#[cfg_attr(docsrs_alt, doc(cfg(feature = "tokio-util")))]
154mod tokioutil;
155
156#[doc(inline)]
157pub use error::{AcceptError, BindError};