Это делает fields
снова неизменным.
fields
был ранее определен как изменяемый (let mut fields = …;
), для использования с sort_by_key
, который сортирует на месте и требует, чтобы цель была изменяемой,Автор выбрал здесь явное предотвращение дальнейшей изменчивости.
«Понижение» изменяемой привязки к неизменяемому довольно распространено в Rust.
Другой распространенный способ сделать это - использовать выражение блока:
let fields = {
let mut fields = …;
fields.sort_by_key(…);
fields
};