尝试从导入的板条箱的结构中使用特征时出现错误“特征中的项目只能在特征处于范围内时使用”

时间:2019-12-26 14:12:13

标签: rust rust-cargo

我正在尝试实现一个功能:

extern crate num_bigint as bigint;

use bigint::{BigUint};

fn encode(bytes: BigUint) -> Vec<char> {

    // determine padding length
    let num_bits = bytes.bits();
    let padding: bool = num_bits % 6 != 0;
    let num_chars: usize = num_bits / 6;

    let bitmask = BigUint::parse_bytes(b"7", 16);

    let mut base64_chars: Vec<char> = Vec::new();

    for idx in num_chars..0 {
        let shifted = bytes << (num_chars * 6);
        use BigUint;
        let c = shifted.to_u8();
    }

    return base64_chars;
}

它在let c = shifted.to_u8()上失败

  

在当前范围内找不到类型为to_u8的名为bigint::BigUint的方法。   bigint::BigUint中找不到方法。   帮助:特征中的项目只能在特征处于范围内时使用

来自c ++背景,在学习Rust方面,我比预期的要挣扎得多。帮助文字试图让我知道什么?我尝试在行前添加using BigUint,但这只是说我在做多余的事情。如何使用此特征?

1 个答案:

答案 0 :(得分:1)

来自@Frxstrem的有用评论!

导入条板箱num-traits并进行以下修复:

        use num_traits::cast::ToPrimitive;
        let c = shifted.to_u8();
相关问题