#![doc = include_str!("../README.md")]
#![allow(clippy::explicit_auto_deref, clippy::disallowed_macros)]
#![warn(missing_docs)]
#![warn(rust_2018_idioms)]
#![warn(clippy::correctness)]
#![cfg_attr(not(test), warn(clippy::perf))]
#![cfg_attr(
    doc,
    warn(
        rustdoc::bare_urls,
        rustdoc::broken_intra_doc_links,
        rustdoc::invalid_codeblock_attributes,
        rustdoc::invalid_rust_codeblocks,
    )
)]

#[allow(unused_imports)]
#[macro_use]
extern crate ext_trait;
#[allow(unused_extern_crates)]
extern crate ffi_sdk;
#[macro_use]
extern crate macro_rules_attribute;

#[cfg(test)]
extern crate self as dittolive_ditto;

#[cfg(feature = "__internal-testing")]
pub mod doctest_helpers;

#[macro_use]
#[doc(hidden)]
/// Internal utility functions / macros
pub mod utils;

pub mod disk_usage;

mod ditto;
pub use crate::ditto::{
    init::{DittoAuthExpirationHandler, DittoConfig, DittoConfigConnect},
    DatabaseId, Ditto, LogLevel,
};

pub mod dql;

pub mod error;

#[cfg(feature = "preview")]
pub mod preview;

pub mod identity;

pub mod fs;

pub mod logger;

pub mod prelude;

pub mod presence;

pub mod small_peer_info;

pub mod store;

pub mod sync;

pub mod transport;
