9 stable releases
1.6.0 | Dec 1, 2024 |
---|---|
1.5.1 | Nov 29, 2024 |
1.1.0 | Jul 31, 2024 |
#2063 in Procedural macros
Used in fnv0
32KB
504 lines
Procedural macros for str and byte str literals
Create byte array from str or byte str
Procedural macro proc_strarray::str_array
creates const u8 array from str literal.
Variant proc_strarray::str_array0
creates zero terminated u8 array.
Macro str_array takes three arguments:
- name of array to be created
- str or byte str literal
- expected length of str literal (optional argument, can be omitted). Length is only used for length check. It will not trim or extend an array.
Repeat str or byte str
- macro
str_repeat
repeats str or byte str literal n times. - macro
str_repeat0
repeats str or byte str literal n times and adds NUL termination.
Repeat str or byte str as bytes
- macro
str_repeat_bytes
repeats str or byte str literal n times as byte slice. - macro
str_repeat_bytes0
repeats str or byte str literal n times as byte slice and adds NUL termination.
Return str or byte str length
- macro
str_len
returns length of str or byte str literal. - macro
str_len0
returns length of zero terminated str or byte str literal.
Create byte slice from str or byte str
- macro
str_bytes
creates byte slice from str or byte str literal. - macro
str_bytes0
creates zero terminated byte slice from str or byte str literal.
Usage
// This code will create const array of u8
// named STRU from content of "stru" str literal.
use proc_strarray::str_array;
str_array!(STRU, "stru");
// check if newly created array have length 4
assert_eq!(STRU.len(), 4);
// check created array if first character is 's'
assert_eq!(STRU[0], 's' as u8);
Documentation
rustdoc generated documentation can be found at docs.rs
License and MSRV
proc_strarray uses same license as Rust. MSRV is 1.57 and it will stay for all 1.X versions.
Dependencies
~2MB
~44K SLoC