Rust 未为(实现特征的事物)实现特征

Rust 未为(实现特征的事物)实现特征,rust,traits,Rust,Traits,所以,Rust想告诉我一个谎言,我想,但也许我只是疯了 fn get_random<T, R>(range: Range<T>, rng: &mut R) -> T where T: SampleRange + PartialOrd, R: Rng { range.ind_sample(&mut rng) } fn get_random(范围:范围,rng:&mut R)->T 式中T:SampleRange+P

所以,Rust想告诉我一个谎言,我想,但也许我只是疯了

fn get_random<T, R>(range: Range<T>, rng: &mut R) -> T
    where T: SampleRange + PartialOrd,
          R: Rng
{
    range.ind_sample(&mut rng)
}
fn get_random(范围:范围,rng:&mut R)->T
式中T:SampleRange+PartialOrd,
R:Rng
{
范围索引样本(&mut rng)
}
那里的where子句应该表明R肯定实现了Rng,否则。。。好吧,来吧,对吗?但当我试图编译它时,它断断续续地发誓rng没有实现rand::rng

到底是什么

rustc 1.0.0-每晚(cfea8ec41 2015-03-10)(制造日期:2015-03-11)(以防您怀疑)


以下是生成的实际错误:

<anon>:10:11: 10:31 error: the trait `rand::Rng` is not implemented for the type `&mut R` [E0277]
<anon>:10     range.ind_sample(&mut rng)
                    ^~~~~~~~~~~~~~~~~~~~

请张贴足够的代码,以便我们可以复制和粘贴它,它编译与相同的错误。这就是所谓的,它可以帮助我们更快地回答您的问题,甚至可以帮助您更好地理解它。还包括准确的错误,而不是“它上下发誓”。
use std::rand::distributions::range::SampleRange;
use std::rand::Rng;
use std::rand::distributions::Range;
use std::rand::distributions::IndependentSample;

 fn get_random<T, R>(range: Range<T>, rng: &mut R) -> T
    where T: SampleRange + PartialOrd,
          R: Rng
{
    range.ind_sample(rng)
}

fn main() {}