Rust 如何使用GenericArray?
在下面的代码中,我无法将字节数组转换为泛型数组。编译器告诉我给一个类型“bytes”,比如Rust 如何使用GenericArray?,rust,Rust,在下面的代码中,我无法将字节数组转换为泛型数组。编译器告诉我给一个类型“bytes”,比如generic\u array::GenericArray,但我不知道用什么作为“N” 我发现N必须是ArrayLength类型,我被困在这里,因为我看不到要传递的大小的链接 fn main() { use aes::block_cipher_trait::generic_array::GenericArray; let phrase = "Le Rust tu comprendras
generic\u array::GenericArray
,但我不知道用什么作为“N”
我发现N必须是ArrayLength类型,我被困在这里,因为我看不到要传递的大小的链接
fn main() {
use aes::block_cipher_trait::generic_array::GenericArray;
let phrase = "Le Rust tu comprendras jeune padawan !";
println!("my phrase {:?}", &phrase);
let b = phrase.as_bytes();
println!("my bytes {:?} len : {}", &b, b.len());
let bytes = GenericArray::clone_from_slice(&b[0..16]);
println!("my bytes {:?}", &bytes);
}
aes::block\u cipher\u trait::generic\u array只是一个副本,因此值得仔细阅读那里的文档
GenericArray
中的第二个类型参数在某种意义上表示GenericArray
的长度<默认情况下,code>generic_array使用板条箱typenum
中的类型(尽管经过一些努力,您可以提供自己的类型-您只需要为它们实现必要的特性)
与aes
将generic\u array
作为公共依赖项提供的方式非常相似,generic\u array
在其树中有一个typenum
的副本,因此您可以像这样使用其类型:
fn main() {
use aes::block_cipher_trait::generic_array::{typenum::U16, GenericArray};
let phrase = "Le Rust tu comprendras jeune padawan !";
println!("my phrase {:?}", &phrase);
let b = phrase.as_bytes();
println!("my bytes {:?} len : {}", &b, b.len());
let bytes: GenericArray<_, U16> = GenericArray::clone_from_slice(&b[0..16]);
println!("my bytes {:?}", &bytes);
}
fn main(){
使用aes::block\u cipher\u trait::generic\u数组:{typenum::U16,GenericArray};
让短语“Le Rust tu comprendras jeune学徒!”;
println!(“我的短语{:?}”,和短语);
设b=短语。如_字节();
println!(“我的字节{:?}len:{},&b,b.len());
let bytes:GenericArray=GenericArray::从_切片克隆_(&b[0..16]);
println!(“我的字节{:?}”,和字节);
}
请注意,我直接使用了generic_array
。操场没有aes的aes
板条箱。)
这里,我们使用了
typenum::U16
,因为我们需要长度为16的数组。非常感谢您简洁的回答!