//! This crate defines the types that Ditto uses as part of its FFI.
//!
//! Instead of importing this crate directly, [see Ditto's Rust SDK at
//! `dittolive_ditto`][0].
//!
//! [0]: https://docs.rs/dittolive_ditto

#![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_extern_crates, clippy::all)]
#[cfg(feature = "safer-ffi-internal")]
extern crate safer_ffi_internal as safer_ffi;

#[cfg(feature = "experimental-pk")]
/// See [`PeerPubkey`](crate::peer_pubkey::PeerPubkey)
pub mod peer_pubkey;

#[cfg(feature = "experimental-bus")]
/// The (experimental) Stream-based low-level FFI for the the Bus.
///
/// This FFI is not intended to be used directly, but instead through the API provided by the
/// [`bus`] module.
pub mod bus_ffi;

#[cfg(feature = "experimental-bus")]
/// The (experimental) Stream-based API for the the Bus.
pub mod bus;
