Здравствуйте. Пытаюсь реализовать список на Rust. Вот что у меня получилось:
use std::fmt;
struct Node {
    value: i32,
    link: Option<Box<Node>>,
}
impl Node {
    fn new(value: i32) -> Node {
        Node { value: value, link: None, }
    }
    fn append(&mut self, value: i32) {
        match self.link {
            Some(ref mut node) => node.append(value),
            None => self.link = Some(Box::new(Node::new(value))),
        }
    }
    fn length(&self) -> i32 {
        match self.link {
            Some(ref node) => node.length() + 1,
            None => 1,
        }
    }
    fn insert_after(&mut self, value: i32, after: i32) -> bool {
        if self.value == after {
            self.link = Some(Box::new(Node { value: value, link: self.link.take() }));
            true
        }
        else {
            match self.link {
                Some(ref mut node) => node.insert_after(value, after),
                None => false,
            }
        }
    }
}
impl fmt::Display for Node {
    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
        write!(f, "{}", self.value)
        while
    }
}
fn main() {
    let mut stack = Node::new(1024);
     stack.append(67);
     println!("{}", stack);
}
Подскажите, как можно напечатать все элементы списка? В текущей реализации выводится только первый элемент.



