我正在使用引号生成代码来解码汇编操作。我的芯片的说明手册使用二进制值来描述操作,所以我希望我生成的代码也将文字表达为二进制值,以便我更容易抽查正确性。
我找不到指定这一点的方法。proc_macro2::Literal
提供了多种控制文字后缀u8
( ,i32
等)的方法,但我没有看到任何可以控制文字基础的方法。
我的理想格式是基数 2,每四位使用一个下划线,并以适当的后缀结尾,但只需要基数。
use quote::quote; // 1.0.6
fn main() {
let value = 0b0101_0101_u8;
let code = format!("{}", quote! { #value });
assert_eq!("0b0101_0101_u8", code);
}
thread 'main' panicked at 'assertion failed: `(left == right)`
left: `"0b0101_0101_u8"`,
right: `"85u8"`', src/main.rs:8:5