Reputation: 1
I'm using Rust's structopt
crate, but when I try to compile examples I'm getting the following error,
error[E0277]: the trait bound `String: From<&OsStr>` is not satisfied
--> bin/seq.rs:21:36
|
21 | #[structopt(short, long, parse(from_os_str))]
| ^^^^^^^^^^^ the trait `From<&OsStr>` is not implemented for `String`
|
= help: the following implementations were found:
<String as From<&String>>
<String as From<&mut str>>
<String as From<&str>>
<String as From<Box<str>>>
and 2 others
note: required by `from`
Upvotes: -3
Views: 303
Reputation: 1
You can convert a String
into a OsString
with an infallible conversion, but you can not convert a OsString
into a String
.
This is because an OsStr
accepts things that are not valid Strings
so there is no way to ensure an OsStr
that structopt
parses into can be converted to a String
.
You likely don't need to parse()
at all,
#[structopt(short, long)]
Not
#[structopt(short, long, parse(from_os_str))]
Upvotes: 0