{"version":3,"file":"hashSet.mjs","names":[],"sources":["../../../esm/Schema/api/hashSet.js"],"sourcesContent":["import * as tsplus_module_1 from \"@fncts/schema/ASTAnnotation\";\nimport * as tsplus_module_2 from \"@fncts/schema/Show\";\nimport * as tsplus_module_3 from \"@fncts/base/collection/immutable/Vector/api\";\nimport * as tsplus_module_4 from \"@fncts/schema/Schema/api\";\nimport * as tsplus_module_5 from \"@fncts/base/collection/immutable/HashSet/api\";\nimport * as tsplus_module_6 from \"@fncts/base/data/function/api\";\nimport * as tsplus_module_7 from \"@fncts/schema/Parser/api\";\nimport * as tsplus_module_8 from \"@fncts/base/collection/immutable/HashSet/definition\";\nimport * as tsplus_module_9 from \"@fncts/schema/ParseError/ParseError\";\nimport * as tsplus_module_10 from \"@fncts/schema/ParseResult\";\nimport * as tsplus_module_11 from \"@fncts/base/data/Either/api\";\nimport * as tsplus_module_12 from \"@fncts/base/collection/immutable/Vector/internal\";\nimport * as tsplus_module_13 from \"@fncts/schema/Parser/definition\";\nimport * as tsplus_module_14 from \"@fncts/test/control/Gen/api\";\nexport const hashSetFromArray = hashSetFromArray_1;\nexport function hashSet(value) {\n    return tsplus_module_4.annotate(tsplus_module_1.GenHook, gen)(tsplus_module_4.annotate(tsplus_module_1.Identifier, `HashSet<${tsplus_module_2.show()(value)}>`)(tsplus_module_4.declaration(tsplus_module_3.vector(value), hashSetParser(true), hashSetParser(false))));\n}\n/**\n * @tsplus static fncts.schema.SchemaOps hashSetFromArray\n */\nfunction hashSetFromArray_1(value) {\n    return tsplus_module_4.transform(hashSet(value), (input) => {\n        const out = tsplus_module_5.beginMutation(tsplus_module_5.empty());\n        for (const v of input) {\n            tsplus_module_5.add(v)(out);\n        }\n        return tsplus_module_5.endMutation(out);\n    }, (input) => {\n        const out = [];\n        tsplus_module_5.forEach((v) => {\n            out.push(v);\n        })(input);\n        return out;\n    })(tsplus_module_4.array(value));\n}\n/**\n * @tsplus derive fncts.schema.Schema[fncts.HashSet]<_> 10\n */\nexport function deriveHashSet(...[value]) {\n    return hashSetFromArray_1(value);\n}\nfunction hashSetParser(isDecoding) {\n    return (value) => {\n        const schema = hashSet(value);\n        const parseValue = isDecoding ? tsplus_module_7.decode(value) : tsplus_module_7.encode(value);\n        return tsplus_module_13.make((u, options) => {\n            if (!tsplus_module_8.isHashSet(u)) {\n                return tsplus_module_10.fail(tsplus_module_9.typeError(schema.ast, u));\n            }\n            const allErrors = options?.allErrors;\n            const errors = tsplus_module_3.emptyPushable();\n            const out = tsplus_module_5.beginMutation(tsplus_module_5.empty());\n            for (const v of u) {\n                const tv = parseValue(v, options);\n                void 0;\n                if (tsplus_module_11.isLeft(tv)) {\n                    tsplus_module_12.push(tsplus_module_9.keyError(value.ast, v, tv.left))(errors);\n                    if (!allErrors) {\n                        return tsplus_module_10.fail(tsplus_module_9.iterableError(schema.ast, u, errors));\n                    }\n                    continue;\n                }\n                tsplus_module_5.add(tv.right)(out);\n            }\n            return tsplus_module_3.isNonEmpty(errors)\n                ? tsplus_module_10.fail(tsplus_module_9.iterableError(schema.ast, u, errors))\n                : tsplus_module_10.succeed(tsplus_module_5.endMutation(out));\n        });\n    };\n}\nfunction gen(value) {\n    return tsplus_module_14.map(tsplus_module_5.from)(tsplus_module_14.array(value));\n}\n//# sourceMappingURL=hashSet.js.map"],"mappings":";;;;;;;;;;;;;;;AAcA,MAAa,mBAAmB;AAChC,SAAgB,QAAQ,OAAO;AAC3B,QAAO,gBAAgB,SAAS,gBAAgB,SAAS,IAAI,CAAC,gBAAgB,SAAS,gBAAgB,YAAY,WAAW,gBAAgB,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,YAAY,gBAAgB,OAAO,MAAM,EAAE,cAAc,KAAK,EAAE,cAAc,MAAM,CAAC,CAAC,CAAC;;;;;AAK3Q,SAAS,mBAAmB,OAAO;AAC/B,QAAO,gBAAgB,UAAU,QAAQ,MAAM,GAAG,UAAU;EACxD,MAAM,MAAM,gBAAgB,cAAc,gBAAgB,OAAO,CAAC;AAClE,OAAK,MAAM,KAAK,MACZ,iBAAgB,IAAI,EAAE,CAAC,IAAI;AAE/B,SAAO,gBAAgB,YAAY,IAAI;KACvC,UAAU;EACV,MAAM,MAAM,EAAE;AACd,kBAAgB,SAAS,MAAM;AAC3B,OAAI,KAAK,EAAE;IACb,CAAC,MAAM;AACT,SAAO;GACT,CAAC,gBAAgB,MAAM,MAAM,CAAC;;;;;AAKpC,SAAgB,cAAc,GAAG,CAAC,QAAQ;AACtC,QAAO,mBAAmB,MAAM;;AAEpC,SAAS,cAAc,YAAY;AAC/B,SAAQ,UAAU;EACd,MAAM,SAAS,QAAQ,MAAM;EAC7B,MAAM,aAAa,aAAa,gBAAgB,OAAO,MAAM,GAAG,gBAAgB,OAAO,MAAM;AAC7F,SAAO,iBAAiB,MAAM,GAAG,YAAY;AACzC,OAAI,CAAC,gBAAgB,UAAU,EAAE,CAC7B,QAAO,iBAAiB,KAAK,gBAAgB,UAAU,OAAO,KAAK,EAAE,CAAC;GAE1E,MAAM,YAAY,SAAS;GAC3B,MAAM,SAAS,gBAAgB,eAAe;GAC9C,MAAM,MAAM,gBAAgB,cAAc,gBAAgB,OAAO,CAAC;AAClE,QAAK,MAAM,KAAK,GAAG;IACf,MAAM,KAAK,WAAW,GAAG,QAAQ;AAEjC,QAAI,iBAAiB,OAAO,GAAG,EAAE;AAC7B,sBAAiB,KAAK,gBAAgB,SAAS,MAAM,KAAK,GAAG,GAAG,KAAK,CAAC,CAAC,OAAO;AAC9E,SAAI,CAAC,UACD,QAAO,iBAAiB,KAAK,gBAAgB,cAAc,OAAO,KAAK,GAAG,OAAO,CAAC;AAEtF;;AAEJ,oBAAgB,IAAI,GAAG,MAAM,CAAC,IAAI;;AAEtC,UAAO,gBAAgB,WAAW,OAAO,GACnC,iBAAiB,KAAK,gBAAgB,cAAc,OAAO,KAAK,GAAG,OAAO,CAAC,GAC3E,iBAAiB,QAAQ,gBAAgB,YAAY,IAAI,CAAC;IAClE;;;AAGV,SAAS,IAAI,OAAO;AAChB,QAAO,iBAAiB,IAAI,gBAAgB,KAAK,CAAC,iBAAiB,MAAM,MAAM,CAAC"}