Trait fastsend::ID [−][src]
Expand description
ID 是 fastsend 的核心 trait,用于生成不重复的 id,其表示形式为 64 位无符号整数,可用作数据库的主键。
其生成方法会消耗自身所有权,目的是确保一个 ID 实例只生成一个 id,多次生成在某些特定场景下会造成 id 冲突
的情况,例如因为代码逻辑错误导致多次调用 id 方法(但实际上如果 ID 是 Copy 的,这种情况也很难避免)。
需要注意的是 id 生成是被定义为一定成功的,并且是一个普通方法而非异步方法,意味着:
1. ID 必须一定能转化为 u64,不允许出现失败,但允许在生成的过程中 panic(这是无法阻止的);
2. ID 生成不允许是异步任务,即不允许有外部调用依赖,例如数据库、缓存、磁盘 IO 等操作,必须连贯完成,这也从
另一个角度表明 ID 生成应该尽可能的轻量化(这是与 Serialer trait 不同的地方,Serialer 允许使用
异步任务,也允许有外部依赖)。
