MCPcopy
hub / github.com/Effect-TS/effect / gen

Function gen

packages/effect/src/Micro.ts:1222–1230  ·  view source on GitHub ↗
(
  ...args:
    | [self: Self, body: (this: Self) => Generator<Eff, AEff, never>]
    | [body: () => Generator<Eff, AEff, never>]
)

Source from the content-addressed store, hash-verified

1220 * @category constructors
1221 */
1222export const gen = <Self, Eff extends YieldWrap<Micro<any, any, any>>, AEff>(
1223 ...args:
1224 | [self: Self, body: (this: Self) => Generator<Eff, AEff, never>]
1225 | [body: () => Generator<Eff, AEff, never>]
1226): Micro<
1227 AEff,
1228 [Eff] extends [never] ? never : [Eff] extends [YieldWrap<Micro<infer _A, infer E, infer _R>>] ? E : never,
1229 [Eff] extends [never] ? never : [Eff] extends [YieldWrap<Micro<infer _A, infer _E, infer R>>] ? R : never
1230> => suspend(() => fromIterator(args.length === 1 ? args[0]() : args[1].call(args[0]) as any))
1231
1232const fromIterator: (
1233 iterator: Iterator<any, YieldWrap<Micro<any, any, any>>>

Callers 1

diffLawsFunction · 0.50

Calls 2

fromIteratorFunction · 0.85
suspendFunction · 0.70

Tested by 1

diffLawsFunction · 0.40