7

&[u8]スライスの内容をコピーするにはどうすればよいですか?

入力としてバッファを受け取り、指定されたキーで各バイトを XOR して最終結果を返す関数を作成しようとしています。

入力バッファを台無しにしたくありません。

pub fn xor_buffer(buffer_in: &[u8], key: char) -> &[u8] {

    let mut buffer_out = buffer_in.clone();

    for byte in &mut buffer_out[..] {
        *byte ^= key as u8;
    }

    buffer_out
}

このコードは、次のコンパイル時エラーを生成します。

src/test.rs:29:22: 29:32 error: cannot borrow immutable borrowed content `*buffer_out` as mutable
src/test.rs:29     for byte in &mut buffer_out[..] {
                                               ^~~~~~~~~~

私は何か間違ったことをしなければならないことを知っています。

どんな助けでも大歓迎です。

4

1 に答える 1