progscrape_application/
lib.rs

1mod persist;
2mod story;
3
4pub use persist::{
5    BackerUpper, BackupResult, IntoStoryQuery, MemIndex, PersistError, PersistLocation,
6    ScrapePersistResult, ScrapePersistResultSummarizer, ScrapePersistResultSummary, Shard, Storage,
7    StorageFetch, StorageSummary, StorageWriter, StoryIndex, StoryQuery, StoryScrapePayload,
8};
9pub use story::{
10    Story, StoryEvaluator, StoryIdentifier, StoryRender, StoryScore, StoryScoreConfig, TagSet,
11    TaggerConfig,
12};
13
14macro_rules! timer_start {
15    () => {
16        if ::tracing::event_enabled!(tracing::Level::DEBUG) {
17            Some(std::time::Instant::now())
18        } else {
19            None
20        }
21    };
22}
23pub(crate) use timer_start;
24
25macro_rules! timer_end {
26    ($timer:ident, $message:literal $(, $e:expr )*) => {
27        if let Some(start) = $timer {
28            let elapsed = start.elapsed();
29            if elapsed.as_secs() >= 2 {
30                tracing::info!(concat!($message, " [{:.3}s]") $(,$e)*, elapsed.as_secs_f32());
31            } else {
32                tracing::info!(concat!($message, " [{}ms]") $(,$e)*, elapsed.as_millis());
33            }
34        }
35    };
36}
37pub(crate) use timer_end;
38
39#[cfg(test)]
40mod test {
41    use rstest::*;
42    use tracing_subscriber::EnvFilter;
43
44    #[fixture]
45    #[once]
46    pub fn enable_tracing() -> bool {
47        tracing_subscriber::fmt()
48            .with_env_filter(EnvFilter::from_default_env())
49            .init();
50        true
51    }
52
53    #[fixture]
54    #[once]
55    pub fn enable_slow_tests() -> bool {
56        std::env::var("ENABLE_SLOW_TESTS").is_ok()
57    }
58}