1 个不稳定版本
0.1.0 | 2022 年 11 月 2 日 |
---|
#80 在 #nested
7KB
append_to_string rust 宏
append_to_string!() 宏将结构体内部或单独出现的文本字面量通过 .to_string() 添加,将其转换为字符串。字面量的类型必须实现 .to_string() 方法。
- 转换字面量
// str example
let a = "value".to_string();
let b = append_to_string!("value");
assert_eq!(a, b);
// int example
let a = 42.to_string();
let b = append_to_string!(42);
assert_eq!(a, b);
- 转换结构体
// structs
struct A {
s1: String,
s2: String,
}
struct B {
s1: String,
s2: String,
a: A,
}
// simple struct example
let a1 = append_to_string!(
A {
s1: "hello",
s2: "world",
}
);
let a2 = A {
s1: "hello".to_string(),
s2: "world".to_string(),
};
assert_eq!(a1, a2);
// nested struct example
let b1 = append_to_string!(
B {
s1: "hello",
s2: "world",
a: A {
s1: "nested",
s2: "struct",
}
}
);
let b2 = B {
s1: "hello".to_string(),
s2: "world".to_string(),
a: A {
s1: "nested".to_string(),
s2: "struct".to_string(),
}
};
assert_eq!(b1, b2);
当你需要创建具有 String 字段的大型结构体,但希望保持代码可读性或节省时间,而不为 &str 类型编写转换方法时,这可能很有用。
依赖项
此crate使用syn、quote和proc_macro2 crate。
依赖项
~1.5MB
~35K SLoC