impl<T> From<T> for Option<T> {
fn from(val: T) -> Option<T> {
Some(val)
}
}
这是多么习惯吗?考虑以下示例:
fn do_things(parameters: &Foo, optional_argument: impl Into<Option<Duration>>) {
let optional_argument = optional_argument.into();
// use it...
}
如果您看到了说明文件,则(或多或少)很清楚(如果您知道,此特征已实现)。但是,如果看到代码,您可能会感到困惑:
do_things(params, Duration::from_millis(100));
使用起来很好还是应该避免?
答案 0 :(得分:1)
这种模式并不常见,但相当容易理解。如果方便使用您的图书馆,应该可以。
我认为拥有do_stuff
和do_stuff_with_timeout
函数更为常见。