#![warn(missing_docs)]
#![deny(warnings)]
pub mod assembly_buffer;
pub mod async_locks;
pub mod async_peek_stream;
pub mod bytes_writer;
pub mod clone_stream;
#[cfg(not(all(target_arch = "wasm32", target_os = "unknown")))]
pub mod cpu_pool;
#[cfg(feature = "debug-locks")]
pub mod deadlock_detector;
#[cfg(not(all(target_arch = "wasm32", target_os = "unknown")))]
pub mod debugging;
pub mod deferred_stream_processor;
pub mod event_bus;
pub mod eventual;
pub mod eventual_base;
pub mod eventual_value;
pub mod eventual_value_clone;
pub mod flap_detector;
pub mod formatting;
pub mod future_queue;
pub mod future_race_completion;
#[cfg(not(all(target_arch = "wasm32", target_os = "unknown")))]
pub mod igd;
pub mod interval;
pub mod ip_addr_port;
pub mod ip_extra;
pub mod ipc;
pub mod log_unwrap;
pub mod must_join_handle;
pub mod must_join_single_future;
pub mod network_interfaces;
pub mod network_result;
pub mod pin;
pub mod random;
pub mod raw_timestamp;
pub mod resolver;
pub mod single_shot_eventual;
pub mod sleep;
#[cfg(not(all(target_arch = "wasm32", target_os = "unknown")))]
pub mod socket_tools;
pub mod spawn;
pub mod split_url;
pub mod startup_lock;
pub mod static_string_table;
pub mod stop_token;
#[cfg(not(all(target_arch = "wasm32", target_os = "unknown")))]
pub mod system_info;
pub mod tag_lock;
pub mod tick_task;
pub mod timeout;
pub mod timeout_or;
pub mod tools;
pub mod tracked_mutex;
#[cfg(feature = "backtrace")]
pub mod trim_backtrace;
#[cfg(feature = "virtual-network")]
pub mod virtual_network;
#[cfg(all(target_arch = "wasm32", target_os = "unknown"))]
pub mod wasm_tools;
#[cfg(all(target_arch = "wasm32", target_os = "unknown", feature = "tracing"))]
pub mod wasm_tracing;
#[doc(no_inline)]
pub use std::borrow::{Cow, ToOwned};
#[doc(no_inline)]
pub use std::boxed::Box;
#[doc(no_inline)]
pub use std::cell::RefCell;
#[doc(no_inline)]
pub use std::cmp;
#[doc(no_inline)]
pub use std::collections::btree_map::BTreeMap;
#[doc(no_inline)]
pub use std::collections::btree_set::BTreeSet;
#[doc(no_inline)]
pub use std::collections::hash_map::HashMap;
#[doc(no_inline)]
pub use std::collections::hash_set::HashSet;
#[doc(no_inline)]
pub use std::collections::LinkedList;
#[doc(no_inline)]
pub use std::collections::VecDeque;
#[doc(no_inline)]
pub use std::convert::{TryFrom, TryInto};
#[doc(no_inline)]
pub use std::fmt;
#[doc(no_inline)]
pub use std::future::Future;
#[doc(no_inline)]
pub use std::mem;
#[doc(no_inline)]
pub use std::net::{
IpAddr, Ipv4Addr, Ipv6Addr, SocketAddr, SocketAddrV4, SocketAddrV6, ToSocketAddrs,
};
#[doc(no_inline)]
pub use std::ops::{Fn, FnMut, FnOnce};
#[doc(no_inline)]
pub use std::pin::Pin;
#[doc(no_inline)]
pub use std::rc::Rc;
#[doc(no_inline)]
pub use std::str::FromStr;
#[doc(no_inline)]
pub use std::string::{String, ToString};
#[doc(no_inline)]
pub use std::sync::atomic::{AtomicBool, AtomicUsize, Ordering};
#[doc(no_inline)]
pub use std::sync::{Arc, LazyLock, Weak};
#[doc(no_inline)]
pub use std::task;
#[doc(no_inline)]
pub use std::time::Duration;
#[doc(no_inline)]
pub use std::vec::Vec;
cfg_if! {
if #[cfg(all(target_arch = "wasm32", target_os = "unknown"))] {
#[doc(no_inline)]
pub use async_executors::JoinHandle as LowLevelJoinHandle;
} else {
cfg_if! {
if #[cfg(feature="rt-async-std")] {
#[doc(no_inline)]
pub use async_std::task::JoinHandle as LowLevelJoinHandle;
} else if #[cfg(feature="rt-tokio")] {
#[doc(no_inline)]
pub use tokio::task::JoinHandle as LowLevelJoinHandle;
} else {
compile_error!("needs executor implementation");
}
}
}
}
#[doc(inline)]
pub use assembly_buffer::*;
#[doc(inline)]
pub use async_locks::*;
#[doc(inline)]
pub use async_peek_stream::*;
#[doc(inline)]
pub use bytes_writer::*;
#[doc(inline)]
pub use clone_stream::*;
#[doc(inline)]
#[cfg(not(all(target_arch = "wasm32", target_os = "unknown")))]
pub use cpu_pool::*;
#[cfg(feature = "debug-locks")]
#[doc(inline)]
pub use deadlock_detector::*;
#[doc(inline)]
#[cfg(not(all(target_arch = "wasm32", target_os = "unknown")))]
pub use debugging::*;
#[doc(inline)]
pub use deferred_stream_processor::*;
#[doc(inline)]
pub use event_bus::*;
#[doc(inline)]
pub use eventual::*;
#[doc(inline)]
pub use eventual_base::{EventualCommon, EventualResolvedFuture};
#[doc(inline)]
pub use eventual_value::*;
#[doc(inline)]
pub use eventual_value_clone::*;
#[doc(inline)]
pub use flap_detector::*;
#[doc(inline)]
pub use formatting::*;
#[doc(inline)]
pub use future_queue::*;
#[doc(inline)]
pub use future_race_completion::*;
#[doc(inline)]
pub use interval::*;
#[doc(inline)]
pub use ip_addr_port::*;
#[doc(inline)]
pub use ip_extra::*;
#[doc(inline)]
pub use ipc::*;
#[doc(inline)]
pub use log_unwrap::*;
#[doc(inline)]
pub use must_join_handle::*;
#[doc(inline)]
pub use must_join_single_future::*;
#[doc(inline)]
pub use network_interfaces::*;
#[doc(inline)]
pub use network_result::*;
#[doc(inline)]
pub use pin::*;
#[doc(inline)]
pub use random::*;
#[doc(inline)]
pub use raw_timestamp::*;
#[doc(inline)]
pub use resolver::*;
#[doc(inline)]
pub use single_shot_eventual::*;
#[doc(inline)]
pub use sleep::*;
#[doc(inline)]
#[cfg(not(all(target_arch = "wasm32", target_os = "unknown")))]
pub use socket_tools::*;
#[doc(inline)]
pub use spawn::*;
#[doc(inline)]
pub use split_url::*;
#[doc(inline)]
pub use startup_lock::*;
#[doc(inline)]
pub use static_string_table::*;
#[doc(inline)]
pub use stop_token::{StopSource, StopToken, TimedOutError};
#[doc(inline)]
#[cfg(not(all(target_arch = "wasm32", target_os = "unknown")))]
pub use system_info::*;
#[doc(inline)]
pub use tag_lock::*;
#[doc(inline)]
pub use tick_task::*;
#[doc(inline)]
pub use timeout::*;
#[doc(inline)]
pub use timeout_or::*;
#[doc(inline)]
pub use tools::*;
#[doc(inline)]
pub use tracked_mutex::*;
#[doc(inline)]
#[cfg(feature = "backtrace")]
pub use trim_backtrace::*;
#[cfg(all(target_arch = "wasm32", target_os = "unknown"))]
pub use wasm_tools::*;
#[cfg(any(test, feature = "test-util"))]
#[doc(hidden)]
pub mod tests;
cfg_if! {
if #[cfg(feature = "tracing")] {
use tracing::*;
#[macro_export]
macro_rules! debug_target_enabled {
($target:expr) => { enabled!(target: $target, Level::DEBUG) }
}
} else {
use log::*;
#[macro_export]
macro_rules! debug_target_enabled {
($target:expr) => { log_enabled!(target: $target, Level::Debug) }
}
}
}
use bytes::*;
use cfg_if::*;
use futures_util::{AsyncRead, AsyncWrite};
use parking_lot::*;
use thiserror::Error as ThisError;
pub use bytes;
pub use fn_name;
pub use hex;
pub use parking_lot;
pub use shell_words;