@@ -62,22 +62,77 @@ const INDEXED_KEY_LOWER_CHARACTER: char = '\u{0000}';
62
62
/// [1]: https://en.wikipedia.org/wiki/Plane_(Unicode)#Basic_Multilingual_Plane
63
63
const INDEXED_KEY_UPPER_CHARACTER : char = '\u{FFFF}' ;
64
64
65
+ /// A [`ChunkIdentifier`] constructed with `0`.
66
+ ///
67
+ /// This value is useful for constructing a key range over all keys which
68
+ /// contain [`ChunkIdentifier`]s when used in conjunction with
69
+ /// [`INDEXED_KEY_UPPER_CHUNK_IDENTIFIER`].
70
+ static INDEXED_KEY_LOWER_CHUNK_IDENTIFIER : LazyLock < ChunkIdentifier > =
71
+ LazyLock :: new ( || ChunkIdentifier :: new ( 0 ) ) ;
72
+
73
+ /// A [`ChunkIdentifier`] constructed with [`js_sys::Number::MAX_SAFE_INTEGER`].
74
+ ///
75
+ /// This value is useful for constructing a key range over all keys which
76
+ /// contain [`ChunkIdentifier`]s when used in conjunction with
77
+ /// [`INDEXED_KEY_LOWER_CHUNK_IDENTIFIER`].
78
+ static INDEXED_KEY_UPPER_CHUNK_IDENTIFIER : LazyLock < ChunkIdentifier > =
79
+ LazyLock :: new ( || ChunkIdentifier :: new ( js_sys:: Number :: MAX_SAFE_INTEGER as u64 ) ) ;
80
+
65
81
/// An [`OwnedEventId`] constructed with [`INDEXED_KEY_LOWER_CHARACTER`].
66
82
///
67
- /// This value is useful for constructing a key range over all [`Event`]s when
68
- /// used in conjunction with [`INDEXED_KEY_UPPER_EVENT_ID`].
83
+ /// This value is useful for constructing a key range over all keys which
84
+ /// contain [`EventId`]s when used in conjunction with
85
+ /// [`INDEXED_KEY_UPPER_EVENT_ID`].
69
86
static INDEXED_KEY_LOWER_EVENT_ID : LazyLock < OwnedEventId > = LazyLock :: new ( || {
70
87
OwnedEventId :: try_from ( format ! ( "${INDEXED_KEY_LOWER_CHARACTER}" ) ) . expect ( "valid event id" )
71
88
} ) ;
72
89
73
90
/// An [`OwnedEventId`] constructed with [`INDEXED_KEY_UPPER_CHARACTER`].
74
91
///
75
- /// This value is useful for constructing a key range over all [`Event`]s when
76
- /// used in conjunction with [`INDEXED_KEY_LOWER_EVENT_ID`].
92
+ /// This value is useful for constructing a key range over all keys which
93
+ /// contain [`EventId`]s when used in conjunction with
94
+ /// [`INDEXED_KEY_LOWER_EVENT_ID`].
77
95
static INDEXED_KEY_UPPER_EVENT_ID : LazyLock < OwnedEventId > = LazyLock :: new ( || {
78
96
OwnedEventId :: try_from ( format ! ( "${INDEXED_KEY_UPPER_CHARACTER}" ) ) . expect ( "valid event id" )
79
97
} ) ;
80
98
99
+ /// The lowest possible index that can be used to reference an [`Event`] inside
100
+ /// a [`Chunk`] - i.e., `0`.
101
+ ///
102
+ /// This value is useful for constructing a key range over all keys which
103
+ /// contain [`Position`]s when used in conjunction with
104
+ /// [`INDEXED_KEY_UPPER_EVENT_INDEX`].
105
+ const INDEXED_KEY_LOWER_EVENT_INDEX : usize = 0 ;
106
+
107
+ /// The highest possible index that can be used to reference an [`Event`] inside
108
+ /// a [`Chunk`] - i.e., [`js_sys::Number::MAX_SAFE_INTEGER`].
109
+ ///
110
+ /// This value is useful for constructing a key range over all keys which
111
+ /// contain [`Position`]s when used in conjunction with
112
+ /// [`INDEXED_KEY_LOWER_EVENT_INDEX`].
113
+ const INDEXED_KEY_UPPER_EVENT_INDEX : usize = js_sys:: Number :: MAX_SAFE_INTEGER as usize ;
114
+
115
+ /// The lowest possible [`Position`] that can be used to reference an [`Event`].
116
+ ///
117
+ /// This value is useful for constructing a key range over all keys which
118
+ /// contain [`Position`]s when used in conjunction with
119
+ /// [`INDEXED_KEY_UPPER_EVENT_INDEX`].
120
+ static INDEXED_KEY_LOWER_EVENT_POSITION : LazyLock < Position > = LazyLock :: new ( || Position {
121
+ chunk_identifier : INDEXED_KEY_LOWER_CHUNK_IDENTIFIER . index ( ) ,
122
+ index : INDEXED_KEY_LOWER_EVENT_INDEX ,
123
+ } ) ;
124
+
125
+ /// The highest possible [`Position`] that can be used to reference an
126
+ /// [`Event`].
127
+ ///
128
+ /// This value is useful for constructing a key range over all keys which
129
+ /// contain [`Position`]s when used in conjunction with
130
+ /// [`INDEXED_KEY_LOWER_EVENT_INDEX`].
131
+ static INDEXED_KEY_UPPER_EVENT_POSITION : LazyLock < Position > = LazyLock :: new ( || Position {
132
+ chunk_identifier : INDEXED_KEY_UPPER_CHUNK_IDENTIFIER . index ( ) ,
133
+ index : INDEXED_KEY_UPPER_EVENT_INDEX ,
134
+ } ) ;
135
+
81
136
/// Representation of a range of keys of type `K`. This is loosely
82
137
/// correlated with [IDBKeyRange][1], with a few differences.
83
138
///
@@ -221,11 +276,11 @@ impl IndexedKey<Chunk> for IndexedChunkIdKey {
221
276
222
277
impl IndexedKeyComponentBounds < Chunk > for IndexedChunkIdKey {
223
278
fn lower_key_components ( ) -> Self :: KeyComponents < ' static > {
224
- ChunkIdentifier :: new ( 0 )
279
+ * INDEXED_KEY_LOWER_CHUNK_IDENTIFIER
225
280
}
226
281
227
282
fn upper_key_components ( ) -> Self :: KeyComponents < ' static > {
228
- ChunkIdentifier :: new ( js_sys :: Number :: MAX_SAFE_INTEGER as u64 )
283
+ * INDEXED_KEY_UPPER_CHUNK_IDENTIFIER
229
284
}
230
285
}
231
286
@@ -292,7 +347,7 @@ impl IndexedKeyComponentBounds<Chunk> for IndexedNextChunkIdKey {
292
347
}
293
348
294
349
fn upper_key_components ( ) -> Self :: KeyComponents < ' static > {
295
- Some ( ChunkIdentifier :: new ( js_sys :: Number :: MAX_SAFE_INTEGER as u64 ) )
350
+ Some ( * INDEXED_KEY_UPPER_CHUNK_IDENTIFIER )
296
351
}
297
352
}
298
353
@@ -411,14 +466,11 @@ impl IndexedKey<Event> for IndexedEventPositionKey {
411
466
412
467
impl IndexedKeyComponentBounds < Event > for IndexedEventPositionKey {
413
468
fn lower_key_components ( ) -> Self :: KeyComponents < ' static > {
414
- Position { chunk_identifier : 0 , index : 0 }
469
+ * INDEXED_KEY_LOWER_EVENT_POSITION
415
470
}
416
471
417
472
fn upper_key_components ( ) -> Self :: KeyComponents < ' static > {
418
- Position {
419
- chunk_identifier : js_sys:: Number :: MAX_SAFE_INTEGER as u64 ,
420
- index : js_sys:: Number :: MAX_SAFE_INTEGER as usize ,
421
- }
473
+ * INDEXED_KEY_UPPER_EVENT_POSITION
422
474
}
423
475
}
424
476
0 commit comments