Макрос include_bytes!
Макрос include_bytes! читает указанный файл во время компиляции
и возвращает ссылку на статический массив байтов &'static [u8; N],
где N - размер файла в байтах. Параметром макрос принимает
путь к файлу в виде строкового литерала. Путь указывается относительно
файла, в котором вызывается макрос. Если файл не существует или не может
быть прочитан, компиляция завершится ошибкой.
Синтаксис
include_bytes!("path/to/file")
Пример
Давайте включим содержимое файла "data.bin" в программу
и выведем количество содержащихся в нём байтов:
fn main()
{
let data = include_bytes!("data.bin");
println!("{}", data.len());
}
Результат выполнения кода:
5
Пример
Давайте включим текстовый файл "message.txt"
и выведем каждый его байт:
fn main()
{
let data = include_bytes!("message.txt");
for byte in data
{
println!("{}", byte);
}
}
Результат выполнения кода:
104
101
108
108
111
Пример
Давайте преобразуем включённые байты обратно в строку
с помощью std::str::from_utf8:
fn main()
{
let data = include_bytes!("message.txt");
let res = std::str::from_utf8(data).unwrap();
println!("{}", res);
}
Результат выполнения кода:
"hello"
Смотрите также
-
макрос
include_str!,
который включает файл как строковый литерал -
макрос
file!,
который возвращает имя текущего файла -
макрос
line!,
который возвращает номер текущей строки -
макрос
module_path!,
который возвращает путь текущего модуля