(
typeParameters: TypeParameters,
options: {
readonly decode: (
...typeParameters: {
readonly [K in keyof TypeParameters]: Schema<
Schema.Type<TypeParameters[K]>,
Schema.Encoded<TypeParameters[K]>,
never
>
}
) => (
input: unknown,
options: ParseOptions,
ast: AST.Declaration
) => Effect.Effect<A, ParseResult.ParseIssue, never>
readonly encode: (
...typeParameters: {
readonly [K in keyof TypeParameters]: Schema<
Schema.Type<TypeParameters[K]>,
Schema.Encoded<TypeParameters[K]>,
never
>
}
) => (
input: unknown,
options: ParseOptions,
ast: AST.Declaration
) => Effect.Effect<I, ParseResult.ParseIssue, never>
},
annotations?: Annotations.Schema<A, TypeParameters>
)
| 962 | } |
| 963 | |
| 964 | const declareConstructor = < |
| 965 | const TypeParameters extends ReadonlyArray<Schema.Any>, |
| 966 | I, |
| 967 | A |
| 968 | >( |
| 969 | typeParameters: TypeParameters, |
| 970 | options: { |
| 971 | readonly decode: ( |
| 972 | ...typeParameters: { |
| 973 | readonly [K in keyof TypeParameters]: Schema< |
| 974 | Schema.Type<TypeParameters[K]>, |
| 975 | Schema.Encoded<TypeParameters[K]>, |
| 976 | never |
| 977 | > |
| 978 | } |
| 979 | ) => ( |
| 980 | input: unknown, |
| 981 | options: ParseOptions, |
| 982 | ast: AST.Declaration |
| 983 | ) => Effect.Effect<A, ParseResult.ParseIssue, never> |
| 984 | readonly encode: ( |
| 985 | ...typeParameters: { |
| 986 | readonly [K in keyof TypeParameters]: Schema< |
| 987 | Schema.Type<TypeParameters[K]>, |
| 988 | Schema.Encoded<TypeParameters[K]>, |
| 989 | never |
| 990 | > |
| 991 | } |
| 992 | ) => ( |
| 993 | input: unknown, |
| 994 | options: ParseOptions, |
| 995 | ast: AST.Declaration |
| 996 | ) => Effect.Effect<I, ParseResult.ParseIssue, never> |
| 997 | }, |
| 998 | annotations?: Annotations.Schema<A, TypeParameters> |
| 999 | ): SchemaClass<A, I, Schema.Context<TypeParameters[number]>> => |
| 1000 | makeDeclareClass( |
| 1001 | typeParameters, |
| 1002 | new AST.Declaration( |
| 1003 | typeParameters.map((tp) => tp.ast), |
| 1004 | (...typeParameters) => options.decode(...typeParameters.map(make) as any), |
| 1005 | (...typeParameters) => options.encode(...typeParameters.map(make) as any), |
| 1006 | toASTAnnotations(annotations) |
| 1007 | ) |
| 1008 | ) |
| 1009 | |
| 1010 | const declarePrimitive = <A>( |
| 1011 | is: (input: unknown) => input is A, |
no test coverage detected