1 个不稳定版本
0.1.0 | 2024年2月4日 |
---|
#34 在 #containing
每月21 次下载
8KB
113 行
anygma 🦝
anygma
使定义包含不同类型的数组变得简单。
示例
use anygma::ary_anyref;
let a = ary_anyref![0, 'a', "str"];
assert_eq!(a[0].downcast_ref::<i32>(), Some(&0));
assert_eq!(a[1].downcast_ref::<char>(), Some(&'a'));
assert_eq!(a[2].downcast_ref::<&str>(), Some(&"str"));
贡献
该项目欢迎您的 PR 和问题。例如,修复错误、添加功能、重构等。
lib.rs
:
此包使定义包含不同类型的数组变得简单。
示例
use anygma::ary_anyref;
let a = ary_anyref![0, 'a', "str"];
assert_eq!(a[0].downcast_ref::<i32>(), Some(&0));
assert_eq!(a[1].downcast_ref::<char>(), Some(&'a'));
assert_eq!(a[2].downcast_ref::<&str>(), Some(&"str"));
use anygma::ary_tref;
let a = ary_tref![&dyn std::fmt::Debug; 0, 'a', "str"];
println!("{:?}", a);
您还可以使用 [ary_tref!] 创建自己的新宏
macro_rules! ary_debug {
( $( $value:expr ),+ $(,)? ) => {
ary_tref![&dyn std::fmt::Debug; $($value),+]
};
}
let a = ary_debug![0, 'a', "str"];
println!("{:?}", a);