effect 3.14.5 → 3.14.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/JSONSchema.js +5 -4
- package/dist/cjs/JSONSchema.js.map +1 -1
- package/dist/cjs/MutableHashSet.js +434 -0
- package/dist/cjs/MutableHashSet.js.map +1 -1
- package/dist/cjs/internal/metric/hook.js +1 -1
- package/dist/cjs/internal/metric/hook.js.map +1 -1
- package/dist/cjs/internal/version.js +1 -1
- package/dist/dts/MutableHashSet.d.ts +467 -12
- package/dist/dts/MutableHashSet.d.ts.map +1 -1
- package/dist/dts/index.d.ts +91 -0
- package/dist/dts/index.d.ts.map +1 -1
- package/dist/esm/JSONSchema.js +5 -4
- package/dist/esm/JSONSchema.js.map +1 -1
- package/dist/esm/MutableHashSet.js +434 -0
- package/dist/esm/MutableHashSet.js.map +1 -1
- package/dist/esm/index.js +91 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/internal/metric/hook.js +1 -1
- package/dist/esm/internal/metric/hook.js.map +1 -1
- package/dist/esm/internal/version.js +1 -1
- package/package.json +1 -1
- package/src/JSONSchema.ts +5 -4
- package/src/MutableHashSet.ts +572 -16
- package/src/index.ts +91 -0
- package/src/internal/metric/hook.ts +1 -1
- package/src/internal/version.ts +1 -1
package/dist/cjs/JSONSchema.js
CHANGED
|
@@ -446,16 +446,17 @@ const go = (ast, $defs, handleIdentifier, path, options) => {
|
|
|
446
446
|
let patternProperties = undefined;
|
|
447
447
|
let propertyNames = undefined;
|
|
448
448
|
for (const is of ast.indexSignatures) {
|
|
449
|
+
const pruned = pruneUndefined(is.type) ?? is.type;
|
|
449
450
|
const parameter = is.parameter;
|
|
450
451
|
switch (parameter._tag) {
|
|
451
452
|
case "StringKeyword":
|
|
452
453
|
{
|
|
453
|
-
output.additionalProperties = go(
|
|
454
|
+
output.additionalProperties = go(pruned, $defs, true, path, options);
|
|
454
455
|
break;
|
|
455
456
|
}
|
|
456
457
|
case "TemplateLiteral":
|
|
457
458
|
{
|
|
458
|
-
patternProperties = go(
|
|
459
|
+
patternProperties = go(pruned, $defs, true, path, options);
|
|
459
460
|
propertyNames = {
|
|
460
461
|
type: "string",
|
|
461
462
|
pattern: AST.getTemplateLiteralRegExp(parameter).source
|
|
@@ -464,14 +465,14 @@ const go = (ast, $defs, handleIdentifier, path, options) => {
|
|
|
464
465
|
}
|
|
465
466
|
case "Refinement":
|
|
466
467
|
{
|
|
467
|
-
patternProperties = go(
|
|
468
|
+
patternProperties = go(pruned, $defs, true, path, options);
|
|
468
469
|
propertyNames = go(parameter, $defs, true, path, options);
|
|
469
470
|
break;
|
|
470
471
|
}
|
|
471
472
|
case "SymbolKeyword":
|
|
472
473
|
{
|
|
473
474
|
const indexSignaturePath = path.concat("[symbol]");
|
|
474
|
-
output.additionalProperties = go(
|
|
475
|
+
output.additionalProperties = go(pruned, $defs, true, indexSignaturePath, options);
|
|
475
476
|
propertyNames = go(parameter, $defs, true, indexSignaturePath, options);
|
|
476
477
|
break;
|
|
477
478
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JSONSchema.js","names":["errors_","_interopRequireWildcard","require","Option","Predicate","Record","AST","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","make","schema","definitions","ast","isTransformation","isParseJsonTransformation","from","to","jsonSchema","fromAST","out","$schema","$defs","isEmptyRecord","exports","options","definitionPath","getRef","id","target","handleIdentifier","topLevelReferenceStrategy","additionalPropertiesStrategy","go","constNever","constAny","constUnknown","constVoid","constAnyObject","constEmpty","getJsonSchemaAnnotations","annotated","getSomes","description","getDescriptionAnnotation","title","getTitleAnnotation","examples","getExamplesAnnotation","getDefaultAnnotation","removeDefaultJsonSchemaAnnotations","jsonSchemaAnnotations","annotations","TitleAnnotationId","DescriptionAnnotationId","getASTJsonSchemaAnnotations","_tag","stringKeyword","numberKeyword","booleanKeyword","pruneUndefined","isNone","getJSONSchemaAnnotation","SchemaIdAnnotationId","ParseJsonSchemaId","isOverrideAnnotation","isMergeableEnum","len","keys","length","addEnumType","type","enum","every","isString","isNumber","isBoolean","undefined","mergeRefinements","allOf","handle","name","filter","unshift","minLength","maxLength","pattern","minItems","maxItems","minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf","isContentSchemaSupported","isNullTypeKeywordSupported","isNullableKeywordSupported","getAdditionalProperties","isNeverJSONSchema","$id","isAnyJSONSchema","isUnknownJSONSchema","isVoidJSONSchema","shrink","members","findIndex","path","identifier","getJSONIdentifier","isSome","value","$ref","hook","handler","isRefinement","getTransformationFrom","surrogate","getSurrogateAnnotation","Error","getJSONSchemaMissingAnnotationErrorMessage","literal","elements","map","concat","rest","annotatedAST","output","element","isOptional","items","restLength","head","isHomogeneous","additionalItems","getJSONSchemaUnsupportedPostRestElementsErrorMessage","propertySignatures","indexSignatures","required","properties","additionalProperties","patternProperties","propertyNames","is","parameter","getTemplateLiteralRegExp","source","indexSignaturePath","ps","pruned","push","getJSONSchemaUnsupportedKeyErrorMessage","types","last","anyOf","finalize","nullable","nonNullables","s","nn","nnes","enums","$comment","regex","String","orElse","f","getJSONSchemaMissingIdentifierAnnotationErrorMessage","next","isTypeLiteralTransformation","transformation","getIdentifierAnnotation","IdentifierAnnotationId"],"sources":["../../src/JSONSchema.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"JSONSchema.js","names":["errors_","_interopRequireWildcard","require","Option","Predicate","Record","AST","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","make","schema","definitions","ast","isTransformation","isParseJsonTransformation","from","to","jsonSchema","fromAST","out","$schema","$defs","isEmptyRecord","exports","options","definitionPath","getRef","id","target","handleIdentifier","topLevelReferenceStrategy","additionalPropertiesStrategy","go","constNever","constAny","constUnknown","constVoid","constAnyObject","constEmpty","getJsonSchemaAnnotations","annotated","getSomes","description","getDescriptionAnnotation","title","getTitleAnnotation","examples","getExamplesAnnotation","getDefaultAnnotation","removeDefaultJsonSchemaAnnotations","jsonSchemaAnnotations","annotations","TitleAnnotationId","DescriptionAnnotationId","getASTJsonSchemaAnnotations","_tag","stringKeyword","numberKeyword","booleanKeyword","pruneUndefined","isNone","getJSONSchemaAnnotation","SchemaIdAnnotationId","ParseJsonSchemaId","isOverrideAnnotation","isMergeableEnum","len","keys","length","addEnumType","type","enum","every","isString","isNumber","isBoolean","undefined","mergeRefinements","allOf","handle","name","filter","unshift","minLength","maxLength","pattern","minItems","maxItems","minimum","maximum","exclusiveMinimum","exclusiveMaximum","multipleOf","isContentSchemaSupported","isNullTypeKeywordSupported","isNullableKeywordSupported","getAdditionalProperties","isNeverJSONSchema","$id","isAnyJSONSchema","isUnknownJSONSchema","isVoidJSONSchema","shrink","members","findIndex","path","identifier","getJSONIdentifier","isSome","value","$ref","hook","handler","isRefinement","getTransformationFrom","surrogate","getSurrogateAnnotation","Error","getJSONSchemaMissingAnnotationErrorMessage","literal","elements","map","concat","rest","annotatedAST","output","element","isOptional","items","restLength","head","isHomogeneous","additionalItems","getJSONSchemaUnsupportedPostRestElementsErrorMessage","propertySignatures","indexSignatures","required","properties","additionalProperties","patternProperties","propertyNames","is","pruned","parameter","getTemplateLiteralRegExp","source","indexSignaturePath","ps","push","getJSONSchemaUnsupportedKeyErrorMessage","types","last","anyOf","finalize","nullable","nonNullables","s","nn","nnes","enums","$comment","regex","String","orElse","f","getJSONSchemaMissingIdentifierAnnotationErrorMessage","next","isTypeLiteralTransformation","transformation","getIdentifierAnnotation","IdentifierAnnotationId"],"sources":["../../src/JSONSchema.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -11,6 +11,97 @@ var _Pipeable = require("./Pipeable.js");
|
|
|
11
11
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
12
12
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
13
13
|
/**
|
|
14
|
+
* # MutableHashSet
|
|
15
|
+
*
|
|
16
|
+
* A mutable `MutableHashSet` provides a collection of unique values with
|
|
17
|
+
* efficient lookup, insertion and removal. Unlike its immutable sibling
|
|
18
|
+
* {@link module:HashSet}, a `MutableHashSet` can be modified in-place;
|
|
19
|
+
* operations like add, remove, and clear directly modify the original set
|
|
20
|
+
* rather than creating a new one. This mutability offers benefits like improved
|
|
21
|
+
* performance in scenarios where you need to build or modify a set
|
|
22
|
+
* incrementally.
|
|
23
|
+
*
|
|
24
|
+
* ## What Problem Does It Solve?
|
|
25
|
+
*
|
|
26
|
+
* `MutableHashSet` solves the problem of maintaining an unsorted collection
|
|
27
|
+
* where each value appears exactly once, with fast operations for checking
|
|
28
|
+
* membership and adding/removing values, in contexts where mutability is
|
|
29
|
+
* preferred for performance or implementation simplicity.
|
|
30
|
+
*
|
|
31
|
+
* ## When to Use
|
|
32
|
+
*
|
|
33
|
+
* Use `MutableHashSet` when you need:
|
|
34
|
+
*
|
|
35
|
+
* - A collection with no duplicate values
|
|
36
|
+
* - Efficient membership testing (**`O(1)`** average complexity)
|
|
37
|
+
* - In-place modifications for better performance
|
|
38
|
+
* - A set that will be built or modified incrementally
|
|
39
|
+
* - Local mutability in otherwise immutable code
|
|
40
|
+
*
|
|
41
|
+
* ## Advanced Features
|
|
42
|
+
*
|
|
43
|
+
* MutableHashSet provides operations for:
|
|
44
|
+
*
|
|
45
|
+
* - Adding and removing elements with direct mutation
|
|
46
|
+
* - Checking for element existence
|
|
47
|
+
* - Clearing all elements at once
|
|
48
|
+
* - Converting to/from other collection types
|
|
49
|
+
*
|
|
50
|
+
* ## Performance Characteristics
|
|
51
|
+
*
|
|
52
|
+
* - **Lookup** operations ({@link module:MutableHashSet.has}): **`O(1)`** average
|
|
53
|
+
* time complexity
|
|
54
|
+
* - **Insertion** operations ({@link module:MutableHashSet.add}): **`O(1)`**
|
|
55
|
+
* average time complexity
|
|
56
|
+
* - **Removal** operations ({@link module:MutableHashSet.remove}): **`O(1)`**
|
|
57
|
+
* average time complexity
|
|
58
|
+
* - **Iteration**: **`O(n)`** where n is the size of the set
|
|
59
|
+
*
|
|
60
|
+
* The MutableHashSet data structure implements the following traits:
|
|
61
|
+
*
|
|
62
|
+
* - {@link Iterable}: allows iterating over the values in the set
|
|
63
|
+
* - {@link Pipeable}: allows chaining operations with the pipe operator
|
|
64
|
+
* - {@link Inspectable}: allows inspecting the contents of the set
|
|
65
|
+
*
|
|
66
|
+
* ## Operations Reference
|
|
67
|
+
*
|
|
68
|
+
* | Category | Operation | Description | Complexity |
|
|
69
|
+
* | ------------ | ------------------------------------------ | ----------------------------------- | ---------- |
|
|
70
|
+
* | constructors | {@link module:MutableHashSet.empty} | Creates an empty MutableHashSet | O(1) |
|
|
71
|
+
* | constructors | {@link module:MutableHashSet.fromIterable} | Creates a set from an iterable | O(n) |
|
|
72
|
+
* | constructors | {@link module:MutableHashSet.make} | Creates a set from multiple values | O(n) |
|
|
73
|
+
* | | | | |
|
|
74
|
+
* | elements | {@link module:MutableHashSet.has} | Checks if a value exists in the set | O(1) avg |
|
|
75
|
+
* | elements | {@link module:MutableHashSet.add} | Adds a value to the set | O(1) avg |
|
|
76
|
+
* | elements | {@link module:MutableHashSet.remove} | Removes a value from the set | O(1) avg |
|
|
77
|
+
* | elements | {@link module:MutableHashSet.size} | Gets the number of elements | O(1) |
|
|
78
|
+
* | elements | {@link module:MutableHashSet.clear} | Removes all values from the set | O(1) |
|
|
79
|
+
*
|
|
80
|
+
* ## Notes
|
|
81
|
+
*
|
|
82
|
+
* ### Mutability Considerations:
|
|
83
|
+
*
|
|
84
|
+
* Unlike most data structures in the Effect ecosystem, `MutableHashSet` is
|
|
85
|
+
* mutable. This means that operations like `add`, `remove`, and `clear` modify
|
|
86
|
+
* the original set rather than creating a new one. This can lead to more
|
|
87
|
+
* efficient code in some scenarios, but requires careful handling to avoid
|
|
88
|
+
* unexpected side effects.
|
|
89
|
+
*
|
|
90
|
+
* ### When to Choose `MutableHashSet` vs {@link module:HashSet}:
|
|
91
|
+
*
|
|
92
|
+
* - Use `MutableHashSet` when you need to build or modify a set incrementally and
|
|
93
|
+
* performance is a priority
|
|
94
|
+
* - Use `HashSet` when you want immutability guarantees and functional
|
|
95
|
+
* programming patterns
|
|
96
|
+
* - Consider using {@link module:HashSet}'s bounded mutation context (via
|
|
97
|
+
* {@link module:HashSet.beginMutation}, {@link module:HashSet.endMutation}, and
|
|
98
|
+
* {@link module:HashSet.mutate} methods) when you need temporary mutability
|
|
99
|
+
* within an otherwise immutable context - this approach might be sufficient
|
|
100
|
+
* for many use cases without requiring a separate `MutableHashSet`
|
|
101
|
+
* - `MutableHashSet` is often useful for local operations where the mutability is
|
|
102
|
+
* contained and doesn't leak into the broader application
|
|
103
|
+
*
|
|
104
|
+
* @module MutableHashSet
|
|
14
105
|
* @since 2.0.0
|
|
15
106
|
*/
|
|
16
107
|
|
|
@@ -42,48 +133,391 @@ const fromHashMap = keyMap => {
|
|
|
42
133
|
return set;
|
|
43
134
|
};
|
|
44
135
|
/**
|
|
136
|
+
* Creates an empty mutable hash set.
|
|
137
|
+
*
|
|
138
|
+
* This function initializes and returns an empty `MutableHashSet` instance,
|
|
139
|
+
* which allows for efficient storage and manipulation of unique elements.
|
|
140
|
+
*
|
|
141
|
+
* Time complexity: **`O(1)`**
|
|
142
|
+
*
|
|
143
|
+
* @memberof MutableHashSet
|
|
45
144
|
* @since 2.0.0
|
|
46
145
|
* @category constructors
|
|
146
|
+
* @example
|
|
147
|
+
*
|
|
148
|
+
* ```ts
|
|
149
|
+
* import { MutableHashSet } from "effect"
|
|
150
|
+
*
|
|
151
|
+
* type T = unknown // replace with your type
|
|
152
|
+
*
|
|
153
|
+
* // in places where the type can't be inferred, replace with your type
|
|
154
|
+
* const set: MutableHashSet.MutableHashSet<T> = MutableHashSet.empty<T>()
|
|
155
|
+
* ```
|
|
156
|
+
*
|
|
157
|
+
* @template K - The type of the elements to be stored in the hash set. Defaults
|
|
158
|
+
* to `never` if not specified.
|
|
159
|
+
* @returns A new mutable instance of `MutableHashSet` containing no elements
|
|
160
|
+
* for the specified type `K`.
|
|
161
|
+
* @see Other `MutableHashSet` constructors are {@link module:MutableHashSet.make} {@link module:MutableHashSet.fromIterable}
|
|
47
162
|
*/
|
|
48
163
|
const empty = () => fromHashMap(MutableHashMap.empty());
|
|
49
164
|
/**
|
|
50
165
|
* Creates a new `MutableHashSet` from an iterable collection of values.
|
|
166
|
+
* Duplicate values are omitted.
|
|
167
|
+
*
|
|
168
|
+
* Time complexity: **`O(n)`** where n is the number of elements in the iterable
|
|
169
|
+
*
|
|
170
|
+
* Creating a `MutableHashSet` from an {@link Array}
|
|
171
|
+
*
|
|
172
|
+
* ```ts
|
|
173
|
+
* import { MutableHashSet } from "effect"
|
|
174
|
+
*
|
|
175
|
+
* const array: Iterable<number> = [1, 2, 3, 4, 5, 1, 2, 3] // Array<T> is also Iterable<T>
|
|
176
|
+
* const mutableHashSet: MutableHashSet.MutableHashSet<number> =
|
|
177
|
+
* MutableHashSet.fromIterable(array)
|
|
178
|
+
*
|
|
179
|
+
* console.log(
|
|
180
|
+
* // MutableHashSet.MutableHashSet<T> is also an Iterable<T>
|
|
181
|
+
* Array.from(mutableHashSet)
|
|
182
|
+
* ) // Output: [1, 2, 3, 4, 5]
|
|
183
|
+
* ```
|
|
184
|
+
*
|
|
185
|
+
* Creating a `MutableHashSet` from a {@link Set}
|
|
186
|
+
*
|
|
187
|
+
* ```ts
|
|
188
|
+
* import { MutableHashSet, pipe } from "effect"
|
|
189
|
+
*
|
|
190
|
+
* console.log(
|
|
191
|
+
* pipe(
|
|
192
|
+
* // Set<string> is an Iterable<string>
|
|
193
|
+
* new Set(["apple", "banana", "orange", "apple"]),
|
|
194
|
+
* // constructs MutableHashSet from an Iterable Set
|
|
195
|
+
* MutableHashSet.fromIterable,
|
|
196
|
+
* // since MutableHashSet it is itself an Iterable, we can pass it to other functions expecting an Iterable
|
|
197
|
+
* Array.from
|
|
198
|
+
* )
|
|
199
|
+
* ) // Output: ["apple", "banana", "orange"]
|
|
200
|
+
* ```
|
|
201
|
+
*
|
|
202
|
+
* Creating a `MutableHashSet` from a {@link Generator}
|
|
203
|
+
*
|
|
204
|
+
* ```ts
|
|
205
|
+
* import { MutableHashSet } from "effect"
|
|
206
|
+
*
|
|
207
|
+
* // Generator functions return iterables
|
|
208
|
+
* function* fibonacci(n: number): Generator<number, void, never> {
|
|
209
|
+
* let [a, b] = [0, 1]
|
|
210
|
+
* for (let i = 0; i < n; i++) {
|
|
211
|
+
* yield a
|
|
212
|
+
* ;[a, b] = [b, a + b]
|
|
213
|
+
* }
|
|
214
|
+
* }
|
|
215
|
+
*
|
|
216
|
+
* // Create a MutableHashSet from the first 10 Fibonacci numbers
|
|
217
|
+
* const fibonacciSet = MutableHashSet.fromIterable(fibonacci(10))
|
|
218
|
+
*
|
|
219
|
+
* console.log(Array.from(fibonacciSet))
|
|
220
|
+
* // Outputs: [0, 1, 2, 3, 5, 8, 13, 21, 34] but in unsorted order
|
|
221
|
+
* ```
|
|
222
|
+
*
|
|
223
|
+
* Creating a `MutableHashSet` from another {@link module:MutableHashSet}
|
|
224
|
+
*
|
|
225
|
+
* ```ts
|
|
226
|
+
* import { MutableHashSet, pipe } from "effect"
|
|
227
|
+
*
|
|
228
|
+
* console.log(
|
|
229
|
+
* pipe(
|
|
230
|
+
* MutableHashSet.make(1, 2, 3, 4),
|
|
231
|
+
* MutableHashSet.fromIterable,
|
|
232
|
+
* Array.from
|
|
233
|
+
* )
|
|
234
|
+
* ) // Output: [1, 2, 3, 4]
|
|
235
|
+
* ```
|
|
236
|
+
*
|
|
237
|
+
* Creating a `MutableHashSet` from an {@link module:HashSet}
|
|
238
|
+
*
|
|
239
|
+
* ```ts
|
|
240
|
+
* import { HashSet, MutableHashSet, pipe } from "effect"
|
|
241
|
+
*
|
|
242
|
+
* console.log(
|
|
243
|
+
* pipe(
|
|
244
|
+
* HashSet.make(1, 2, 3, 4), // it works also with its immutable HashSet sibling
|
|
245
|
+
* MutableHashSet.fromIterable,
|
|
246
|
+
* Array.from
|
|
247
|
+
* )
|
|
248
|
+
* ) // Output: [1, 2, 3, 4]
|
|
249
|
+
* ```
|
|
51
250
|
*
|
|
251
|
+
* Creating a `MutableHashSet` from other Effect's data structures like
|
|
252
|
+
* {@link Chunk}
|
|
253
|
+
*
|
|
254
|
+
* ```ts
|
|
255
|
+
* import { Chunk, MutableHashSet, pipe } from "effect"
|
|
256
|
+
*
|
|
257
|
+
* console.log(
|
|
258
|
+
* pipe(
|
|
259
|
+
* Chunk.make(1, 2, 3, 4), // Chunk is also an Iterable<T>
|
|
260
|
+
* MutableHashSet.fromIterable,
|
|
261
|
+
* Array.from
|
|
262
|
+
* )
|
|
263
|
+
* ) // Outputs: [1, 2, 3, 4]
|
|
264
|
+
* ```
|
|
265
|
+
*
|
|
266
|
+
* @memberof MutableHashSet
|
|
52
267
|
* @since 2.0.0
|
|
53
268
|
* @category constructors
|
|
269
|
+
* @template K - The type of elements to be stored in the resulting
|
|
270
|
+
* `MutableHashSet`.
|
|
271
|
+
* @param keys - An `Iterable` collection containing the keys to be added to the
|
|
272
|
+
* `MutableHashSet`.
|
|
273
|
+
* @returns A new `MutableHashSet` containing just the unique elements from the
|
|
274
|
+
* provided iterable.
|
|
275
|
+
* @see Other `MutableHashSet` constructors are {@link module:MutableHashSet.empty} {@link module:MutableHashSet.make}
|
|
54
276
|
*/
|
|
55
277
|
exports.empty = empty;
|
|
56
278
|
const fromIterable = keys => fromHashMap(MutableHashMap.fromIterable(Array.from(keys).map(k => [k, true])));
|
|
57
279
|
/**
|
|
280
|
+
* Construct a new `MutableHashSet` from a variable number of values.
|
|
281
|
+
*
|
|
282
|
+
* Time complexity: **`O(n)`** where n is the number of elements
|
|
283
|
+
*
|
|
284
|
+
* @memberof MutableHashSet
|
|
58
285
|
* @since 2.0.0
|
|
59
286
|
* @category constructors
|
|
287
|
+
* @example
|
|
288
|
+
*
|
|
289
|
+
* ```ts
|
|
290
|
+
* import { Equal, Hash, MutableHashSet } from "effect"
|
|
291
|
+
* import assert from "node:assert/strict"
|
|
292
|
+
*
|
|
293
|
+
* class Character implements Equal.Equal {
|
|
294
|
+
* readonly name: string
|
|
295
|
+
* readonly trait: string
|
|
296
|
+
*
|
|
297
|
+
* constructor(name: string, trait: string) {
|
|
298
|
+
* this.name = name
|
|
299
|
+
* this.trait = trait
|
|
300
|
+
* }
|
|
301
|
+
*
|
|
302
|
+
* // Define equality based on name, and trait
|
|
303
|
+
* [Equal.symbol](that: Equal.Equal): boolean {
|
|
304
|
+
* if (that instanceof Character) {
|
|
305
|
+
* return (
|
|
306
|
+
* Equal.equals(this.name, that.name) &&
|
|
307
|
+
* Equal.equals(this.trait, that.trait)
|
|
308
|
+
* )
|
|
309
|
+
* }
|
|
310
|
+
* return false
|
|
311
|
+
* }
|
|
312
|
+
*
|
|
313
|
+
* // Generate a hash code based on the sum of the character's name and trait
|
|
314
|
+
* [Hash.symbol](): number {
|
|
315
|
+
* return Hash.hash(this.name + this.trait)
|
|
316
|
+
* }
|
|
317
|
+
*
|
|
318
|
+
* static readonly of = (name: string, trait: string): Character => {
|
|
319
|
+
* return new Character(name, trait)
|
|
320
|
+
* }
|
|
321
|
+
* }
|
|
322
|
+
*
|
|
323
|
+
* const mutableCharacterHashSet = MutableHashSet.make(
|
|
324
|
+
* Character.of("Alice", "Curious"),
|
|
325
|
+
* Character.of("Alice", "Curious"),
|
|
326
|
+
* Character.of("White Rabbit", "Always late"),
|
|
327
|
+
* Character.of("Mad Hatter", "Tea enthusiast")
|
|
328
|
+
* )
|
|
329
|
+
*
|
|
330
|
+
* assert.equal(
|
|
331
|
+
* MutableHashSet.has(
|
|
332
|
+
* mutableCharacterHashSet,
|
|
333
|
+
* Character.of("Alice", "Curious")
|
|
334
|
+
* ),
|
|
335
|
+
* true
|
|
336
|
+
* )
|
|
337
|
+
* assert.equal(
|
|
338
|
+
* MutableHashSet.has(
|
|
339
|
+
* mutableCharacterHashSet,
|
|
340
|
+
* Character.of("Fluffy", "Kind")
|
|
341
|
+
* ),
|
|
342
|
+
* false
|
|
343
|
+
* )
|
|
344
|
+
* ```
|
|
345
|
+
*
|
|
346
|
+
* @see Other `MutableHashSet` constructors are {@link module:MutableHashSet.fromIterable} {@link module:MutableHashSet.empty}
|
|
60
347
|
*/
|
|
61
348
|
exports.fromIterable = fromIterable;
|
|
62
349
|
const make = (...keys) => fromIterable(keys);
|
|
63
350
|
/**
|
|
351
|
+
* **Checks** whether the `MutableHashSet` contains the given element, and
|
|
352
|
+
* **adds** it if not.
|
|
353
|
+
*
|
|
354
|
+
* Time complexity: **`O(1)`** average
|
|
355
|
+
*
|
|
356
|
+
* **Syntax**
|
|
357
|
+
*
|
|
358
|
+
* ```ts
|
|
359
|
+
* import { MutableHashSet, pipe } from "effect"
|
|
360
|
+
*
|
|
361
|
+
* // with data-last, a.k.a. pipeable API
|
|
362
|
+
* pipe(
|
|
363
|
+
* MutableHashSet.empty(),
|
|
364
|
+
* MutableHashSet.add(0),
|
|
365
|
+
* MutableHashSet.add(0)
|
|
366
|
+
* )
|
|
367
|
+
*
|
|
368
|
+
* // or piped with the pipe function
|
|
369
|
+
* MutableHashSet.empty().pipe(MutableHashSet.add(0))
|
|
370
|
+
*
|
|
371
|
+
* // or with data-first API
|
|
372
|
+
* MutableHashSet.add(MutableHashSet.empty(), 0)
|
|
373
|
+
* ```
|
|
374
|
+
*
|
|
375
|
+
* @memberof MutableHashSet
|
|
64
376
|
* @since 2.0.0
|
|
65
377
|
* @category elements
|
|
378
|
+
* @see Other `MutableHashSet` elements are {@link module:MutableHashSet.remove} {@link module:MutableHashSet.size} {@link module:MutableHashSet.clear} {@link module:MutableHashSet.has}
|
|
66
379
|
*/
|
|
67
380
|
exports.make = make;
|
|
68
381
|
const add = exports.add = /*#__PURE__*/Dual.dual(2, (self, key) => (MutableHashMap.set(self.keyMap, key, true), self));
|
|
69
382
|
/**
|
|
383
|
+
* Checks if the specified value exists in the `MutableHashSet`.
|
|
384
|
+
*
|
|
385
|
+
* Time complexity: `O(1)` average
|
|
386
|
+
*
|
|
387
|
+
* **Syntax**
|
|
388
|
+
*
|
|
389
|
+
* ```ts
|
|
390
|
+
* import { MutableHashSet, pipe } from "effect"
|
|
391
|
+
* import assert from "node:assert/strict"
|
|
392
|
+
*
|
|
393
|
+
* assert.equal(
|
|
394
|
+
* // with `data-last`, a.k.a. `pipeable` API
|
|
395
|
+
* pipe(MutableHashSet.make(0, 1, 2), MutableHashSet.has(3)),
|
|
396
|
+
* false
|
|
397
|
+
* )
|
|
398
|
+
*
|
|
399
|
+
* assert.equal(
|
|
400
|
+
* // or piped with the pipe function
|
|
401
|
+
* MutableHashSet.make(0, 1, 2).pipe(MutableHashSet.has(3)),
|
|
402
|
+
* false
|
|
403
|
+
* )
|
|
404
|
+
*
|
|
405
|
+
* assert.equal(
|
|
406
|
+
* // or with `data-first` API
|
|
407
|
+
* MutableHashSet.has(MutableHashSet.make(0, 1, 2), 3),
|
|
408
|
+
* false
|
|
409
|
+
* )
|
|
410
|
+
* ```
|
|
411
|
+
*
|
|
412
|
+
* @memberof MutableHashSet
|
|
70
413
|
* @since 2.0.0
|
|
71
414
|
* @category elements
|
|
415
|
+
* @see Other `MutableHashSet` elements are {@link module:MutableHashSet.add} {@link module:MutableHashSet.remove} {@link module:MutableHashSet.size} {@link module:MutableHashSet.clear}
|
|
72
416
|
*/
|
|
73
417
|
const has = exports.has = /*#__PURE__*/Dual.dual(2, (self, key) => MutableHashMap.has(self.keyMap, key));
|
|
74
418
|
/**
|
|
419
|
+
* Removes a value from the `MutableHashSet`.
|
|
420
|
+
*
|
|
421
|
+
* Time complexity: **`O(1)`** average
|
|
422
|
+
*
|
|
423
|
+
* **Syntax**
|
|
424
|
+
*
|
|
425
|
+
* ```ts
|
|
426
|
+
* import { MutableHashSet, pipe } from "effect"
|
|
427
|
+
* import assert from "node:assert/strict"
|
|
428
|
+
*
|
|
429
|
+
* assert.equal(
|
|
430
|
+
* // with `data-last`, a.k.a. `pipeable` API
|
|
431
|
+
* pipe(
|
|
432
|
+
* MutableHashSet.make(0, 1, 2),
|
|
433
|
+
* MutableHashSet.remove(0),
|
|
434
|
+
* MutableHashSet.has(0)
|
|
435
|
+
* ),
|
|
436
|
+
* false
|
|
437
|
+
* )
|
|
438
|
+
*
|
|
439
|
+
* assert.equal(
|
|
440
|
+
* // or piped with the pipe function
|
|
441
|
+
* MutableHashSet.make(0, 1, 2).pipe(
|
|
442
|
+
* MutableHashSet.remove(0),
|
|
443
|
+
* MutableHashSet.has(0)
|
|
444
|
+
* ),
|
|
445
|
+
* false
|
|
446
|
+
* )
|
|
447
|
+
*
|
|
448
|
+
* assert.equal(
|
|
449
|
+
* // or with `data-first` API
|
|
450
|
+
* MutableHashSet.remove(MutableHashSet.make(0, 1, 2), 0).pipe(
|
|
451
|
+
* MutableHashSet.has(0)
|
|
452
|
+
* ),
|
|
453
|
+
* false
|
|
454
|
+
* )
|
|
455
|
+
* ```
|
|
456
|
+
*
|
|
457
|
+
* @memberof MutableHashSet
|
|
75
458
|
* @since 2.0.0
|
|
76
459
|
* @category elements
|
|
460
|
+
* @see Other `MutableHashSet` elements are {@link module:MutableHashSet.add} {@link module:MutableHashSet.has} {@link module:MutableHashSet.size} {@link module:MutableHashSet.clear}
|
|
77
461
|
*/
|
|
78
462
|
const remove = exports.remove = /*#__PURE__*/Dual.dual(2, (self, key) => (MutableHashMap.remove(self.keyMap, key), self));
|
|
79
463
|
/**
|
|
464
|
+
* Calculates the number of values in the `HashSet`.
|
|
465
|
+
*
|
|
466
|
+
* Time complexity: **`O(1)`**
|
|
467
|
+
*
|
|
468
|
+
* @memberof MutableHashSet
|
|
80
469
|
* @since 2.0.0
|
|
81
470
|
* @category elements
|
|
471
|
+
* @example
|
|
472
|
+
*
|
|
473
|
+
* ```ts
|
|
474
|
+
* import { MutableHashSet } from "effect"
|
|
475
|
+
* import assert from "node:assert/strict"
|
|
476
|
+
*
|
|
477
|
+
* assert.equal(MutableHashSet.size(MutableHashSet.empty()), 0)
|
|
478
|
+
*
|
|
479
|
+
* assert.equal(
|
|
480
|
+
* MutableHashSet.size(MutableHashSet.make(1, 2, 2, 3, 4, 3)),
|
|
481
|
+
* 4
|
|
482
|
+
* )
|
|
483
|
+
* ```
|
|
484
|
+
*
|
|
485
|
+
* @template V - The type of the elements to be stored in the `MutableHashSet`.
|
|
486
|
+
* @param self - The `MutableHashSet` instance for which the size is to be
|
|
487
|
+
* determined.
|
|
488
|
+
* @returns The total number of elements within the `MutableHashSet`.
|
|
489
|
+
* @see Other `MutableHashSet` elements are {@link module:MutableHashSet.add} {@link module:MutableHashSet.has} {@link module:MutableHashSet.remove} {@link module:MutableHashSet.clear}
|
|
82
490
|
*/
|
|
83
491
|
const size = self => MutableHashMap.size(self.keyMap);
|
|
84
492
|
/**
|
|
493
|
+
* Removes all values from the `MutableHashSet`.
|
|
494
|
+
*
|
|
495
|
+
* This function operates by delegating the clearing action to the underlying
|
|
496
|
+
* key map associated with the given `MutableHashSet`. It ensures that the hash
|
|
497
|
+
* set becomes empty while maintaining its existence and structure.
|
|
498
|
+
*
|
|
499
|
+
* @memberof MutableHashSet
|
|
85
500
|
* @since 2.0.0
|
|
86
501
|
* @category elements
|
|
502
|
+
* @example
|
|
503
|
+
*
|
|
504
|
+
* ```ts
|
|
505
|
+
* import { MutableHashSet, pipe } from "effect"
|
|
506
|
+
* import assert from "node:assert/strict"
|
|
507
|
+
*
|
|
508
|
+
* assert.deepStrictEqual(
|
|
509
|
+
* pipe(
|
|
510
|
+
* MutableHashSet.make(1, 2, 3, 4),
|
|
511
|
+
* MutableHashSet.clear,
|
|
512
|
+
* MutableHashSet.size
|
|
513
|
+
* ),
|
|
514
|
+
* 0
|
|
515
|
+
* )
|
|
516
|
+
* ```
|
|
517
|
+
*
|
|
518
|
+
* @param self - The `MutableHashSet` to clear.
|
|
519
|
+
* @returns The same `MutableHashSet` after all elements have been removed.
|
|
520
|
+
* @see Other `MutableHashSet` elements are {@link module:MutableHashSet.add} {@link module:MutableHashSet.has} {@link module:MutableHashSet.remove} {@link module:MutableHashSet.size}
|
|
87
521
|
*/
|
|
88
522
|
exports.size = size;
|
|
89
523
|
const clear = self => (MutableHashMap.clear(self.keyMap), self);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MutableHashSet.js","names":["Dual","_interopRequireWildcard","require","_Inspectable","MutableHashMap","_Pipeable","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","TypeId","Symbol","for","MutableHashSetProto","iterator","Array","from","keyMap","map","_","toString","format","toJSON","_id","values","NodeInspectSymbol","pipe","pipeArguments","arguments","fromHashMap","create","empty","exports","fromIterable","keys","k","make","add","dual","self","key","remove","size","clear"],"sources":["../../src/MutableHashSet.ts"],"sourcesContent":[null],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"MutableHashSet.js","names":["Dual","_interopRequireWildcard","require","_Inspectable","MutableHashMap","_Pipeable","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","TypeId","Symbol","for","MutableHashSetProto","iterator","Array","from","keyMap","map","_","toString","format","toJSON","_id","values","NodeInspectSymbol","pipe","pipeArguments","arguments","fromHashMap","create","empty","exports","fromIterable","keys","k","make","add","dual","self","key","remove","size","clear"],"sources":["../../src/MutableHashSet.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|