© 2026 Hedgehog Software, LLC
Schema.Struct.Type/Encoded
import { Effect, ParseResult, Schema, Types } from "effect" // Decode doesn't type check function decodeStruct<Fields extends Schema.Struct.Fields>( schema: Schema.Struct<Fields>, encoded: Schema.Struct.Encoded<Fields> ): Effect.Effect<Schema.Struct.Type<Fields>, ParseResult.ParseError, Schema.Struct.Context<Fields>> { return Schema.decode(schema)(encoded) } // Nor does encode function encodeStruct<Fields extends Schema.Struct.Fields>( schema: Schema.Struct<Fields>, a: Schema.Struct.Type<Fields> ): Effect.Effect<Schema.Struct.Encoded<Fields>, ParseResult.ParseError, Schema.Struct.Context<Fields>> { return Schema.encode(schema)(a) } // This works but ugly. function encodeStruct1<Fields extends Schema.Struct.Fields>( schema: Schema.Struct<Fields>, a: Schema.Struct.Type<Fields> ): Effect.Effect<{[K in keyof Schema.Struct.Encoded<Fields>]: Schema.Struct.Encoded<Fields>[K]}, ParseResult.ParseError, Schema.Struct.Context<Fields>> { return Schema.encode(schema)(a) }