2 个不稳定版本

0.2.0 2023年10月11日
0.1.0 2023年9月26日

#2503Rust 模式

MIT 许可证

17KB
304

aict

Latest version Documentation MIT

aict 是用于生成特定类型自增唯一标识符的库。

它为整数类型提供了内置支持 (i8, i16, i32, i64, isize, u8, u16, u32, u64, usize)。但是,您可以通过实现 Aictable 特性来添加对您自己的类型的支持。

示例

use aict::Factory;

// Creates a new Factory for u32 IDs.
let mut factory = Factory::<u32>::builder()
    // Sets the initial value for the IDs.
    // For built-in types, the default value is the minimum value.
    // .initial_value(1)

    // Whether to loop back to the initial value after reaching the maximum value.
    // Default is false.
    // .looping(true)

    // Whether to rewind to the position of the latest removed ID when generating the next ID.
    // Default is false.
    // .rewind(true)

    .build();

// Generates some IDs.
assert_eq!(factory.next().unwrap(), 0);
assert_eq!(factory.next().unwrap(), 1);

// Removes an ID so that it can be reused in the future.
factory.remove(0);

// Manually marks an ID as used.
assert!(factory.take_up(2).is_ok());
// Since 2 was taken up, the next available ID is 3.
// However, if rewind is set to true, the next ID is 0.
assert_eq!(factory.next().unwrap(), 3);

类似包

无运行时依赖