import { type Match } from "https://deno.land/x/rimbu@0.13.5/deep/deep.ts";
const { Entry } = Match;
Determines the various allowed match types for given type T
.
definition: IsAnyFunc<T> extends true ? T : IsPlainObj<T> extends true ? Match.WithResult<T, P, R, Match.Obj<T, C, P, R>> : IsArray<T> extends true ? Match.Arr<T, C, P, R> | Match.Entry<T[number & keyof T], C[number & keyof C], P, R>[] | Match.Func<T, P, R, Match.Arr<T, C, P, R> | Match.Entry<T[number & keyof T], C[number & keyof C], P, R>[]> : Match.WithResult<T, P, R, [K in keyof C]: C[K & keyof T]>