1
1
#![doc = include_str!("../crate-docs.md")]
2
#![forbid(unsafe_code)]
3
#![warn(
4
    clippy::cargo,
5
    missing_docs,
6
    // clippy::missing_docs_in_private_items,
7
    clippy::nursery,
8
    clippy::pedantic,
9
    future_incompatible,
10
    rust_2018_idioms,
11
)]
12
#![allow(
13
    clippy::missing_errors_doc, // TODO clippy::missing_errors_doc
14
    clippy::option_if_let_else,
15
    clippy::multiple_crate_versions, // TODO custodian-password deps + x25119 deps
16
)]
17

            
18
#[cfg(feature = "client")]
19
#[doc(inline)]
20
pub use bonsaidb_client as client;
21
#[doc(inline)]
22
pub use bonsaidb_core as core;
23
#[cfg(feature = "local")]
24
#[doc(inline)]
25
pub use bonsaidb_local as local;
26
#[cfg(feature = "server")]
27
#[doc(inline)]
28
pub use bonsaidb_server as server;
29
#[cfg(all(feature = "client", feature = "server"))]
30
mod any_connection;
31
#[cfg(feature = "cli")]
32
pub mod cli;
33

            
34
/// `VaultKeyStorage` implementors.
35
#[cfg(feature = "keystorage-s3")]
36
pub mod keystorage {
37
    #[cfg(feature = "keystorage-s3")]
38
    #[doc(inline)]
39
    pub use bonsaidb_keystorage_s3 as s3;
40
}
41
#[cfg(all(feature = "client", feature = "server"))]
42
pub use any_connection::*;
43

            
44
1
#[test]
45
1
fn struct_sizes() {
46
10
    fn print_size<T: Sized>() {
47
10
        println!(
48
10
            "{}: {} bytes",
49
10
            std::any::type_name::<T>(),
50
10
            std::mem::size_of::<T>()
51
10
        );
52
10
    }
53
1
    #[cfg(feature = "client")]
54
1
    {
55
1
        print_size::<client::Client>();
56
1
        print_size::<client::RemoteDatabase>();
57
1
        print_size::<client::RemoteSubscriber>();
58
1
    }
59
1
    #[cfg(feature = "local")]
60
1
    {
61
1
        print_size::<local::Storage>();
62
1
        print_size::<local::Database>();
63
1
        print_size::<local::Subscriber>();
64
1
        #[cfg(feature = "local-async")]
65
1
        {
66
1
            print_size::<local::AsyncStorage>();
67
1
            print_size::<local::AsyncDatabase>();
68
1
        }
69
1
    }
70
1
    #[cfg(feature = "server")]
71
1
    {
72
1
        print_size::<server::Server>();
73
1
        print_size::<server::ServerDatabase<server::NoBackend>>();
74
1
    }
75
1
}