pub fn consume<T>(mut self) -> Result<T, Self>
    where
        for<'b> T: FromZvalMut<'b>,
    {
        self.zval
            .as_mut()
            .and_then(|zv| T::from_zval_mut(zv.dereference_mut()))
            .ok_or(self)
    }
Attempts to consume the argument, converting the inner type into `T`.
Upon success, the result is returned in a [`Result`].

As this function consumes, it cannot return a reference to the
underlying zval.

# Errors

If the conversion fails (or the argument contains no value), the
argument is returned in an [`Err`] variant.
src/args.rs