Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗rsSpEdBt 207 of 288 menu
◀ ▶

Байты файла при сборке в Rust

Не всякий файл нужно трактовать как текст. Штатная запись для байт читает файл целиком и дает срез &'static [u8]: данные лежат в бинарнике и живут весь запуск, без копии в Vec и без чтения с диска в рантайме.

Рядом с main.rs лежит note.bin; вшиваем его и выводим длину:

fn main() { let raw = include_bytes!("note.bin"); println!("{}", raw.len()); }

Срез можно обойти по индексу или передать туда, где ждут именно байты, например при разборе простого формата или проверке сигнатуры в начале файла:

fn main() { let raw = include_bytes!("note.bin"); if raw.len() >= 2 { println!("{}", raw[0]); println!("{}", raw[1]); } }

Дан файл:

AB

Положите байты в raw и выведите raw.len().

Дан файл:

x

Вшейте содержимое в data, выведите первый байт как число и длину среза.

Скажите, чем тип результата записи для байт отличается от строки, которую дает запись для текста, если оба файла лежат рядом с main.rs.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить