decurse 0.0.4

Macro to make recursive function run on the heap (i.e. no stack overflow).
Documentation
use decurse::decurse;

#[decurse]
fn factorial(x: u32) -> u32 {
	if x == 0 {
		1
	} else {
		x * factorial(x - 1)
	}
}

#[decurse]
fn fibonacci(x: u32) -> u32 {
	if x == 0 || x == 1 {
		1
	} else {
		fibonacci(x - 1) + fibonacci(x - 2)
	}
}

#[decurse]
fn triangular(x: u64) -> u64 {
	if x == 0 {
		0
	} else {
		triangular(x - 1) + x
	}
}

fn main() {
	assert_eq!(factorial(6), 720);
	assert_eq!(fibonacci(10), 89);
	assert_eq!(triangular(200000), 20000100000);
}