atomcode_telemetry/queue/
roll.rs1pub const MAX_EVENTS_PER_SEGMENT: u32 = 500;
6pub const MAX_BYTES_PER_SEGMENT: u64 = 512 * 1024;
7
8pub const MAX_SEGMENT_FILES: usize = 50;
9pub const MAX_TOTAL_BYTES: u64 = 5 * 1024 * 1024;
10
11pub fn should_roll(events_in_segment: u32, bytes_in_segment: u64) -> bool {
12 events_in_segment >= MAX_EVENTS_PER_SEGMENT || bytes_in_segment >= MAX_BYTES_PER_SEGMENT
13}
14
15pub fn over_cap(segment_count: usize, total_bytes: u64) -> bool {
16 segment_count > MAX_SEGMENT_FILES || total_bytes > MAX_TOTAL_BYTES
17}
18
19#[cfg(test)]
20mod tests {
21 use super::*;
22 #[test]
23 fn rolls_on_count() {
24 assert!(should_roll(500, 0));
25 assert!(!should_roll(499, 0));
26 }
27 #[test]
28 fn rolls_on_bytes() {
29 assert!(should_roll(0, 512 * 1024));
30 assert!(!should_roll(0, 512 * 1024 - 1));
31 }
32 #[test]
33 fn cap_detection() {
34 assert!(over_cap(51, 0));
35 assert!(over_cap(1, 5 * 1024 * 1024 + 1));
36 assert!(!over_cap(1, 100));
37 }
38}