#line #file #macro #read-file #add #procedural #include-lines

macro include-lines-proc

Procedural macros for the include-lines crate. Please add that crate instead.

2 stable releases

1.1.0 Feb 16, 2023
1.0.0 Feb 16, 2023

#95 in #read-file

Download history 795/week @ 2024-11-17 518/week @ 2024-11-24 433/week @ 2024-12-01 666/week @ 2024-12-08 537/week @ 2024-12-15 288/week @ 2024-12-22 368/week @ 2024-12-29 514/week @ 2025-01-05 939/week @ 2025-01-12 2907/week @ 2025-01-19 2570/week @ 2025-01-26 3193/week @ 2025-02-02 3586/week @ 2025-02-09 2031/week @ 2025-02-16 424/week @ 2025-02-23 455/week @ 2025-03-02

6,649 downloads per month
Used in 3 crates (via include-lines)

MIT/Apache

3KB

include-lines

Rust macros for reading in all lines from a file at compile time. This can be very useful for loading static data.

Examples

For the examples, there is a file file.txt in the same directory as the project's Cargo.toml file:

these
are
file
lines

Read in a file and store it an an array of type [&'static str]

use include_lines::include_lines;
let lines = include_lines!("file.txt");

For the example file, this expands to:

let lines = [
    "these",
    "are",
    "file",
    "lines",
];

Read in a file and store it an an array of type [String]

use include_lines::include_lines_s;
let lines = include_lines_s!("file.txt");

For the example file, this expands to:

let lines = [
    String::from("these"),
    String::from("are"),
    String::from("file"),
    String::from("lines"),
];

Get the number of lines in a file at compile time as type usize

use include_lines::count_lines;
let num_lines = count_lines!("file.txt");

For the example file, this expands to:

let num_lines = 4usize;

Create a static array from a file at compile time

You can use the static_include_lines! and static_include_lines_s! macros to initialize static text arrays at compile time:

use include_lines::{static_include_lines};
static_include_lines!(LINES, "file.txt");

For the example file, this expands to:

static LINES: [&str; 4] = [
    "these",
    "are",
    "file",
    "lines",
];

Dependencies

~1.5MB
~38K SLoC