【发布时间】:2015-07-29 04:43:12
【问题描述】:
我有一个自定义类型pub struct Foo,我希望能够将字符串转换为Foo 类型。我正在尝试做impl<'a> Into<Foo> for &'a str,但我从this answer 知道我做不到。我还有哪些其他选择?
对于上下文,我正在尝试做类似的事情
trait Foo {
type ArgType;
fn new<I: Into<Self::ArgType>>(arg: I) -> Self;
}
struct MyType;
impl Into<MyType> for str {
fn into(self) -> MyType { MyType }
}
struct Bar;
impl Foo for Bar {
type ArgType = MyType;
fn new<I: Into<MyType>>(arg: I) -> Bar { Bar }
}
【问题讨论】:
-
(对于从字符串转换,您通常应该使用
FromStr特征;然后方法str.parse()也将能够生成您的类型。如果您有可以从字符串转换的类型如果没有错误的可能性,请忽略此建议。) -
例如,我希望
new能够接受转换为MyType的参数。重点不是从字符串转换,而是从将字符串转换为我的类型
标签: rust