1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
/*!
An implementation that provides monotonically increasing integer values.
While `SequenceGenerator` is thread safe, _and_ it's shared implementation assures that IDs are
generated uniquely among threads, it is always initialized to the same value when a process starts.
It provides an implementation of the trait `GeneratorFromSeed` that allows a process to initialize
the counter with a specific value.
# Example
```rust
use unique_id::Generator;
use unique_id::sequence::SequenceGenerator;
let gen = SequenceGenerator::default();
let id = gen.next_id();
*/
use crate::;
use ;
// ------------------------------------------------------------------------------------------------
// Public Types
// ------------------------------------------------------------------------------------------------
///
/// Generates monotonically increasing `i64` values. Note that only values `>= 0` will be returned
/// such that any negative value can be assumed to be invalid.
///
/// Provides implementations of:
///
/// * `Generator` - returns increasing `i64` values.
/// * `GeneratorWithInvalid` - returns an invalid, as an ID, `i64` value.
/// * `GeneratorFromStr` - ensures validity of a string representation as an `i64` ID.
/// * `GeneratorFromSeed` - initializes the generator with a known seed value.
///
;
// ------------------------------------------------------------------------------------------------
// Private Types
// ------------------------------------------------------------------------------------------------
// ------------------------------------------------------------------------------------------------
// Implementations
// ------------------------------------------------------------------------------------------------
static GENERATOR: = new;
// ------------------------------------------------------------------------------------------------