#![deny(unsafe_code)]
#![warn(
missing_docs,
dead_code,
trivial_casts,
trivial_numeric_casts,
unused_import_braces,
unused_qualifications
)]
#![cfg_attr(not(feature = "std"), no_std)]
#[cfg(feature = "std")]
extern crate core;
#[cfg(feature = "alloc")]
#[macro_use]
extern crate alloc;
#[macro_use]
extern crate tracing;
#[cfg(not(feature = "std"))]
pub use ockam_executor::tokio;
#[cfg(feature = "std")]
pub use tokio;
pub mod compat;
pub mod channel_types;
#[cfg(feature = "metrics")]
mod metrics;
pub mod api;
pub mod debugger;
pub mod callback;
mod async_drop;
mod context;
mod delayed;
mod error;
mod executor;
mod messages;
mod node;
mod processor_builder;
mod relay;
mod router;
pub mod storage;
mod worker_builder;
#[cfg(feature = "std")]
pub mod runtime;
pub use context::*;
pub use delayed::*;
pub use error::*;
pub use executor::*;
pub use messages::*;
pub use processor_builder::ProcessorBuilder;
#[cfg(feature = "std")]
pub use storage::database;
pub use worker_builder::WorkerBuilder;
pub use node::{NodeBuilder, NullWorker};
#[cfg(feature = "std")]
use core::future::Future;
#[cfg(feature = "std")]
use tokio::task;
#[doc(hidden)]
#[cfg(feature = "std")]
pub fn spawn<F: 'static>(f: F)
where
F: Future + Send,
F::Output: Send,
{
task::spawn(f);
}
#[cfg(not(feature = "std"))]
pub use crate::tokio::runtime::{block_future, spawn};