Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- struct NodeUnit;
- struct Node<S> {
- stack: S
- }
- impl<S> Node<S> {
- fn init() -> Node<()> {
- Node { stack: (()) }
- }
- }
- impl<C, P> Node<(C, P)> {
- fn push<N>(self, next: N) -> Node<(N, (C, P))> {
- Node { stack: (next, self.stack) }
- }
- fn peek(&self) -> &C {
- &self.stack.0
- }
- fn pop(self) -> Node<P> {
- Node { stack: self.stack.1 }
- }
- }
- fn main() {
- let n = Node::init();
- /*
- let n2 = n.push(0u8);
- let n3 = n2.push(1u16);
- println!("{}", n3.peek());
- let n2 = n3.pop();
- println!("{}", n2.peek());
- */
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement