Rust has a stringify!
macro to get an expression as a string.
Is there a way to get the equivalent functionality that outputs bytes instead?
As if the expression were written as a byte string literal, e.g.: b"some text"
.
The reason to use a macro instead of str.as_bytes()
is that conversion functions can't be used to construct const
values.See this question for why you might want to use this macro.
stringification (uncountable) (computing) The act or process of stringifying; conversion to a string.
Stringification in C involves more than putting doublequote characters around the fragment; it is necessary to put backslashes in front of all doublequote characters, and all backslashes in string and character constants, in order to get a valid C string constant with the proper contents.
If you are using nightly Rust (since 1.28.0-nightly, 2018-05-23), you may enable the const_str_as_bytes
feature which turns as_bytes()
into a const
function.
#![feature(const_str_as_bytes)]
fn main() {
const AAA: &[u8] = stringify!(aaa).as_bytes();
println!("{:?}", AAA); // [97, 97, 97]
}
(Demo)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With