ctoolbox/
lib.rs

1// This does use some unsafe code for IPC (because shared memory requires it);
2// those cases are marked with `#[allow(unsafe_code)]`.
3#![deny(unsafe_code)]
4#![deny(unused_must_use)]
5#![warn(clippy::pedantic)]
6#![deny(clippy::as_conversions)]
7#![deny(clippy::unnecessary_fallible_conversions)]
8#![deny(clippy::try_err)]
9#![deny(clippy::ok_expect)]
10#![warn(clippy::expect_used)]
11#![warn(clippy::panic)]
12#![warn(clippy::indexing_slicing)]
13#![warn(clippy::unwrap_used)]
14#![warn(clippy::unwrap_in_result)]
15#![warn(clippy::panic_in_result_fn)]
16#![warn(clippy::map_err_ignore)]
17#![allow(clippy::collapsible_if)]
18#![allow(clippy::must_use_candidate)]
19#![allow(clippy::needless_range_loop)]
20#![allow(clippy::missing_panics_doc)]
21#![allow(clippy::missing_errors_doc)]
22pub mod formats;
23pub mod io;
24pub mod network;
25pub mod renderer;
26pub mod storage;
27pub mod workspace;
28
29pub mod cli;
30pub mod utilities;
31
32use crate::storage::get_storage_dir;
33#[allow(clippy::wildcard_imports)]
34use crate::utilities::*;
35pub use ctb_test_macro::ctb_test;
36use include_dir::{Dir, include_dir};
37pub use serde_json::json as utilities_serde_json_json;
38
39// Note to self: If tons of tests like cli::tests::test_get_help_bytes fail, it
40// may be because there's some bug where these are flaky. Run `cargo build`
41// again to regenerate them. (FIXME)
42static PROJECT_DIR: Dir = include_dir!("$CARGO_MANIFEST_DIR/../built/assets");
43static SOURCE_ZIP: Dir = include_dir!("$CARGO_MANIFEST_DIR/../built/src");
44
45#[macro_export]
46macro_rules! json {
47    ($($json:tt)+) => {
48        $crate::utilities_json_json!($($json)+)
49    };
50}
51
52#[cfg(test)]
53mod tests {
54
55    #[crate::ctb_test]
56    fn it_works() {
57        assert_eq!(2 + 2, 4);
58    }
59}