9 stable releases
new 1.6.0 | Dec 1, 2024 |
---|---|
1.5.1 | Nov 29, 2024 |
1.1.0 | Jul 31, 2024 |
#282 in Procedural macros
877 downloads per month
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
~1.5MB
~42K SLoC