Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to unwrap a &Result<_,_>?

Tags:

rust

What is a good way to extract data from a &Result type?

In my specific case, I have a &Result<DirEntry, Error> type, which I can't unwrap because I don't own the object. I tried to dereference and clone it (*left_item).clone(), but that just gives me a error with the note:

the method `clone` exists but the following trait bounds were not satisfied:
`std::result::Result<std::fs::DirEntry, std::io::Error> : std::clone::Clone`
like image 561
8176135 Avatar asked May 23 '18 07:05

8176135


People also ask

How do you unwrap a substance?

When creating a new project or re-importing a mesh into an existing project, make sure the setting "Auto-unwrap" is checked. If disabled, the process will be skipped and mesh UVs will remain as-is.

How do you unwrap in Maya?

To open the Unfold UV Tool or Optimize UV Tool, select it from the Unfold section in the UV Toolkit or select Tools > Unfold or Tools > Optimize from the UV Editor menus. The Unfold UV Tool lets you interactively unwrap the UV mesh for a polygonal object while trying to ensure that the UVs do not overlap.


1 Answers

You are looking for Result::as_ref:

Converts from Result<T, E> to Result<&T, &E>.

Produces a new Result, containing a reference into the original, leaving the original in place.

The following code solves your problem:

let entry: &DirEntry = result.as_ref().unwrap();

For a mutable version, Result::as_mut is provided.

like image 73
Tim Diekmann Avatar answered Nov 07 '22 16:11

Tim Diekmann