如何将切片转换为生锈中的数组引用

时间:2018-04-20 10:18:48

标签: rust

我想这样做

// I cannot alter this function
fn a_ffi_function(buffer: &[u8; 16]) {
    unsafe {

    }
}

fn main() {
    let buffer = [0u8; 64];
    for i in 0..4 {
        a_ffi_function(&buffer[i*16..(i+1)*16]);
    }
}

但编译器不允许我

error[E0308]: mismatched types
  --> src/main.rs:10:24
   |
10 |         a_ffi_function(&buffer[i*16..(i+1)*16]);
   |                        ^^^^^^^^^^^^^^^^^^^^^^^ expected array of 16 elements, found slice
   |
   = note: expected type `&[u8; 16]`
              found type `&[u8]`

我无法找到从&[u8]投射到&[u8; 16]的方法。我该怎么办?

我不想复制内存。此应用程序是时间敏感的。

我每晚使用rustc 1.27.0(ad610bed8 2018-04-11)。

0 个答案:

没有答案