Easy recursion in Rust, without stack overflows.
https://github.com/orlp/recursive.git
With recursive you can easily make (indirectly) recursive functions without
worrying about stack overflows by marking them as #[recursive]:
use recursive::recursive;
#[recursive]
fn sum(nums: &[u64]) -> u64 {
if let Some((head, tail)) = nums.split_first() {
head + sum(tail)
} else {
0
}
}
Functions marked with #[recursive] will automatically grow the stack size if
it is too small when called. See the
crate docs for details.
recursive is licensed under the MIT license.