| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 |
- //! # libthreema
- //!
- //! The one stop shop for all your Threema needs!
- // We have pretty strict linting rules and it would be a massive hassle having to conditionally
- // compile all `pub(crate)` exposed items, depending on the selected features.
- //
- // The goal is to get it right with features `uniffi`, `wasm` and `cli` enabled (and of course, all
- // feature variants still need to compile).
- //
- // However, it does make sense to disable this from time to time to check for actual issues.
- #![cfg_attr(
- not(all(feature = "uniffi", feature = "wasm", feature = "cli")),
- allow(
- dead_code,
- unfulfilled_lint_expectations,
- unused_crate_dependencies,
- unused_imports,
- reason = "Don't care for non full-feature builds"
- )
- )]
- #![cfg_attr(
- test,
- allow(
- clippy::arithmetic_side_effects,
- clippy::borrow_interior_mutable_const,
- clippy::indexing_slicing,
- clippy::panic,
- clippy::struct_field_names,
- clippy::unchecked_time_subtraction,
- clippy::unreadable_literal,
- clippy::unwrap_used,
- unfulfilled_lint_expectations,
- unstable_features,
- reason = "Be less strict in tests"
- )
- )]
- #![cfg_attr(
- test,
- allow(clippy::large_stack_arrays, reason = "tests do not need to be efficient")
- )]
- // Pin generic-array to version 0.14.7 as 0.14.8 was deprecated and RustCrypto needs to upgrade first.
- // See https://github.com/fizyk20/generic-array/issues/158
- mod external_crate_false_positive_pinned_version {
- use generic_array as _;
- }
- // Avoids dev dependencies used only in examples to be picked up by the linter. Should no longer be
- // necessary once https://github.com/rust-lang/cargo/issues/1982 has been resolved.
- #[cfg(test)]
- mod external_crate_false_positives {
- use anyhow as _;
- }
- #[cfg(feature = "cli")]
- mod external_crate_false_positives_cli_feature {
- use clap as _;
- use futures_util as _;
- use rustls as _;
- use tokio as _;
- use tokio_tungstenite as _;
- }
- // Set up UniFFI scaffolding for UniFFI bindings
- #[cfg(feature = "uniffi")]
- uniffi::setup_scaffolding!();
- /// Compiled low-level protobuf messages.
- #[allow(
- clippy::all,
- clippy::pedantic,
- clippy::restriction,
- dead_code,
- missing_docs,
- rustdoc::broken_intra_doc_links,
- rustdoc::unescaped_backticks,
- reason = "Code generated by prost"
- )]
- pub mod protobuf {
- /// Common protobuf messages.
- pub mod common {
- include!(concat!(env!("OUT_DIR"), "/common.rs"));
- }
- /// End-to-end encrypted messages.
- pub mod csp_e2e {
- include!(concat!(env!("OUT_DIR"), "/csp_e2e.rs"));
- }
- /// Device to Device Protocol messages.
- pub mod d2d {
- include!(concat!(env!("OUT_DIR"), "/d2d.rs"));
- }
- /// Device to Mediator Protocol messages.
- pub mod d2m {
- include!(concat!(env!("OUT_DIR"), "/d2m.rs"));
- }
- /// Data synchronisation messages
- pub mod sync {
- include!(concat!(env!("OUT_DIR"), "/sync.rs"));
- }
- pub use sync as d2d_sync;
- /// Connection Rendezvous Protocol messages.
- pub mod d2d_rendezvous {
- include!(concat!(env!("OUT_DIR"), "/rendezvous.rs"));
- }
- }
- pub mod bindings;
- #[cfg(feature = "cli")]
- pub mod cli;
- pub mod common;
- pub mod crypto;
- pub mod csp;
- pub mod csp_e2e;
- pub mod d2d_rendezvous;
- pub mod d2m;
- pub mod https;
- pub mod id_backup;
- pub mod model;
- pub mod remote_secret;
- pub mod utils;
|