2 个稳定版本

1.0.1 2021 年 9 月 15 日
1.0.0 2021 年 9 月 14 日

#600 in 并发

每月 41 次下载
用于 dlt-tracing-subscriber

Apache-2.0

13KB
266

自增

这是一个用于实现自增值的小型库,例如 ID 或其他。

[dependencies]
autoincrement = "1"

同步生成器示例

use autoincrement::prelude::*;

#[derive(Incremental, PartialEq, Eq, Debug)]
struct MyId(u32);

let mut generator = MyId::init();

assert_eq!(generator.pull(), MyId(1));
assert_eq!(generator.pull(), MyId(2));
assert_eq!(generator.pull(), MyId(3));

设置第一个值

use autoincrement::prelude::*;

#[derive(Incremental, PartialEq, Eq, Debug)]
struct MyId(u32);

let mut generator = MyId(20).init_from();

assert_eq!(generator.pull(), MyId(20));
assert_eq!(generator.pull(), MyId(21));
assert_eq!(generator.pull(), MyId(22));

使用线程安全生成器的示例

[dependencies]
autoincrement = { version = "1", features = ["derive", "async"] }
use autoincrement::prelude::*;

#[derive(AsyncIncremental, PartialEq, Eq, Debug)]
struct MyId(u32);

let generator = MyId::init(); // does not need to be mutable

assert_eq!(generator.pull(), MyId(1));
assert_eq!(generator.pull(), MyId(2));
assert_eq!(generator.pull(), MyId(3));

依赖项

~0–285KB