首页 > 解决方案 > 为什么我的 TryFrom 实现没有> 封面 TryFrom>?

问题描述

当我尝试编译这一行时,opt.positionals = Positionals::try_from(opt.args).unwrap();我收到一个关于未实现特征的错误。这个特征应该像我一样一般地实现TryFrom<Vec<T>>

这是错误,

error[E0277]: the trait bound `Positionals: TryFrom<Vec<String>>` is not satisfied
  --> bin/seq.rs:83:20
   |
83 |     opt.positionals = Positionals::try_from(opt.args).unwrap();
   |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the trait `TryFrom<Vec<String>>` is not implemented for `Positionals`
   |
   = help: the following implementations were found:
             <Positionals as TryFrom<Vec<T>>>

这是我对特征的实现,

use std::convert::TryFrom;
impl<T: Debug + AsRef<String> + Into<String> + Clone> TryFrom<Vec<T>> for Positionals {

为什么我的实施不TryFrom<Vec<T>>涵盖具体内容TryFrom<Vec<String>>,我该如何解决这个问题?

标签: rusttraits

解决方案


String不执行AsRef<String>。您可以使用AsRef<str>orBorrow<String>代替。


推荐阅读