3 个版本

0.1.2 2024 年 7 月 6 日
0.1.1 2024 年 7 月 4 日
0.1.0 2024 年 6 月 26 日

665数据结构

每月 37 次下载
tree-ds 中使用

MIT 许可证

14KB
161 代码行

Sequential_Gen

Build Status

Crates.io Docs.rs License: MIT

一个用于在 Rust 中生成顺序 ID 的简单 crate。当您需要为您的数据结构生成顺序 ID 时,此 crate 非常有用。

最近我需要为我正在开发的一个树形数据结构生成顺序 ID,但我找不到一个提供此功能的 crate,且具有 no_std 功能。因此,我决定创建这个 crate 来填补这一空白。

用法

将以下内容添加到您的 Cargo.toml 文件中

[dependencies]
sequential_gen = "0.1"

生成顺序 ID

为了确保生成的 ID 是唯一的,我们需要确保程序中只有一个 Generator 特例的实例。一旦您有了您的 Generator 实例,您就可以使用 generate 方法来生成顺序 ID。

extern crate lazy_static;

use lazy_static::lazy_static;
use sequential_gen::prelude::*;

lazy_static! {
    static ref GENERATOR: SimpleGenerator<usize> = SimpleGenerator::new(1usize);
}

fn main() {
	let id = GENERATOR.generate();
	// Use your ID
}

注意:如果您需要更多控制生成过程或提供的生成器不符合您的要求,您也可以通过实现 Generator 特例来创建自己的生成器。

no_std 支持

此 crate 与 no_std 兼容,但您需要在 Cargo.toml 文件中禁用默认功能。然后您需要启用 no_std 功能

[dependencies]
sequential_gen = { version = "0.1", default-features = false, features = ["no_std"] }

注意:no_std 环境中工作时,您只能使用 SimpleGenerator 结构。在大多数情况下,这应该足够。其他生成器需要 std 库。

crate 的使用方法保持不变。

许可证

该项目根据 MIT 许可证授权。

依赖关系

~460–720KB
~14K SLoC