fn take(&mut self) -> Incomming {
        let empty = Incomming::new(
            self.block_number,
            self.state_root,
            self.last_block_hash,
            self.timestamp,
            self.block_version,
        );
        std::mem::replace(self, empty)
    }
// Take current state, replace original with empty
Take current state, replace original with empty
Take current state replace original with empty
fn take(&mut self) -> Incomming {
        let empty = Incomming::new(
            self.block_number,
            self.state_root,
            self.last_block_hash,
            self.timestamp,
            self.block_version,
        );
        std::mem::replace(self, empty)
    }
fn take ( & mut self ) -> Incomming { let empty = Incomming :: new ( self . block_number , self . state_root , self . last_block_hash , self . timestamp , self . block_version , ) ; std :: mem :: replace ( self , empty ) }
Take current state, replace original with empty
Take current state replace original with empty
&mut self
&mut self