我正在尝试创建一个快速、灵活和方便的API,该API接受一个可选的字符串参数。我希望用户能够传递以下内容:
- None - "foo" - "foo".to_string() - Some("foo")(相当于"foo") - Some("foo".to_string())(相当于"foo".to_string())
据我所知,处理"foo"或"foo".to_string()的最佳解决方案是Into>。另一方面,处理"foo"或Some("foo")的最佳解决方案是Into>。
因此,我尝试了以下代码,但它无法编译:
- None - "foo" - "foo".to_string() - Some("foo")(相当于"foo") - Some("foo".to_string())(相当于"foo".to_string())
据我所知,处理"foo"或"foo".to_string()的最佳解决方案是Into>。另一方面,处理"foo"或Some("foo")的最佳解决方案是Into>。
因此,我尝试了以下代码,但它无法编译:
fn foo<'a, T, O>(_bar: O)
where
T: Into<Cow<'a, str>>,
O: Into<Option<T>>,
foo(Some("aaa"));
error[E0283]: type annotations required: cannot resolve `_: std::convert::Into<std::borrow::Cow<'_, str>>`
--> src/main.rs:12:5
|
12 | foo(Some("aaa"));
| ^^^
|
note: required by `foo`
--> src/main.rs:3:1
|
3 | / fn foo<'a, T, O>(_bar: O)
4 | | where
5 | | T: Into<Cow<'a, str>>,
6 | | O: Into<Option<T>>,
7 | | {}
| |__^
能让它工作吗?
O
传递了某些具体类型,也不一定存在对应的唯一T
,对吗? - Peter Hall