progscrape_application/
lib.rs1mod 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}