fundu_core/
lib.rs

1// Copyright (c) 2023 Joining7943 <joining@posteo.de>
2//
3// This software is released under the MIT License.
4// https://opensource.org/licenses/MIT
5
6#![cfg_attr(docsrs, feature(doc_auto_cfg))]
7#![doc(test(attr(warn(unused))))]
8#![doc(test(attr(allow(unused_extern_crates))))]
9#![warn(clippy::pedantic)]
10#![warn(clippy::default_numeric_fallback)]
11#![warn(clippy::dbg_macro)]
12#![warn(clippy::else_if_without_else)]
13#![warn(clippy::fn_to_numeric_cast_any)]
14#![warn(clippy::get_unwrap)]
15#![warn(clippy::if_then_some_else_none)]
16#![warn(clippy::mixed_read_write_in_expression)]
17#![warn(clippy::partial_pub_fields)]
18#![warn(clippy::rest_pat_in_fully_bound_structs)]
19#![warn(clippy::str_to_string)]
20#![warn(clippy::string_to_string)]
21#![warn(clippy::todo)]
22#![warn(clippy::try_err)]
23#![warn(clippy::undocumented_unsafe_blocks)]
24#![warn(clippy::unneeded_field_pattern)]
25#![allow(clippy::enum_glob_use)]
26#![allow(clippy::missing_errors_doc)]
27#![allow(clippy::missing_panics_doc)]
28#![allow(clippy::missing_safety_doc)]
29#![allow(clippy::module_name_repetitions)]
30#![allow(clippy::must_use_candidate)]
31#![allow(clippy::return_self_not_must_use)]
32
33pub mod config;
34pub mod error;
35pub mod parse;
36pub mod time;
37pub mod util;
38
39#[cfg(test)]
40pub use rstest_reuse;
41
42#[cfg(test)]
43mod tests {
44    use crate::config::Delimiter;
45    use crate::error::{ParseError, TryFromDurationError};
46    use crate::time::{Duration, Multiplier, TimeUnit};
47
48    #[test]
49    fn test_send() {
50        fn assert_send<T: Send>() {}
51        assert_send::<Delimiter>();
52
53        assert_send::<TimeUnit>();
54        assert_send::<Duration>();
55        assert_send::<Multiplier>();
56
57        assert_send::<ParseError>();
58        assert_send::<TryFromDurationError>();
59    }
60
61    #[test]
62    fn test_sync() {
63        fn assert_sync<T: Sync>() {}
64        assert_sync::<Delimiter>();
65
66        assert_sync::<TimeUnit>();
67        assert_sync::<Duration>();
68        assert_sync::<Multiplier>();
69
70        assert_sync::<ParseError>();
71        assert_sync::<TryFromDurationError>();
72    }
73}