pubfnpop(&mut self) ->Option<i32> {match self.head {Link::Empty=> {// TODO }Link::More(node) => {// TODO } };}
> cargo builderror[E0308]: mismatched types--> src/first.rs:27:30|27|pubfnpop(&mut self) ->Option<i32> {|---^^^^^^^^^^^ expected enum `std::option::Option`, found ()||| this function's body doesn'treturn|= note: expected type `std::option::Option<i32>` found type `()`
> cargo builderror[E0507]: cannot move out of borrowed content--> src/first.rs:28:15|28|match self.head {|^^^^^^^^^||| cannot move out of borrowed content| help: consider borrowing here: `&self.head`...32|Link::More(node) => {|---- data moved here|note:move occurs because `node` has type `std::boxed::Box<first::Node>`, which does not implement the `Copy` trait--> src/first.rs:32:24|32|Link::More(node) => {|^^^^
pubfnpop(&mut self) ->Option<i32> {match&self.head {Link::Empty=> {// TODO }Link::More(ref node) => {// TODO } };unimplemented!()}
> cargo buildwarning: unused variable: `node`--> src/first.rs:32:24|32|Link::More(node) => {|^^^^ help: consider prefixing with an underscore: `_node`|= note: #[warn(unused_variables)] on by defaultwarning: field is never used: `elem`--> src/first.rs:13:5|13| elem:i32,|^^^^^^^^^|= note: #[warn(dead_code)] on by defaultwarning: field is never used: `next`--> src/first.rs:14:5|14| next:Link,|^^^^^^^^^^