Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Добавив немного магии, можно получить обратно нормальный вывод чисел:
impl ::std::fmt::Display for Zero {
fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
write!(f, "0")
}
}
impl<T : Nat + ::std::fmt::Display> ::std::fmt::Display for Succ<T> {
fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
let res = format!("{}", T::new());
match res.parse::<i32>() {
Ok(n) => write!(f, "{}", 1 + n),
Err(e) => write!(f, "ERROR")
}
}
}
Складываем числа на Rust