#![feature(async_fn_in_trait)]
#![feature(decl_macro)]
#![feature(doc_auto_cfg)]
#![feature(iter_intersperse)]
#![feature(lazy_cell)]
#![feature(let_chains)]
#![feature(result_option_inspect)]
#![feature(string_leak)]
#![forbid(unsafe_code)]
mod crypto;
mod format;
#[cfg(feature = "accessor")]
pub mod accessor;
#[cfg(feature = "cache")]
pub mod cache;
#[cfg(feature = "chatbot")]
pub mod chatbot;
#[cfg(feature = "connector")]
pub mod connector;
#[cfg(feature = "orm")]
pub mod database;
#[cfg(feature = "view")]
pub mod view;
pub mod application;
pub mod authentication;
pub mod channel;
pub mod datetime;
pub mod error;
pub mod extension;
pub mod i18n;
pub mod model;
pub mod request;
pub mod response;
pub mod schedule;
pub mod state;
pub mod trace;
pub type Map = serde_json::Map<String, serde_json::Value>;
pub type Record = Vec<(String, apache_avro::types::Value)>;
pub type Uuid = uuid::Uuid;
pub type SharedString = std::borrow::Cow<'static, str>;
pub type BoxFuture<'a, T = ()> =
std::pin::Pin<Box<dyn std::future::Future<Output = T> + Send + 'a>>;