pub use inner::StackGuard;
#[cfg(feature = "recursive_protection")]
mod inner {
pub struct StackGuard {
previous_stack_size: usize,
}
impl StackGuard {
pub fn new(min_stack_size: usize) -> Self {
let previous_stack_size = recursive::get_minimum_stack_size();
recursive::set_minimum_stack_size(min_stack_size);
Self {
previous_stack_size,
}
}
}
impl Drop for StackGuard {
fn drop(&mut self) {
recursive::set_minimum_stack_size(self.previous_stack_size);
}
}
}
#[cfg(not(feature = "recursive_protection"))]
mod inner {
pub struct StackGuard;
impl StackGuard {
pub fn new(_min_stack_size: usize) -> Self {
Self
}
}
}