Существует правило, которое гласит: «Разыменование необработанного указателя должно приводить к правильной несуррогатной кодовой точке Unicode» в Rust.
Я не понимаю, что здесь означает "несуррогатный". Что я знаю, так это то, что UTF-8 имеет кодовые точки переменной длины, так что Vec<u8>
не может быть преобразован непосредственно в UTF-8, и требуется "дополнение".