Type Alias

GLib-2.0GLib$ParseRecursiveVariantValue

$ParseRecursiveVariantValue: string extends State
    ? unknown
    : State extends `${infer Type}${infer Remaining}`
        ? Type extends | "s"
        | "o"
        | "g"
        | "b"
        | "n"
        | "q"
        | "t"
        | "d"
        | "u"
        | "i"
        | "x"
        | "y"
        | "h"
        | "?"
            ? [BasicTypeMap<Type>, Remaining]
            : Type extends "v"
                ? [any, Remaining]
                : Type extends "("
                    ? $ParseRecursiveVariantTuple<Remaining>
                    : Type extends "a"
                        ? Remaining extends `y${infer Rest}`
                            ? [Uint8Array, Rest]
                            : Remaining extends `{${infer DictContent}`
                                ? $ParseRecursiveVariantDict<DictContent>
                                : $ParseRecursiveVariantValue<Remaining> extends [
                                    infer ElementType,
                                    infer Rest,
                                ]
                                    ? Rest extends string ? [(...), (...)] : VariantTypeError<(...)>
                                    : VariantTypeError<"Array element parsing failed">
                        : Type extends "{"
                            ? $ParseRecursiveVariantKeyValue<Remaining>
                            : Type extends "m"
                                ? $ParseRecursiveVariantValue<Remaining> extends [
                                    infer Value,
                                    infer Rest,
                                ]
                                    ? Rest extends string ? [(...), (...)] : VariantTypeError<(...)>
                                    : VariantTypeError<"Maybe content parsing failed">
                                : VariantTypeError<`Unknown type: ${Type}`>
        : VariantTypeError<`Invalid variant string: ${State}`>

Main recursive variant value parser - unpacks all Variants to native values

Type Parameters

  • State extends string