this post was submitted on 16 Jun 2024
28 points (96.7% liked)
Rust
5651 readers
11 users here now
Welcome to the Rust community! This is a place to discuss about the Rust programming language.
Wormhole
Credits
- The icon is a modified version of the official rust logo (changing the colors to a gradient and black background)
founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
Option<T>
has aFrom<T>
implementation that lets you writeOption::from($file_path).map(|path| path.to_string())
to accept both cases in the same expression.https://doc.rust-lang.org/std/option/enum.Option.html#impl-From%3CT%3E-for-Option%3CT%3E
This does not work, as rust cannot infer the type of
path
A generic impl is impossible.
Imagine you want to turn a
Into<String>
toSome(val.into())
andOption<Into<String>>
toval.map(Into::into)
.Now, what if there is a type
T
whereimpl From <Option<T>> for String
is implemented?Then we would have a conflict.
If you only need this for
&str
andString
, then you can add a wrapper typeOptionStringWrapper(Option<String>)
and implementFrom<T> for OptionStringWrapper
for all concrete type cases you want to support, and go from there.Right, there may be too many unknowns involved. 🤔