Rust 即使使用::from I';m获取所需的类型参数时出错

Rust 即使使用::from I';m获取所需的类型参数时出错,rust,Rust,有了这个功能, fn incr(mut foo:A)->A{ foo+=A::from(1); 福 } 我越来越 错误[E0308]:类型不匹配 -->src/lib.rs:2:20 | 1 | fn增量(mut foo:A)->A{ |-此类型参数 2 | foo+=A::from(1); |^应为类型参数“A”,找到整数 | =注意:应为类型参数'A` 找到类型`{integer}` =帮助:必须约束类型参数以匹配其他类型 =注:有关更多信息,请访问https://doc.rust-lan

有了这个功能,

fn incr(mut foo:A)->A{
foo+=A::from(1);
福
}
我越来越

错误[E0308]:类型不匹配
-->src/lib.rs:2:20
|
1 | fn增量(mut foo:A)->A{
|-此类型参数
2 | foo+=A::from(1);
|^应为类型参数“A”,找到整数
|
=注意:应为类型参数'A`
找到类型`{integer}`
=帮助:必须约束类型参数以匹配其他类型
=注:有关更多信息,请访问https://doc.rust-lang.org/book/ch10-02-traits.html#traits-作为参数

我如何才能做到这一点?

您需要指定
A
有一个特性绑定,它需要从
实现

fn incr(mut foo:A)->A{
foo+=A::from(1);
福
}

通常您应该使用
into()
,这会使错误更加清晰或完整……非常详细
fn incr<A: std::ops::AddAssign + From<u8> > (mut foo: A) -> A {
    foo += A::from(1);
    foo
}