Skip to main content

spider_util/
constants.rs

1//! Global constants used across the spider-lib workspace.
2//!
3//! This module is a facade that re-exports domain-specific constant groups.
4//! Keep cross-crate and publicly tunable values here; keep local implementation
5//! details near their usage sites.
6
7mod crawler;
8mod downloader;
9mod middleware;
10mod pipeline;
11mod scheduler;
12
13pub use crawler::*;
14pub use downloader::*;
15pub use middleware::*;
16pub use pipeline::*;
17pub use scheduler::*;
18
19#[cfg(test)]
20mod tests {
21    use super::*;
22
23    const _: () = {
24        assert!(DEFAULT_VISITED_CACHE_SIZE <= VISITED_URL_CACHE_CAPACITY);
25        assert!(MAX_PENDING_REQUESTS > 0);
26        assert!(BLOOM_FILTER_HASH_FUNCTIONS > 0);
27        assert!(BLOOM_BUFFER_FLUSH_SIZE > 0);
28    };
29
30    const _: () = {
31        assert!(RATE_LIMIT_MIN_DELAY_MS <= RATE_LIMIT_INITIAL_DELAY_MS);
32        assert!(RATE_LIMIT_INITIAL_DELAY_MS <= RATE_LIMIT_MAX_DELAY_MS);
33        assert!(RATE_LIMIT_MAX_JITTER_MS <= RATE_LIMIT_MAX_DELAY_MS);
34    };
35
36    const _: () = {
37        assert!(CONNECT_TIMEOUT_SECS <= DEFAULT_REQUEST_TIMEOUT_SECS);
38        assert!(HOST_SPECIFIC_POOL_MAX_IDLE_PER_HOST <= DEFAULT_POOL_MAX_IDLE_PER_HOST);
39        assert!(SQLITE_CHANNEL_CAPACITY > 0);
40        assert!(STREAM_JSON_DEFAULT_BATCH_SIZE > 0);
41    };
42}