Тип &[T]
не имеет метода map
.Если вы посмотрите на сообщение об ошибке, это говорит о том, что метод с именем map
существует, но он не будет работать для &mut &[u8]
или &mut [u8]
, потому что эти типы не реализуют Iterator
*.Массивы и другие коллекции обычно имеют метод или набор методов для создания итератора.Для среза или массива у вас есть выбор: iter()
(итерация по ссылкам) или into_iter()
(итерация по перемещенным значениям и использование исходной коллекции).
Обычно вам также понадобитсячтобы собрать значения в какую-то другую коллекцию:
let res: Vec<u8> = buffer
.iter()
.map(|x| 0xff)
.collect();
* Эти типы немного отличаются от вашего кода (они изменчивы), предполагая, что код, вызывающий эту ошибку, немного отличаетсяиз того, что вы представили в своем вопросе.