pub fn create_parse_arena(source_len: usize) -> bumpalo::Bump {
let capacity = match source_len {
0..=1_000 => 4_096,
1_001..=10_000 => 32_768,
10_001..=100_000 => 262_144,
100_001..=1_000_000 => 1_048_576,
_ => 4_194_304, };
bumpalo::Bump::with_capacity(capacity)
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn arena_capacities_are_reasonable() {
let tiny = create_parse_arena(100);
let small = create_parse_arena(5_000);
let medium = create_parse_arena(50_000);
let large = create_parse_arena(500_000);
tiny.alloc(0u8);
small.alloc(0u8);
medium.alloc(0u8);
large.alloc(0u8);
}
}