3 个版本

0.1.2 2024年5月13日
0.1.1 2024年3月21日
0.1.0 2024年3月21日

#2 in #boxing

40 每月下载次数
用于 eventsys

MIT 许可证

39KB
727

Anythingy

Rust

这是一个正在进行中的项目,不适合生产使用。

东西:一个忘记了名字、不知道名字或者不愿意提及名字的东西。 [来自牛津高阶英汉双解词典]

一个用于动态类型的库。其主要特点是 东西 类型,它的工作方式类似于 Box<dyn Any>,但可以在编译时进行大小调整,如果太大,则会回退到装箱值。

示例

use anything::Thing;
fn main() {
    let number_thing: Thing<24> = Thing::new(42u64);
    let string_thing: Thing<24> = Thing::new(String::from("Hello there"));
    let bytes_thing: Thing<24> = Thing::new(Vec::from(b"so uncivilized"));

    let number = number_thing.get::<u64>();
    assert_eq!(number, 42);

    let string = string_thing.get::<String>();
    assert_eq!(&string, "Hello there");

    let bytes = bytes_thing.get::<Vec<u8>>();
    assert_eq!(&bytes, b"so uncivilized");
  }

许可证

本项目采用 MIT 许可证

无运行时依赖