Функция копирования из одного потока в другой переехала из std в alloc

01.08.2026

Функция копирования данных между потоками ввода-вывода переехала из std в alloc. То есть она стала доступна в коде, работающем без стандартной библиотеки.

Что это за функция

Она копирует содержимое одного потока в другой, возвращая число переданных байт. Основное применение — перекачивание данных между файлами и сетевыми соединениями без ручного буфера.

Почему она мешала без стандартной библиотеки

Стандартная библиотека нужна не только ради аллокатора и коллекций. Часть её функций реализована поверх системных вызовов, которых в коде без неё просто нет — а часть, наоборот, требует её для своей работы.

Именно из-за таких зависимостей сформировался перечень того, что нельзя использовать без стандартной библиотеки, и в нём оказалась вполне безобидная функция копирования.

Что даёт перенос

Код, работающий без стандартной библиотеки, избавляется от необходимости писать копирование вручную — со своим буфером и своей обработкой коротких чтений. Такие реализации в крейтах расходятся между собой, и перенос снимает ещё один источник расхождений.

Прежний путь сохранён как устаревший переходник, то есть переход не ломает существующий код.

Оригинал

move std::io::copy to alloc::io

Упоминаний: 1 · Просмотров: 2