2个版本

0.1.1 2021年8月15日
0.1.0 2021年8月9日

#633过程宏

MIT 许可证

32KB
890

强类型ID类型宏

一个宏,用于简化Rust代码库中强类型ID类型的用法,而不是使用普通的 Stringu64Guid

use stidgen::{Id, id};

#[id]
pub struct UserId(String);

#[id(NoDefaults, Format, Debug)]
pub struct UserId(u64);

虽然 derive 宏已经可以用来实现这个宏的大部分功能,但它有以下优点:

  • 对于已知类型来说,使用起来更简单,只需在你的结构体中添加 #[id] 即可。
  • 默认值提供了大量的泛型实现,这些实现可能在使用手动方式时被忽略。
  • 提供了一些没有对应 derive 宏的功能(例如 AsBytesAsRefBorrow)。
  • 所有平凡函数都被标记为内联。

设置

默认类型

对于未知类型,所有功能默认禁用,但某些类型如 String 具有智能默认值。

#[id(Clone, Hash, PartialEq, Eq, PartialOrd, Ord, Display, ToString, Debug, AsBytes, ...)]
pub struct Id(String);

依赖项

~305–790KB
~18K SLoC