fix(v3/generator): Fix generation of mapped types with enum keys (#4943)

* Fix rendering of map types in binding generator

* Add support for numeric map keys in binding generator

* Add test case for enum map keys

* Update UNRELEASED_CHANGELOG.md

* Add testdata for enum map keys

* Update binding generator testdata

* Update UNRELEASED_CHANGELOG.md

---------

Co-authored-by: Lea Anthony <lea.anthony@gmail.com>
This commit is contained in:
Fabio Massaioli 2026-02-06 13:05:28 +01:00 committed by GitHub
commit 09b57a21c4
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
105 changed files with 2887 additions and 1313 deletions

View file

@ -25,6 +25,7 @@ After processing, the content will be moved to the main changelog and this file
## Changed
<!-- Changes in existing functionality -->
- **BREAKING**: Map keys in generated JS/TS bindings are now marked optional to accurately reflect Go map semantics. Map value access in Typescript now returns `T | undefined` instead of `T`, requiring null checks or assertions (#4943) by `@fbbdev`
## Fixed
<!-- Bug fixes -->
@ -35,6 +36,7 @@ After processing, the content will be moved to the main changelog and this file
- Fix HTML5 internal drag-and-drop being broken when file drop was enabled on Linux
- Fix DPI scaling on Linux/GTK4 by implementing proper PhysicalBounds calculation and fractional scaling support via `gdk_monitor_get_scale` (GTK 4.14+)
- Fix menu items duplicating when creating new windows on Linux/GTK4
- Fix generation of mapped types with enum keys in JS/TS bindings (#4437) by @fbbdev
## Deprecated
<!-- Soon-to-be removed features -->

View file

@ -211,7 +211,7 @@ func (imports *ImportMap) addTypeImpl(typ types.Type, visited map[*types.TypeNam
case *types.Map:
if IsMapKey(t.Key()) {
if IsStringAlias(t.Key()) {
if IsStringAlias(t.Key()) || IsNumberAlias(t.Key()) {
// This model type is always rendered as a string alias,
// hence we can generate it and use it as a type for JS object keys.
imports.addTypeImpl(t.Key(), visited)

View file

@ -71,6 +71,7 @@ type (
IsMapKey bool
IsTypeParam bool
IsStringAlias bool
IsNumberAlias bool
IsClass bool
IsAny bool
}
@ -178,6 +179,7 @@ func (info *ModelInfo) Collect() *ModelInfo {
IsMapKey: IsMapKey(ityp),
IsTypeParam: IsTypeParam(ityp),
IsStringAlias: IsStringAlias(ityp),
IsNumberAlias: IsNumberAlias(ityp),
IsClass: IsClass(ityp),
IsAny: IsAny(ityp),
}

View file

@ -400,6 +400,68 @@ func IsStringAlias(typ types.Type) bool {
return ok && basic.Info()&types.IsString != 0
}
// IsNumberAlias returns true when
// either typ will be rendered to JS/TS as an alias for the TS type `number`,
// or typ itself (not its underlying type) is a pointer
// whose element type satisfies the property described above.
//
// This predicate is only safe to use either with map keys,
// where pointers are treated in an ad-hoc way by [json.Marshal],
// or when typ IS ALREADY KNOWN to be either [types.Alias] or [types.Named].
//
// Otherwise, the result might be incorrect:
// IsNumberAlias MUST NOT be used to check
// whether an arbitrary instance of [types.Type]
// renders as a JS/TS number type.
//
// Notice that IsNumberAlias returns false for all type parameters:
// detecting those that must be always instantiated as number aliases
// is technically possible, but very difficult.
func IsNumberAlias(typ types.Type) bool {
// Unwrap at most one pointer.
// NOTE: do not unalias typ before testing:
// aliases whose underlying type is a pointer
// are never rendered as numbers.
if ptr, ok := typ.(*types.Pointer); ok {
typ = ptr.Elem()
}
switch typ.(type) {
case *types.Alias, *types.Named:
// Aliases and named types might be rendered as number aliases.
default:
// Not a model type, hence not an alias.
return false
}
// Skip pointer and interface types: they are always nullable
// and cannot have any explicitly defined methods.
// This takes care of rejecting type params as well,
// since their underlying type is guaranteed to be an interface.
switch typ.Underlying().(type) {
case *types.Pointer, *types.Interface:
return false
}
// Follow alias chain.
typ = types.Unalias(typ)
// Aliases of the basic numeric types are rendered as numbers.
if basic, ok := typ.(*types.Basic); ok {
return basic.Info()&(types.IsInteger|types.IsUnsigned|types.IsFloat) != 0
}
// json.Marshalers can only be rendered as any.
// TextMarshalers that aren't json.Marshalers render as strings not numbers.
if MaybeJSONMarshaler(typ) != NonMarshaler || MaybeTextMarshaler(typ) != NonMarshaler {
return false
}
// Named types whose underlying type is numeric are rendered as numbers.
basic, ok := typ.Underlying().(*types.Basic)
return ok && basic.Info()&(types.IsInteger|types.IsUnsigned|types.IsFloat) != 0
}
// IsClass returns true if the given type will be rendered
// as a JS/TS model class (or interface).
func IsClass(typ types.Type) bool {

View file

@ -149,7 +149,7 @@ func (m *module) renderMapType(typ *types.Map) (result string, nullable bool) {
case *types.Alias, *types.Named, *types.Pointer:
if collect.IsMapKey(k) {
if collect.IsStringAlias(k) {
if collect.IsStringAlias(k) || collect.IsNumberAlias(k) {
// Alias or named type is a string and therefore
// safe to use as a JS object key.
if ptr, ok := k.(*types.Pointer); ok {
@ -165,7 +165,7 @@ func (m *module) renderMapType(typ *types.Map) (result string, nullable bool) {
}
}
return fmt.Sprintf("{ [_: %s]: %s }%s", key, elem, null), m.UseInterfaces
return fmt.Sprintf("{ [_ in %s]?: %s }%s", key, elem, null), m.UseInterfaces
}
// renderNamedType outputs the TS representation

View file

@ -0,0 +1,3 @@
[
".EnumMapService"
]

View file

@ -0,0 +1,133 @@
package main
import (
_ "embed"
"log"
"github.com/wailsapp/wails/v3/pkg/application"
)
// Status represents different status values
type Status string
const (
StatusPending Status = "pending"
StatusRunning Status = "running"
StatusCompleted Status = "completed"
StatusFailed Status = "failed"
)
// Priority represents priority levels
type Priority int
const (
PriorityLow Priority = 1
PriorityMedium Priority = 2
PriorityHigh Priority = 3
)
// Color represents color values
type Color uint8
const (
Red Color = 1
Green Color = 2
Blue Color = 3
)
// EnumMapService tests various enum map key scenarios
type EnumMapService struct{}
// GetStatusMessages returns a map with string enum keys
func (*EnumMapService) GetStatusMessages() map[Status]string {
return map[Status]string{
StatusPending: "Task is pending",
StatusRunning: "Task is running",
StatusCompleted: "Task completed successfully",
StatusFailed: "Task failed",
}
}
// GetPriorityWeights returns a map with integer enum keys
func (*EnumMapService) GetPriorityWeights() map[Priority]float64 {
return map[Priority]float64{
PriorityLow: 1.0,
PriorityMedium: 2.5,
PriorityHigh: 5.0,
}
}
// GetColorCodes returns a map with uint8 enum keys
func (*EnumMapService) GetColorCodes() map[Color]string {
return map[Color]string{
Red: "#FF0000",
Green: "#00FF00",
Blue: "#0000FF",
}
}
// GetNestedEnumMap returns a map with enum keys and complex values
func (*EnumMapService) GetNestedEnumMap() map[Status]map[Priority]string {
return map[Status]map[Priority]string{
StatusPending: {
PriorityLow: "Waiting in queue",
PriorityMedium: "Scheduled soon",
PriorityHigh: "Next in line",
},
StatusRunning: {
PriorityLow: "Processing slowly",
PriorityMedium: "Processing normally",
PriorityHigh: "Processing urgently",
},
}
}
// GetOptionalEnumMap returns a map with enum keys to optional values
func (*EnumMapService) GetOptionalEnumMap() map[Status]*string {
running := "Currently running"
return map[Status]*string{
StatusPending: nil,
StatusRunning: &running,
StatusCompleted: nil,
StatusFailed: nil,
}
}
// Person represents a person with status
type Person struct {
Name string
Status Status
}
// GetPersonsByStatus returns a map with enum keys to struct values
func (*EnumMapService) GetPersonsByStatus() map[Status][]Person {
return map[Status][]Person{
StatusPending: {
{Name: "Alice", Status: StatusPending},
{Name: "Bob", Status: StatusPending},
},
StatusRunning: {
{Name: "Charlie", Status: StatusRunning},
},
StatusCompleted: {
{Name: "Dave", Status: StatusCompleted},
{Name: "Eve", Status: StatusCompleted},
},
}
}
func main() {
app := application.New(application.Options{
Services: []application.Service{
application.NewService(&EnumMapService{}),
},
})
app.Window.New()
err := app.Run()
if err != nil {
log.Fatal(err)
}
}

View file

@ -245,13 +245,13 @@ type Maps[R comparable, S BasicConstraint, T BadTildeConstraint, U GoodTildeCons
GAZ map[PointerCstrAlias[R, Z]]int // Accept, hide
GAZPtr map[PointerCstrPtrAlias[R, Z]]int // Soft reject
GACi map[ComparableCstrAlias[int]]int // Accept, hide
GACi map[ComparableCstrAlias[int]]int // Accept
GACV map[ComparableCstrAlias[ValueTextMarshaler]]int // Accept
GACP map[ComparableCstrAlias[PointerTextMarshaler]]int // Reject
GACiPtr map[ComparableCstrPtrAlias[int]]int // Reject
GACVPtr map[ComparableCstrPtrAlias[ValueTextMarshaler]]int // Accept, hide
GACPPtr map[ComparableCstrPtrAlias[PointerTextMarshaler]]int // Accept, hide
GABi map[BasicCstrAlias[int]]int // Accept, hide
GABi map[BasicCstrAlias[int]]int // Accept
GABs map[BasicCstrAlias[string]]int // Accept
GABiPtr map[BasicCstrPtrAlias[int]]int // Reject
GABT map[BadTildeCstrAlias[struct{}]]int // Reject
@ -268,7 +268,7 @@ type Maps[R comparable, S BasicConstraint, T BadTildeConstraint, U GoodTildeCons
GAPlP2 map[*PointableCstrAlias[PointerTextMarshaler]]int // Accept
GAPlVPtr map[PointableCstrPtrAlias[ValueTextMarshaler]]int // Accept, hide
GAPlPPtr map[PointableCstrPtrAlias[PointerTextMarshaler]]int // Accept, hide
GAMi map[MixedCstrAlias[uint]]int // Accept, hide
GAMi map[MixedCstrAlias[uint]]int // Accept
GAMS map[MixedCstrAlias[StringType]]int // Accept
GAMV map[MixedCstrAlias[ValueTextMarshaler]]int // Accept
GAMSPtr map[MixedCstrPtrAlias[StringType]]int // Reject

View file

@ -19,7 +19,7 @@ declare module "/wails/runtime.js" {
namespace Events {
interface CustomEvents {
"events_only:class": events_only$0.SomeClass;
"events_only:map": { [_: string]: number[] };
"events_only:map": { [_ in string]?: number[] };
"events_only:nodata": void;
"events_only:other": more$0.StringPtr[];
"events_only:string": string;

View file

@ -183,7 +183,7 @@ export class EmptyStruct {
/**
* A generic alias that wraps a map.
* @template T,U
* @typedef {{ [_: string]: U }} GenericMapAlias
* @typedef {{ [_ in string]?: U }} GenericMapAlias
*/
/**

View file

@ -22,7 +22,7 @@ import * as $models from "./models.js";
* @param {string} str
* @param {$models.Person[]} people
* @param {{"AnotherCount": number, "AnotherOne": $models.Person | null}} $2
* @param {{ [_: `${number}`]: boolean | null }} assoc
* @param {{ [_ in `${number}`]?: boolean | null }} assoc
* @param {(number | null)[]} $4
* @param {string[]} other
* @returns {$CancellablePromise<[$models.Person, any, number[]]>}

View file

@ -11,7 +11,7 @@ import { Create as $Create } from "/wails/runtime.js";
*/
/**
* @typedef {{ [_: string]: Alias }[]} Cyclic
* @typedef {{ [_ in string]?: Alias }[]} Cyclic
*/
/**

View file

@ -0,0 +1,87 @@
// @ts-check
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
// This file is automatically generated. DO NOT EDIT
/**
* EnumMapService tests various enum map key scenarios
* @module
*/
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore: Unused imports
import { Call as $Call, CancellablePromise as $CancellablePromise, Create as $Create } from "/wails/runtime.js";
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore: Unused imports
import * as $models from "./models.js";
/**
* GetColorCodes returns a map with uint8 enum keys
* @returns {$CancellablePromise<{ [_ in $models.Color]?: string }>}
*/
export function GetColorCodes() {
return $Call.ByID(2794981443).then(/** @type {($result: any) => any} */(($result) => {
return $$createType0($result);
}));
}
/**
* GetNestedEnumMap returns a map with enum keys and complex values
* @returns {$CancellablePromise<{ [_ in $models.Status]?: { [_ in $models.Priority]?: string } }>}
*/
export function GetNestedEnumMap() {
return $Call.ByID(3603489560).then(/** @type {($result: any) => any} */(($result) => {
return $$createType2($result);
}));
}
/**
* GetOptionalEnumMap returns a map with enum keys to optional values
* @returns {$CancellablePromise<{ [_ in $models.Status]?: string | null }>}
*/
export function GetOptionalEnumMap() {
return $Call.ByID(1871606385).then(/** @type {($result: any) => any} */(($result) => {
return $$createType3($result);
}));
}
/**
* GetPersonsByStatus returns a map with enum keys to struct values
* @returns {$CancellablePromise<{ [_ in $models.Status]?: $models.Person[] }>}
*/
export function GetPersonsByStatus() {
return $Call.ByID(2189502217).then(/** @type {($result: any) => any} */(($result) => {
return $$createType6($result);
}));
}
/**
* GetPriorityWeights returns a map with integer enum keys
* @returns {$CancellablePromise<{ [_ in $models.Priority]?: number }>}
*/
export function GetPriorityWeights() {
return $Call.ByID(1542216941).then(/** @type {($result: any) => any} */(($result) => {
return $$createType7($result);
}));
}
/**
* GetStatusMessages returns a map with string enum keys
* @returns {$CancellablePromise<{ [_ in $models.Status]?: string }>}
*/
export function GetStatusMessages() {
return $Call.ByID(1788640810).then(/** @type {($result: any) => any} */(($result) => {
return $$createType8($result);
}));
}
// Private type creation functions
const $$createType0 = $Create.Map($Create.Any, $Create.Any);
const $$createType1 = $Create.Map($Create.Any, $Create.Any);
const $$createType2 = $Create.Map($Create.Any, $$createType1);
const $$createType3 = $Create.Map($Create.Any, $Create.Any);
const $$createType4 = $models.Person.createFrom;
const $$createType5 = $Create.Array($$createType4);
const $$createType6 = $Create.Map($Create.Any, $$createType5);
const $$createType7 = $Create.Map($Create.Any, $Create.Any);
const $$createType8 = $Create.Map($Create.Any, $Create.Any);

View file

@ -0,0 +1,15 @@
// @ts-check
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
// This file is automatically generated. DO NOT EDIT
import * as EnumMapService from "./enummapservice.js";
export {
EnumMapService
};
export {
Color,
Person,
Priority,
Status
} from "./models.js";

View file

@ -0,0 +1,94 @@
// @ts-check
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
// This file is automatically generated. DO NOT EDIT
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore: Unused imports
import { Create as $Create } from "/wails/runtime.js";
/**
* Color represents color values
* @readonly
* @enum {number}
*/
export const Color = {
/**
* The Go zero value for the underlying type of the enum.
*/
$zero: 0,
Red: 1,
Green: 2,
Blue: 3,
};
/**
* Person represents a person with status
*/
export class Person {
/**
* Creates a new Person instance.
* @param {Partial<Person>} [$$source = {}] - The source object to create the Person.
*/
constructor($$source = {}) {
if (!("Name" in $$source)) {
/**
* @member
* @type {string}
*/
this["Name"] = "";
}
if (!("Status" in $$source)) {
/**
* @member
* @type {Status}
*/
this["Status"] = Status.$zero;
}
Object.assign(this, $$source);
}
/**
* Creates a new Person instance from a string or object.
* @param {any} [$$source = {}]
* @returns {Person}
*/
static createFrom($$source = {}) {
let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source;
return new Person(/** @type {Partial<Person>} */($$parsedSource));
}
}
/**
* Priority represents priority levels
* @readonly
* @enum {number}
*/
export const Priority = {
/**
* The Go zero value for the underlying type of the enum.
*/
$zero: 0,
PriorityLow: 1,
PriorityMedium: 2,
PriorityHigh: 3,
};
/**
* Status represents different status values
* @readonly
* @enum {string}
*/
export const Status = {
/**
* The Go zero value for the underlying type of the enum.
*/
$zero: "",
StatusPending: "pending",
StatusRunning: "running",
StatusCompleted: "completed",
StatusFailed: "failed",
};

View file

@ -52,6 +52,14 @@ import * as $models from "./models.js";
* @typedef {$models.GoodTildeCstrAlias<U>} GoodTildeCstrAlias
*/
/**
* @typedef {$models.IntAlias} IntAlias
*/
/**
* @typedef {$models.IntType} IntType
*/
/**
* @template Y
* @typedef {$models.InterfaceCstrAlias<Y>} InterfaceCstrAlias

View file

@ -33,7 +33,7 @@ export class HowDifferent {
/**
* But they may have many differences.
* @member
* @type {{ [_: string]: How }[]}
* @type {{ [_ in string]?: How }[]}
*/
this["Differences"] = [];
}

View file

@ -145,7 +145,7 @@ export function IntPointerInputNamedOutputs($in) {
}
/**
* @param {{ [_: `${number}`]: number }} $in
* @param {{ [_ in `${number}`]?: number }} $in
* @returns {$CancellablePromise<void>}
*/
export function MapIntInt($in) {
@ -153,7 +153,7 @@ export function MapIntInt($in) {
}
/**
* @param {{ [_: `${number}`]: number | null }} $in
* @param {{ [_ in `${number}`]?: number | null }} $in
* @returns {$CancellablePromise<void>}
*/
export function MapIntIntPointer($in) {
@ -161,7 +161,7 @@ export function MapIntIntPointer($in) {
}
/**
* @param {{ [_: `${number}`]: number[] }} $in
* @param {{ [_ in `${number}`]?: number[] }} $in
* @returns {$CancellablePromise<void>}
*/
export function MapIntSliceInt($in) {
@ -169,8 +169,8 @@ export function MapIntSliceInt($in) {
}
/**
* @param {{ [_: `${number}`]: number[] }} $in
* @returns {$CancellablePromise<{ [_: `${number}`]: number[] }>}
* @param {{ [_ in `${number}`]?: number[] }} $in
* @returns {$CancellablePromise<{ [_ in `${number}`]?: number[] }>}
*/
export function MapIntSliceIntInMapIntSliceIntOut($in) {
return $Call.ByID(881980169, $in).then(/** @type {($result: any) => any} */(($result) => {
@ -210,7 +210,7 @@ export function PointerFloat64InFloat64Out($in) {
}
/**
* @param {{ [_: `${number}`]: number } | null} $in
* @param {{ [_ in `${number}`]?: number } | null} $in
* @returns {$CancellablePromise<void>}
*/
export function PointerMapIntInt($in) {

View file

@ -145,7 +145,7 @@ export function IntPointerInputNamedOutputs($in) {
}
/**
* @param {{ [_: `${number}`]: number }} $in
* @param {{ [_ in `${number}`]?: number }} $in
* @returns {$CancellablePromise<void>}
*/
export function MapIntInt($in) {
@ -153,7 +153,7 @@ export function MapIntInt($in) {
}
/**
* @param {{ [_: `${number}`]: number | null }} $in
* @param {{ [_ in `${number}`]?: number | null }} $in
* @returns {$CancellablePromise<void>}
*/
export function MapIntIntPointer($in) {
@ -161,7 +161,7 @@ export function MapIntIntPointer($in) {
}
/**
* @param {{ [_: `${number}`]: number[] }} $in
* @param {{ [_ in `${number}`]?: number[] }} $in
* @returns {$CancellablePromise<void>}
*/
export function MapIntSliceInt($in) {
@ -169,8 +169,8 @@ export function MapIntSliceInt($in) {
}
/**
* @param {{ [_: `${number}`]: number[] }} $in
* @returns {$CancellablePromise<{ [_: `${number}`]: number[] }>}
* @param {{ [_ in `${number}`]?: number[] }} $in
* @returns {$CancellablePromise<{ [_ in `${number}`]?: number[] }>}
*/
export function MapIntSliceIntInMapIntSliceIntOut($in) {
return $Call.ByID(881980169, $in).then(/** @type {($result: any) => any} */(($result) => {
@ -210,7 +210,7 @@ export function PointerFloat64InFloat64Out($in) {
}
/**
* @param {{ [_: `${number}`]: number } | null} $in
* @param {{ [_ in `${number}`]?: number } | null} $in
* @returns {$CancellablePromise<void>}
*/
export function PointerMapIntInt($in) {

View file

@ -19,7 +19,7 @@ declare module "/wails/runtime.js" {
namespace Events {
interface CustomEvents {
"events_only:class": events_only$0.SomeClass;
"events_only:map": { [_: string]: number[] };
"events_only:map": { [_ in string]?: number[] };
"events_only:nodata": void;
"events_only:other": more$0.StringPtr[];
"events_only:string": string;

View file

@ -183,7 +183,7 @@ export class EmptyStruct {
/**
* A generic alias that wraps a map.
* @template T,U
* @typedef {{ [_: string]: U }} GenericMapAlias
* @typedef {{ [_ in string]?: U }} GenericMapAlias
*/
/**

View file

@ -22,7 +22,7 @@ import * as $models from "./models.js";
* @param {string} str
* @param {$models.Person[]} people
* @param {{"AnotherCount": number, "AnotherOne": $models.Person | null}} $2
* @param {{ [_: `${number}`]: boolean | null }} assoc
* @param {{ [_ in `${number}`]?: boolean | null }} assoc
* @param {(number | null)[]} $4
* @param {string[]} other
* @returns {$CancellablePromise<[$models.Person, any, number[]]>}

View file

@ -11,7 +11,7 @@ import { Create as $Create } from "/wails/runtime.js";
*/
/**
* @typedef {{ [_: string]: Alias }[]} Cyclic
* @typedef {{ [_ in string]?: Alias }[]} Cyclic
*/
/**

View file

@ -0,0 +1,87 @@
// @ts-check
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
// This file is automatically generated. DO NOT EDIT
/**
* EnumMapService tests various enum map key scenarios
* @module
*/
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore: Unused imports
import { Call as $Call, CancellablePromise as $CancellablePromise, Create as $Create } from "/wails/runtime.js";
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore: Unused imports
import * as $models from "./models.js";
/**
* GetColorCodes returns a map with uint8 enum keys
* @returns {$CancellablePromise<{ [_ in $models.Color]?: string }>}
*/
export function GetColorCodes() {
return $Call.ByName("main.EnumMapService.GetColorCodes").then(/** @type {($result: any) => any} */(($result) => {
return $$createType0($result);
}));
}
/**
* GetNestedEnumMap returns a map with enum keys and complex values
* @returns {$CancellablePromise<{ [_ in $models.Status]?: { [_ in $models.Priority]?: string } }>}
*/
export function GetNestedEnumMap() {
return $Call.ByName("main.EnumMapService.GetNestedEnumMap").then(/** @type {($result: any) => any} */(($result) => {
return $$createType2($result);
}));
}
/**
* GetOptionalEnumMap returns a map with enum keys to optional values
* @returns {$CancellablePromise<{ [_ in $models.Status]?: string | null }>}
*/
export function GetOptionalEnumMap() {
return $Call.ByName("main.EnumMapService.GetOptionalEnumMap").then(/** @type {($result: any) => any} */(($result) => {
return $$createType3($result);
}));
}
/**
* GetPersonsByStatus returns a map with enum keys to struct values
* @returns {$CancellablePromise<{ [_ in $models.Status]?: $models.Person[] }>}
*/
export function GetPersonsByStatus() {
return $Call.ByName("main.EnumMapService.GetPersonsByStatus").then(/** @type {($result: any) => any} */(($result) => {
return $$createType6($result);
}));
}
/**
* GetPriorityWeights returns a map with integer enum keys
* @returns {$CancellablePromise<{ [_ in $models.Priority]?: number }>}
*/
export function GetPriorityWeights() {
return $Call.ByName("main.EnumMapService.GetPriorityWeights").then(/** @type {($result: any) => any} */(($result) => {
return $$createType7($result);
}));
}
/**
* GetStatusMessages returns a map with string enum keys
* @returns {$CancellablePromise<{ [_ in $models.Status]?: string }>}
*/
export function GetStatusMessages() {
return $Call.ByName("main.EnumMapService.GetStatusMessages").then(/** @type {($result: any) => any} */(($result) => {
return $$createType8($result);
}));
}
// Private type creation functions
const $$createType0 = $Create.Map($Create.Any, $Create.Any);
const $$createType1 = $Create.Map($Create.Any, $Create.Any);
const $$createType2 = $Create.Map($Create.Any, $$createType1);
const $$createType3 = $Create.Map($Create.Any, $Create.Any);
const $$createType4 = $models.Person.createFrom;
const $$createType5 = $Create.Array($$createType4);
const $$createType6 = $Create.Map($Create.Any, $$createType5);
const $$createType7 = $Create.Map($Create.Any, $Create.Any);
const $$createType8 = $Create.Map($Create.Any, $Create.Any);

View file

@ -0,0 +1,15 @@
// @ts-check
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
// This file is automatically generated. DO NOT EDIT
import * as EnumMapService from "./enummapservice.js";
export {
EnumMapService
};
export {
Color,
Person,
Priority,
Status
} from "./models.js";

View file

@ -0,0 +1,94 @@
// @ts-check
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
// This file is automatically generated. DO NOT EDIT
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore: Unused imports
import { Create as $Create } from "/wails/runtime.js";
/**
* Color represents color values
* @readonly
* @enum {number}
*/
export const Color = {
/**
* The Go zero value for the underlying type of the enum.
*/
$zero: 0,
Red: 1,
Green: 2,
Blue: 3,
};
/**
* Person represents a person with status
*/
export class Person {
/**
* Creates a new Person instance.
* @param {Partial<Person>} [$$source = {}] - The source object to create the Person.
*/
constructor($$source = {}) {
if (!("Name" in $$source)) {
/**
* @member
* @type {string}
*/
this["Name"] = "";
}
if (!("Status" in $$source)) {
/**
* @member
* @type {Status}
*/
this["Status"] = Status.$zero;
}
Object.assign(this, $$source);
}
/**
* Creates a new Person instance from a string or object.
* @param {any} [$$source = {}]
* @returns {Person}
*/
static createFrom($$source = {}) {
let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source;
return new Person(/** @type {Partial<Person>} */($$parsedSource));
}
}
/**
* Priority represents priority levels
* @readonly
* @enum {number}
*/
export const Priority = {
/**
* The Go zero value for the underlying type of the enum.
*/
$zero: 0,
PriorityLow: 1,
PriorityMedium: 2,
PriorityHigh: 3,
};
/**
* Status represents different status values
* @readonly
* @enum {string}
*/
export const Status = {
/**
* The Go zero value for the underlying type of the enum.
*/
$zero: "",
StatusPending: "pending",
StatusRunning: "running",
StatusCompleted: "completed",
StatusFailed: "failed",
};

View file

@ -52,6 +52,14 @@ import * as $models from "./models.js";
* @typedef {$models.GoodTildeCstrAlias<U>} GoodTildeCstrAlias
*/
/**
* @typedef {$models.IntAlias} IntAlias
*/
/**
* @typedef {$models.IntType} IntType
*/
/**
* @template Y
* @typedef {$models.InterfaceCstrAlias<Y>} InterfaceCstrAlias

View file

@ -33,7 +33,7 @@ export class HowDifferent {
/**
* But they may have many differences.
* @member
* @type {{ [_: string]: How }[]}
* @type {{ [_ in string]?: How }[]}
*/
this["Differences"] = [];
}

View file

@ -145,7 +145,7 @@ export function IntPointerInputNamedOutputs($in) {
}
/**
* @param {{ [_: `${number}`]: number }} $in
* @param {{ [_ in `${number}`]?: number }} $in
* @returns {$CancellablePromise<void>}
*/
export function MapIntInt($in) {
@ -153,7 +153,7 @@ export function MapIntInt($in) {
}
/**
* @param {{ [_: `${number}`]: number | null }} $in
* @param {{ [_ in `${number}`]?: number | null }} $in
* @returns {$CancellablePromise<void>}
*/
export function MapIntIntPointer($in) {
@ -161,7 +161,7 @@ export function MapIntIntPointer($in) {
}
/**
* @param {{ [_: `${number}`]: number[] }} $in
* @param {{ [_ in `${number}`]?: number[] }} $in
* @returns {$CancellablePromise<void>}
*/
export function MapIntSliceInt($in) {
@ -169,8 +169,8 @@ export function MapIntSliceInt($in) {
}
/**
* @param {{ [_: `${number}`]: number[] }} $in
* @returns {$CancellablePromise<{ [_: `${number}`]: number[] }>}
* @param {{ [_ in `${number}`]?: number[] }} $in
* @returns {$CancellablePromise<{ [_ in `${number}`]?: number[] }>}
*/
export function MapIntSliceIntInMapIntSliceIntOut($in) {
return $Call.ByName("main.GreetService.MapIntSliceIntInMapIntSliceIntOut", $in).then(/** @type {($result: any) => any} */(($result) => {
@ -210,7 +210,7 @@ export function PointerFloat64InFloat64Out($in) {
}
/**
* @param {{ [_: `${number}`]: number } | null} $in
* @param {{ [_ in `${number}`]?: number } | null} $in
* @returns {$CancellablePromise<void>}
*/
export function PointerMapIntInt($in) {

View file

@ -145,7 +145,7 @@ export function IntPointerInputNamedOutputs($in) {
}
/**
* @param {{ [_: `${number}`]: number }} $in
* @param {{ [_ in `${number}`]?: number }} $in
* @returns {$CancellablePromise<void>}
*/
export function MapIntInt($in) {
@ -153,7 +153,7 @@ export function MapIntInt($in) {
}
/**
* @param {{ [_: `${number}`]: number | null }} $in
* @param {{ [_ in `${number}`]?: number | null }} $in
* @returns {$CancellablePromise<void>}
*/
export function MapIntIntPointer($in) {
@ -161,7 +161,7 @@ export function MapIntIntPointer($in) {
}
/**
* @param {{ [_: `${number}`]: number[] }} $in
* @param {{ [_ in `${number}`]?: number[] }} $in
* @returns {$CancellablePromise<void>}
*/
export function MapIntSliceInt($in) {
@ -169,8 +169,8 @@ export function MapIntSliceInt($in) {
}
/**
* @param {{ [_: `${number}`]: number[] }} $in
* @returns {$CancellablePromise<{ [_: `${number}`]: number[] }>}
* @param {{ [_ in `${number}`]?: number[] }} $in
* @returns {$CancellablePromise<{ [_ in `${number}`]?: number[] }>}
*/
export function MapIntSliceIntInMapIntSliceIntOut($in) {
return $Call.ByName("main.GreetService.MapIntSliceIntInMapIntSliceIntOut", $in).then(/** @type {($result: any) => any} */(($result) => {
@ -210,7 +210,7 @@ export function PointerFloat64InFloat64Out($in) {
}
/**
* @param {{ [_: `${number}`]: number } | null} $in
* @param {{ [_ in `${number}`]?: number } | null} $in
* @returns {$CancellablePromise<void>}
*/
export function PointerMapIntInt($in) {

View file

@ -19,7 +19,7 @@ declare module "/wails/runtime.js" {
namespace Events {
interface CustomEvents {
"events_only:class": events_only$0.SomeClass;
"events_only:map": { [_: string]: number[] | null } | null;
"events_only:map": { [_ in string]?: number[] | null } | null;
"events_only:nodata": void;
"events_only:other": more$0.StringPtr[] | null;
"events_only:string": string;

View file

@ -61,7 +61,7 @@ import * as subpkg$0 from "./subpkg/models.js";
/**
* A generic alias that wraps a map.
* @template T,U
* @typedef {{ [_: string]: U } | null} GenericMapAlias
* @typedef {{ [_ in string]?: U } | null} GenericMapAlias
*/
/**

View file

@ -22,7 +22,7 @@ import * as $models from "./models.js";
* @param {string} str
* @param {$models.Person[] | null} people
* @param {{"AnotherCount": number, "AnotherOne": $models.Person | null}} $2
* @param {{ [_: `${number}`]: boolean | null } | null} assoc
* @param {{ [_ in `${number}`]?: boolean | null } | null} assoc
* @param {(number | null)[] | null} $4
* @param {string[]} other
* @returns {$CancellablePromise<[$models.Person, any, number[] | null]>}

View file

@ -7,7 +7,7 @@
*/
/**
* @typedef {({ [_: string]: Alias } | null)[] | null} Cyclic
* @typedef {({ [_ in string]?: Alias } | null)[] | null} Cyclic
*/
/**

View file

@ -0,0 +1,64 @@
// @ts-check
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
// This file is automatically generated. DO NOT EDIT
/**
* EnumMapService tests various enum map key scenarios
* @module
*/
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore: Unused imports
import { Call as $Call, CancellablePromise as $CancellablePromise } from "/wails/runtime.js";
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore: Unused imports
import * as $models from "./models.js";
/**
* GetColorCodes returns a map with uint8 enum keys
* @returns {$CancellablePromise<{ [_ in $models.Color]?: string } | null>}
*/
export function GetColorCodes() {
return $Call.ByID(2794981443);
}
/**
* GetNestedEnumMap returns a map with enum keys and complex values
* @returns {$CancellablePromise<{ [_ in $models.Status]?: { [_ in $models.Priority]?: string } | null } | null>}
*/
export function GetNestedEnumMap() {
return $Call.ByID(3603489560);
}
/**
* GetOptionalEnumMap returns a map with enum keys to optional values
* @returns {$CancellablePromise<{ [_ in $models.Status]?: string | null } | null>}
*/
export function GetOptionalEnumMap() {
return $Call.ByID(1871606385);
}
/**
* GetPersonsByStatus returns a map with enum keys to struct values
* @returns {$CancellablePromise<{ [_ in $models.Status]?: $models.Person[] | null } | null>}
*/
export function GetPersonsByStatus() {
return $Call.ByID(2189502217);
}
/**
* GetPriorityWeights returns a map with integer enum keys
* @returns {$CancellablePromise<{ [_ in $models.Priority]?: number } | null>}
*/
export function GetPriorityWeights() {
return $Call.ByID(1542216941);
}
/**
* GetStatusMessages returns a map with string enum keys
* @returns {$CancellablePromise<{ [_ in $models.Status]?: string } | null>}
*/
export function GetStatusMessages() {
return $Call.ByID(1788640810);
}

View file

@ -0,0 +1,21 @@
// @ts-check
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
// This file is automatically generated. DO NOT EDIT
import * as EnumMapService from "./enummapservice.js";
export {
EnumMapService
};
export {
Color,
Priority,
Status
} from "./models.js";
import * as $models from "./models.js";
/**
* Person represents a person with status
* @typedef {$models.Person} Person
*/

View file

@ -0,0 +1,63 @@
// @ts-check
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
// This file is automatically generated. DO NOT EDIT
/**
* Color represents color values
* @readonly
* @enum {number}
*/
export const Color = {
/**
* The Go zero value for the underlying type of the enum.
*/
$zero: 0,
Red: 1,
Green: 2,
Blue: 3,
};
/**
* Person represents a person with status
* @typedef {Object} Person
* @property {string} Name
* @property {Status} Status
*/
/**
* Priority represents priority levels
* @readonly
* @enum {number}
*/
export const Priority = {
/**
* The Go zero value for the underlying type of the enum.
*/
$zero: 0,
PriorityLow: 1,
PriorityMedium: 2,
PriorityHigh: 3,
};
/**
* Status represents different status values
* @readonly
* @enum {string}
*/
export const Status = {
/**
* The Go zero value for the underlying type of the enum.
*/
$zero: "",
StatusPending: "pending",
StatusRunning: "running",
StatusCompleted: "completed",
StatusFailed: "failed",
};
// In interface mode, this file is likely to contain just comments.
// We add a dummy export statement to ensure it is recognised as an ES module.
export {};

View file

@ -48,6 +48,14 @@ import * as $models from "./models.js";
* @typedef {$models.GoodTildeCstrAlias<U>} GoodTildeCstrAlias
*/
/**
* @typedef {$models.IntAlias} IntAlias
*/
/**
* @typedef {$models.IntType} IntType
*/
/**
* @template Y
* @typedef {$models.InterfaceCstrAlias<Y>} InterfaceCstrAlias

View file

@ -41,6 +41,14 @@
* @typedef {U} GoodTildeCstrAlias
*/
/**
* @typedef {number} IntAlias
*/
/**
* @typedef {number} IntType
*/
/**
* @template Y
* @typedef {Y} InterfaceCstrAlias
@ -49,151 +57,151 @@
/**
* @template R,S,T,U,V,W,X,Y,Z
* @typedef {Object} Maps
* @property {{ [_: string]: number } | null} Bool - Reject
* @property {{ [_: `${number}`]: number } | null} Int - Accept
* @property {{ [_: `${number}`]: number } | null} Uint - Accept
* @property {{ [_: string]: number } | null} Float - Reject
* @property {{ [_: string]: number } | null} Complex - Reject
* @property {{ [_: `${number}`]: number } | null} Byte - Accept
* @property {{ [_: `${number}`]: number } | null} Rune - Accept
* @property {{ [_: string]: number } | null} String - Accept
* @property {{ [_: string]: number } | null} IntPtr - Reject
* @property {{ [_: string]: number } | null} UintPtr - Reject
* @property {{ [_: string]: number } | null} FloatPtr - Reject
* @property {{ [_: string]: number } | null} ComplexPtr - Reject
* @property {{ [_: string]: number } | null} StringPtr - Reject
* @property {{ [_: string]: number } | null} NTM - Reject
* @property {{ [_: string]: number } | null} NTMPtr - Reject
* @property {{ [_: ValueTextMarshaler]: number } | null} VTM - Accept
* @property {{ [_: ValueTextMarshaler]: number } | null} VTMPtr - Accept
* @property {{ [_: string]: number } | null} PTM - Reject
* @property {{ [_: PointerTextMarshaler]: number } | null} PTMPtr - Accept
* @property {{ [_: string]: number } | null} JTM - Accept, hide
* @property {{ [_: string]: number } | null} JTMPtr - Accept, hide
* @property {{ [_: string]: number } | null} A - Reject
* @property {{ [_: string]: number } | null} APtr - Reject
* @property {{ [_: string]: number } | null} TM - Accept, hide
* @property {{ [_: string]: number } | null} TMPtr - Reject
* @property {{ [_: string]: number } | null} CI - Accept, hide
* @property {{ [_: string]: number } | null} CIPtr - Reject
* @property {{ [_: string]: number } | null} EI - Accept, hide
* @property {{ [_: string]: number } | null} EIPtr - Reject
* @property {{ [_: EmbeddedValue]: number } | null} EV - Accept
* @property {{ [_: EmbeddedValue]: number } | null} EVPtr - Accept
* @property {{ [_: EmbeddedValuePtr]: number } | null} EVP - Accept
* @property {{ [_: EmbeddedValuePtr]: number } | null} EVPPtr - Accept
* @property {{ [_: string]: number } | null} EP - Reject
* @property {{ [_: EmbeddedPointer]: number } | null} EPPtr - Accept
* @property {{ [_: EmbeddedPointerPtr]: number } | null} EPP - Accept
* @property {{ [_: EmbeddedPointerPtr]: number } | null} EPPPtr - Accept
* @property {{ [_: EmbeddedCustomInterface]: number } | null} ECI - Accept
* @property {{ [_: EmbeddedCustomInterface]: number } | null} ECIPtr - Accept
* @property {{ [_: EmbeddedOriginalInterface]: number } | null} EOI - Accept
* @property {{ [_: EmbeddedOriginalInterface]: number } | null} EOIPtr - Accept
* @property {{ [_: string]: number } | null} WT - Reject
* @property {{ [_: string]: number } | null} WA - Reject
* @property {{ [_: StringType]: number } | null} ST - Accept
* @property {{ [_: StringAlias]: number } | null} SA - Accept
* @property {{ [_: `${number}`]: number } | null} IntT - Accept
* @property {{ [_: `${number}`]: number } | null} IntA - Accept
* @property {{ [_: string]: number } | null} VT - Reject
* @property {{ [_: string]: number } | null} VTPtr - Reject
* @property {{ [_: string]: number } | null} VPT - Reject
* @property {{ [_: string]: number } | null} VPTPtr - Reject
* @property {{ [_: ValueAlias]: number } | null} VA - Accept
* @property {{ [_: ValueAlias]: number } | null} VAPtr - Accept
* @property {{ [_: string]: number } | null} VPA - Accept, hide
* @property {{ [_: string]: number } | null} VPAPtr - Reject
* @property {{ [_: string]: number } | null} PT - Reject
* @property {{ [_: string]: number } | null} PTPtr - Reject
* @property {{ [_: string]: number } | null} PPT - Reject
* @property {{ [_: string]: number } | null} PPTPtr - Reject
* @property {{ [_: string]: number } | null} PA - Reject
* @property {{ [_: PointerAlias]: number } | null} PAPtr - Accept
* @property {{ [_: string]: number } | null} PPA - Accept, hide
* @property {{ [_: string]: number } | null} PPAPtr - Reject
* @property {{ [_: string]: number } | null} IT - Accept, hide
* @property {{ [_: string]: number } | null} ITPtr - Reject
* @property {{ [_: string]: number } | null} IPT - Reject
* @property {{ [_: string]: number } | null} IPTPtr - Reject
* @property {{ [_: string]: number } | null} IA - Accept, hide
* @property {{ [_: string]: number } | null} IAPtr - Reject
* @property {{ [_: string]: number } | null} IPA - Reject
* @property {{ [_: string]: number } | null} IPAPtr - Reject
* @property {{ [_: string]: number } | null} TPR - Soft reject
* @property {{ [_: string]: number } | null} TPRPtr - Soft reject
* @property {{ [_: string]: number } | null} TPS - Accept, hide
* @property {{ [_: string]: number } | null} TPSPtr - Soft reject
* @property {{ [_: string]: number } | null} TPT - Soft reject
* @property {{ [_: string]: number } | null} TPTPtr - Soft reject
* @property {{ [_: string]: number } | null} TPU - Accept, hide
* @property {{ [_: string]: number } | null} TPUPtr - Soft reject
* @property {{ [_: string]: number } | null} TPV - Accept, hide
* @property {{ [_: string]: number } | null} TPVPtr - Soft reject
* @property {{ [_: string]: number } | null} TPW - Soft reject
* @property {{ [_: string]: number } | null} TPWPtr - Accept, hide
* @property {{ [_: string]: number } | null} TPX - Accept, hide
* @property {{ [_: string]: number } | null} TPXPtr - Soft reject
* @property {{ [_: string]: number } | null} TPY - Accept, hide
* @property {{ [_: string]: number } | null} TPYPtr - Soft reject
* @property {{ [_: string]: number } | null} TPZ - Accept, hide
* @property {{ [_: string]: number } | null} TPZPtr - Soft reject
* @property {{ [_: string]: number } | null} GAR - Soft reject
* @property {{ [_: string]: number } | null} GARPtr - Soft reject
* @property {{ [_: string]: number } | null} GAS - Accept, hide
* @property {{ [_: string]: number } | null} GASPtr - Soft reject
* @property {{ [_: string]: number } | null} GAT - Soft reject
* @property {{ [_: string]: number } | null} GATPtr - Soft reject
* @property {{ [_: string]: number } | null} GAU - Accept, hide
* @property {{ [_: string]: number } | null} GAUPtr - Soft reject
* @property {{ [_: string]: number } | null} GAV - Accept, hide
* @property {{ [_: string]: number } | null} GAVPtr - Soft reject
* @property {{ [_: string]: number } | null} GAW - Soft reject
* @property {{ [_: string]: number } | null} GAWPtr - Accept, hide
* @property {{ [_: string]: number } | null} GAX - Accept, hide
* @property {{ [_: string]: number } | null} GAXPtr - Soft reject
* @property {{ [_: string]: number } | null} GAY - Accept, hide
* @property {{ [_: string]: number } | null} GAYPtr - Soft reject
* @property {{ [_: string]: number } | null} GAZ - Accept, hide
* @property {{ [_: string]: number } | null} GAZPtr - Soft reject
* @property {{ [_: `${number}`]: number } | null} GACi - Accept, hide
* @property {{ [_: ComparableCstrAlias<ValueTextMarshaler>]: number } | null} GACV - Accept
* @property {{ [_: string]: number } | null} GACP - Reject
* @property {{ [_: string]: number } | null} GACiPtr - Reject
* @property {{ [_: string]: number } | null} GACVPtr - Accept, hide
* @property {{ [_: string]: number } | null} GACPPtr - Accept, hide
* @property {{ [_: `${number}`]: number } | null} GABi - Accept, hide
* @property {{ [_: BasicCstrAlias<string>]: number } | null} GABs - Accept
* @property {{ [_: string]: number } | null} GABiPtr - Reject
* @property {{ [_: string]: number } | null} GABT - Reject
* @property {{ [_: string]: number } | null} GABTPtr - Reject
* @property {{ [_: GoodTildeCstrAlias<ValueTextMarshaler>]: number } | null} GAGT - Accept
* @property {{ [_: string]: number } | null} GAGTPtr - Accept, hide
* @property {{ [_: NonBasicCstrAlias<ValueTextMarshaler>]: number } | null} GANBV - Accept
* @property {{ [_: string]: number } | null} GANBP - Accept, hide
* @property {{ [_: string]: number } | null} GANBVPtr - Accept, hide
* @property {{ [_: string]: number } | null} GANBPPtr - Reject
* @property {{ [_: PointableCstrAlias<ValueTextMarshaler>]: number } | null} GAPlV1 - Accept
* @property {{ [_: PointableCstrAlias<ValueTextMarshaler>]: number } | null} GAPlV2 - Accept
* @property {{ [_: string]: number } | null} GAPlP1 - Reject
* @property {{ [_: PointableCstrAlias<PointerTextMarshaler>]: number } | null} GAPlP2 - Accept
* @property {{ [_: string]: number } | null} GAPlVPtr - Accept, hide
* @property {{ [_: string]: number } | null} GAPlPPtr - Accept, hide
* @property {{ [_: `${number}`]: number } | null} GAMi - Accept, hide
* @property {{ [_: MixedCstrAlias<StringType>]: number } | null} GAMS - Accept
* @property {{ [_: MixedCstrAlias<ValueTextMarshaler>]: number } | null} GAMV - Accept
* @property {{ [_: string]: number } | null} GAMSPtr - Reject
* @property {{ [_: string]: number } | null} GAMVPtr - Accept, hide
* @property {{ [_: string]: number } | null} GAII - Accept, hide
* @property {{ [_: InterfaceCstrAlias<ValueTextMarshaler>]: number } | null} GAIV - Accept
* @property {{ [_: string]: number } | null} GAIP - Accept, hide
* @property {{ [_: string]: number } | null} GAIIPtr - Reject
* @property {{ [_: string]: number } | null} GAIVPtr - Accept, hide
* @property {{ [_: string]: number } | null} GAIPPtr - Reject
* @property {{ [_: string]: number } | null} GAPrV - Accept, hide
* @property {{ [_: string]: number } | null} GAPrP - Accept, hide
* @property {{ [_: string]: number } | null} GAPrVPtr - Reject
* @property {{ [_: string]: number } | null} GAPrPPtr - Reject
* @property {{ [_ in string]?: number } | null} Bool - Reject
* @property {{ [_ in `${number}`]?: number } | null} Int - Accept
* @property {{ [_ in `${number}`]?: number } | null} Uint - Accept
* @property {{ [_ in string]?: number } | null} Float - Reject
* @property {{ [_ in string]?: number } | null} Complex - Reject
* @property {{ [_ in `${number}`]?: number } | null} Byte - Accept
* @property {{ [_ in `${number}`]?: number } | null} Rune - Accept
* @property {{ [_ in string]?: number } | null} String - Accept
* @property {{ [_ in string]?: number } | null} IntPtr - Reject
* @property {{ [_ in string]?: number } | null} UintPtr - Reject
* @property {{ [_ in string]?: number } | null} FloatPtr - Reject
* @property {{ [_ in string]?: number } | null} ComplexPtr - Reject
* @property {{ [_ in string]?: number } | null} StringPtr - Reject
* @property {{ [_ in string]?: number } | null} NTM - Reject
* @property {{ [_ in string]?: number } | null} NTMPtr - Reject
* @property {{ [_ in ValueTextMarshaler]?: number } | null} VTM - Accept
* @property {{ [_ in ValueTextMarshaler]?: number } | null} VTMPtr - Accept
* @property {{ [_ in string]?: number } | null} PTM - Reject
* @property {{ [_ in PointerTextMarshaler]?: number } | null} PTMPtr - Accept
* @property {{ [_ in string]?: number } | null} JTM - Accept, hide
* @property {{ [_ in string]?: number } | null} JTMPtr - Accept, hide
* @property {{ [_ in string]?: number } | null} A - Reject
* @property {{ [_ in string]?: number } | null} APtr - Reject
* @property {{ [_ in string]?: number } | null} TM - Accept, hide
* @property {{ [_ in string]?: number } | null} TMPtr - Reject
* @property {{ [_ in string]?: number } | null} CI - Accept, hide
* @property {{ [_ in string]?: number } | null} CIPtr - Reject
* @property {{ [_ in string]?: number } | null} EI - Accept, hide
* @property {{ [_ in string]?: number } | null} EIPtr - Reject
* @property {{ [_ in EmbeddedValue]?: number } | null} EV - Accept
* @property {{ [_ in EmbeddedValue]?: number } | null} EVPtr - Accept
* @property {{ [_ in EmbeddedValuePtr]?: number } | null} EVP - Accept
* @property {{ [_ in EmbeddedValuePtr]?: number } | null} EVPPtr - Accept
* @property {{ [_ in string]?: number } | null} EP - Reject
* @property {{ [_ in EmbeddedPointer]?: number } | null} EPPtr - Accept
* @property {{ [_ in EmbeddedPointerPtr]?: number } | null} EPP - Accept
* @property {{ [_ in EmbeddedPointerPtr]?: number } | null} EPPPtr - Accept
* @property {{ [_ in EmbeddedCustomInterface]?: number } | null} ECI - Accept
* @property {{ [_ in EmbeddedCustomInterface]?: number } | null} ECIPtr - Accept
* @property {{ [_ in EmbeddedOriginalInterface]?: number } | null} EOI - Accept
* @property {{ [_ in EmbeddedOriginalInterface]?: number } | null} EOIPtr - Accept
* @property {{ [_ in string]?: number } | null} WT - Reject
* @property {{ [_ in string]?: number } | null} WA - Reject
* @property {{ [_ in StringType]?: number } | null} ST - Accept
* @property {{ [_ in StringAlias]?: number } | null} SA - Accept
* @property {{ [_ in IntType]?: number } | null} IntT - Accept
* @property {{ [_ in IntAlias]?: number } | null} IntA - Accept
* @property {{ [_ in string]?: number } | null} VT - Reject
* @property {{ [_ in string]?: number } | null} VTPtr - Reject
* @property {{ [_ in string]?: number } | null} VPT - Reject
* @property {{ [_ in string]?: number } | null} VPTPtr - Reject
* @property {{ [_ in ValueAlias]?: number } | null} VA - Accept
* @property {{ [_ in ValueAlias]?: number } | null} VAPtr - Accept
* @property {{ [_ in string]?: number } | null} VPA - Accept, hide
* @property {{ [_ in string]?: number } | null} VPAPtr - Reject
* @property {{ [_ in string]?: number } | null} PT - Reject
* @property {{ [_ in string]?: number } | null} PTPtr - Reject
* @property {{ [_ in string]?: number } | null} PPT - Reject
* @property {{ [_ in string]?: number } | null} PPTPtr - Reject
* @property {{ [_ in string]?: number } | null} PA - Reject
* @property {{ [_ in PointerAlias]?: number } | null} PAPtr - Accept
* @property {{ [_ in string]?: number } | null} PPA - Accept, hide
* @property {{ [_ in string]?: number } | null} PPAPtr - Reject
* @property {{ [_ in string]?: number } | null} IT - Accept, hide
* @property {{ [_ in string]?: number } | null} ITPtr - Reject
* @property {{ [_ in string]?: number } | null} IPT - Reject
* @property {{ [_ in string]?: number } | null} IPTPtr - Reject
* @property {{ [_ in string]?: number } | null} IA - Accept, hide
* @property {{ [_ in string]?: number } | null} IAPtr - Reject
* @property {{ [_ in string]?: number } | null} IPA - Reject
* @property {{ [_ in string]?: number } | null} IPAPtr - Reject
* @property {{ [_ in string]?: number } | null} TPR - Soft reject
* @property {{ [_ in string]?: number } | null} TPRPtr - Soft reject
* @property {{ [_ in string]?: number } | null} TPS - Accept, hide
* @property {{ [_ in string]?: number } | null} TPSPtr - Soft reject
* @property {{ [_ in string]?: number } | null} TPT - Soft reject
* @property {{ [_ in string]?: number } | null} TPTPtr - Soft reject
* @property {{ [_ in string]?: number } | null} TPU - Accept, hide
* @property {{ [_ in string]?: number } | null} TPUPtr - Soft reject
* @property {{ [_ in string]?: number } | null} TPV - Accept, hide
* @property {{ [_ in string]?: number } | null} TPVPtr - Soft reject
* @property {{ [_ in string]?: number } | null} TPW - Soft reject
* @property {{ [_ in string]?: number } | null} TPWPtr - Accept, hide
* @property {{ [_ in string]?: number } | null} TPX - Accept, hide
* @property {{ [_ in string]?: number } | null} TPXPtr - Soft reject
* @property {{ [_ in string]?: number } | null} TPY - Accept, hide
* @property {{ [_ in string]?: number } | null} TPYPtr - Soft reject
* @property {{ [_ in string]?: number } | null} TPZ - Accept, hide
* @property {{ [_ in string]?: number } | null} TPZPtr - Soft reject
* @property {{ [_ in string]?: number } | null} GAR - Soft reject
* @property {{ [_ in string]?: number } | null} GARPtr - Soft reject
* @property {{ [_ in string]?: number } | null} GAS - Accept, hide
* @property {{ [_ in string]?: number } | null} GASPtr - Soft reject
* @property {{ [_ in string]?: number } | null} GAT - Soft reject
* @property {{ [_ in string]?: number } | null} GATPtr - Soft reject
* @property {{ [_ in string]?: number } | null} GAU - Accept, hide
* @property {{ [_ in string]?: number } | null} GAUPtr - Soft reject
* @property {{ [_ in string]?: number } | null} GAV - Accept, hide
* @property {{ [_ in string]?: number } | null} GAVPtr - Soft reject
* @property {{ [_ in string]?: number } | null} GAW - Soft reject
* @property {{ [_ in string]?: number } | null} GAWPtr - Accept, hide
* @property {{ [_ in string]?: number } | null} GAX - Accept, hide
* @property {{ [_ in string]?: number } | null} GAXPtr - Soft reject
* @property {{ [_ in string]?: number } | null} GAY - Accept, hide
* @property {{ [_ in string]?: number } | null} GAYPtr - Soft reject
* @property {{ [_ in string]?: number } | null} GAZ - Accept, hide
* @property {{ [_ in string]?: number } | null} GAZPtr - Soft reject
* @property {{ [_ in ComparableCstrAlias<number>]?: number } | null} GACi - Accept
* @property {{ [_ in ComparableCstrAlias<ValueTextMarshaler>]?: number } | null} GACV - Accept
* @property {{ [_ in string]?: number } | null} GACP - Reject
* @property {{ [_ in string]?: number } | null} GACiPtr - Reject
* @property {{ [_ in string]?: number } | null} GACVPtr - Accept, hide
* @property {{ [_ in string]?: number } | null} GACPPtr - Accept, hide
* @property {{ [_ in BasicCstrAlias<number>]?: number } | null} GABi - Accept
* @property {{ [_ in BasicCstrAlias<string>]?: number } | null} GABs - Accept
* @property {{ [_ in string]?: number } | null} GABiPtr - Reject
* @property {{ [_ in string]?: number } | null} GABT - Reject
* @property {{ [_ in string]?: number } | null} GABTPtr - Reject
* @property {{ [_ in GoodTildeCstrAlias<ValueTextMarshaler>]?: number } | null} GAGT - Accept
* @property {{ [_ in string]?: number } | null} GAGTPtr - Accept, hide
* @property {{ [_ in NonBasicCstrAlias<ValueTextMarshaler>]?: number } | null} GANBV - Accept
* @property {{ [_ in string]?: number } | null} GANBP - Accept, hide
* @property {{ [_ in string]?: number } | null} GANBVPtr - Accept, hide
* @property {{ [_ in string]?: number } | null} GANBPPtr - Reject
* @property {{ [_ in PointableCstrAlias<ValueTextMarshaler>]?: number } | null} GAPlV1 - Accept
* @property {{ [_ in PointableCstrAlias<ValueTextMarshaler>]?: number } | null} GAPlV2 - Accept
* @property {{ [_ in string]?: number } | null} GAPlP1 - Reject
* @property {{ [_ in PointableCstrAlias<PointerTextMarshaler>]?: number } | null} GAPlP2 - Accept
* @property {{ [_ in string]?: number } | null} GAPlVPtr - Accept, hide
* @property {{ [_ in string]?: number } | null} GAPlPPtr - Accept, hide
* @property {{ [_ in MixedCstrAlias<number>]?: number } | null} GAMi - Accept
* @property {{ [_ in MixedCstrAlias<StringType>]?: number } | null} GAMS - Accept
* @property {{ [_ in MixedCstrAlias<ValueTextMarshaler>]?: number } | null} GAMV - Accept
* @property {{ [_ in string]?: number } | null} GAMSPtr - Reject
* @property {{ [_ in string]?: number } | null} GAMVPtr - Accept, hide
* @property {{ [_ in string]?: number } | null} GAII - Accept, hide
* @property {{ [_ in InterfaceCstrAlias<ValueTextMarshaler>]?: number } | null} GAIV - Accept
* @property {{ [_ in string]?: number } | null} GAIP - Accept, hide
* @property {{ [_ in string]?: number } | null} GAIIPtr - Reject
* @property {{ [_ in string]?: number } | null} GAIVPtr - Accept, hide
* @property {{ [_ in string]?: number } | null} GAIPPtr - Reject
* @property {{ [_ in string]?: number } | null} GAPrV - Accept, hide
* @property {{ [_ in string]?: number } | null} GAPrP - Accept, hide
* @property {{ [_ in string]?: number } | null} GAPrVPtr - Reject
* @property {{ [_ in string]?: number } | null} GAPrPPtr - Reject
*/
/**

View file

@ -12,7 +12,7 @@ import * as other$0 from "./other/models.js";
* @template How
* @typedef {Object} HowDifferent
* @property {string} Name - They have a name as well.
* @property {({ [_: string]: How } | null)[] | null} Differences - But they may have many differences.
* @property {({ [_ in string]?: How } | null)[] | null} Differences - But they may have many differences.
*/
/**

View file

@ -145,7 +145,7 @@ export function IntPointerInputNamedOutputs($in) {
}
/**
* @param {{ [_: `${number}`]: number } | null} $in
* @param {{ [_ in `${number}`]?: number } | null} $in
* @returns {$CancellablePromise<void>}
*/
export function MapIntInt($in) {
@ -153,7 +153,7 @@ export function MapIntInt($in) {
}
/**
* @param {{ [_: `${number}`]: number | null } | null} $in
* @param {{ [_ in `${number}`]?: number | null } | null} $in
* @returns {$CancellablePromise<void>}
*/
export function MapIntIntPointer($in) {
@ -161,7 +161,7 @@ export function MapIntIntPointer($in) {
}
/**
* @param {{ [_: `${number}`]: number[] | null } | null} $in
* @param {{ [_ in `${number}`]?: number[] | null } | null} $in
* @returns {$CancellablePromise<void>}
*/
export function MapIntSliceInt($in) {
@ -169,8 +169,8 @@ export function MapIntSliceInt($in) {
}
/**
* @param {{ [_: `${number}`]: number[] | null } | null} $in
* @returns {$CancellablePromise<{ [_: `${number}`]: number[] | null } | null>}
* @param {{ [_ in `${number}`]?: number[] | null } | null} $in
* @returns {$CancellablePromise<{ [_ in `${number}`]?: number[] | null } | null>}
*/
export function MapIntSliceIntInMapIntSliceIntOut($in) {
return $Call.ByID(881980169, $in);
@ -208,7 +208,7 @@ export function PointerFloat64InFloat64Out($in) {
}
/**
* @param {{ [_: `${number}`]: number } | null} $in
* @param {{ [_ in `${number}`]?: number } | null} $in
* @returns {$CancellablePromise<void>}
*/
export function PointerMapIntInt($in) {

View file

@ -145,7 +145,7 @@ export function IntPointerInputNamedOutputs($in) {
}
/**
* @param {{ [_: `${number}`]: number } | null} $in
* @param {{ [_ in `${number}`]?: number } | null} $in
* @returns {$CancellablePromise<void>}
*/
export function MapIntInt($in) {
@ -153,7 +153,7 @@ export function MapIntInt($in) {
}
/**
* @param {{ [_: `${number}`]: number | null } | null} $in
* @param {{ [_ in `${number}`]?: number | null } | null} $in
* @returns {$CancellablePromise<void>}
*/
export function MapIntIntPointer($in) {
@ -161,7 +161,7 @@ export function MapIntIntPointer($in) {
}
/**
* @param {{ [_: `${number}`]: number[] | null } | null} $in
* @param {{ [_ in `${number}`]?: number[] | null } | null} $in
* @returns {$CancellablePromise<void>}
*/
export function MapIntSliceInt($in) {
@ -169,8 +169,8 @@ export function MapIntSliceInt($in) {
}
/**
* @param {{ [_: `${number}`]: number[] | null } | null} $in
* @returns {$CancellablePromise<{ [_: `${number}`]: number[] | null } | null>}
* @param {{ [_ in `${number}`]?: number[] | null } | null} $in
* @returns {$CancellablePromise<{ [_ in `${number}`]?: number[] | null } | null>}
*/
export function MapIntSliceIntInMapIntSliceIntOut($in) {
return $Call.ByID(881980169, $in);
@ -208,7 +208,7 @@ export function PointerFloat64InFloat64Out($in) {
}
/**
* @param {{ [_: `${number}`]: number } | null} $in
* @param {{ [_ in `${number}`]?: number } | null} $in
* @returns {$CancellablePromise<void>}
*/
export function PointerMapIntInt($in) {

View file

@ -19,7 +19,7 @@ declare module "/wails/runtime.js" {
namespace Events {
interface CustomEvents {
"events_only:class": events_only$0.SomeClass;
"events_only:map": { [_: string]: number[] | null } | null;
"events_only:map": { [_ in string]?: number[] | null } | null;
"events_only:nodata": void;
"events_only:other": more$0.StringPtr[] | null;
"events_only:string": string;

View file

@ -61,7 +61,7 @@ import * as subpkg$0 from "./subpkg/models.js";
/**
* A generic alias that wraps a map.
* @template T,U
* @typedef {{ [_: string]: U } | null} GenericMapAlias
* @typedef {{ [_ in string]?: U } | null} GenericMapAlias
*/
/**

View file

@ -22,7 +22,7 @@ import * as $models from "./models.js";
* @param {string} str
* @param {$models.Person[] | null} people
* @param {{"AnotherCount": number, "AnotherOne": $models.Person | null}} $2
* @param {{ [_: `${number}`]: boolean | null } | null} assoc
* @param {{ [_ in `${number}`]?: boolean | null } | null} assoc
* @param {(number | null)[] | null} $4
* @param {string[]} other
* @returns {$CancellablePromise<[$models.Person, any, number[] | null]>}

View file

@ -7,7 +7,7 @@
*/
/**
* @typedef {({ [_: string]: Alias } | null)[] | null} Cyclic
* @typedef {({ [_ in string]?: Alias } | null)[] | null} Cyclic
*/
/**

View file

@ -0,0 +1,64 @@
// @ts-check
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
// This file is automatically generated. DO NOT EDIT
/**
* EnumMapService tests various enum map key scenarios
* @module
*/
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore: Unused imports
import { Call as $Call, CancellablePromise as $CancellablePromise } from "/wails/runtime.js";
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore: Unused imports
import * as $models from "./models.js";
/**
* GetColorCodes returns a map with uint8 enum keys
* @returns {$CancellablePromise<{ [_ in $models.Color]?: string } | null>}
*/
export function GetColorCodes() {
return $Call.ByName("main.EnumMapService.GetColorCodes");
}
/**
* GetNestedEnumMap returns a map with enum keys and complex values
* @returns {$CancellablePromise<{ [_ in $models.Status]?: { [_ in $models.Priority]?: string } | null } | null>}
*/
export function GetNestedEnumMap() {
return $Call.ByName("main.EnumMapService.GetNestedEnumMap");
}
/**
* GetOptionalEnumMap returns a map with enum keys to optional values
* @returns {$CancellablePromise<{ [_ in $models.Status]?: string | null } | null>}
*/
export function GetOptionalEnumMap() {
return $Call.ByName("main.EnumMapService.GetOptionalEnumMap");
}
/**
* GetPersonsByStatus returns a map with enum keys to struct values
* @returns {$CancellablePromise<{ [_ in $models.Status]?: $models.Person[] | null } | null>}
*/
export function GetPersonsByStatus() {
return $Call.ByName("main.EnumMapService.GetPersonsByStatus");
}
/**
* GetPriorityWeights returns a map with integer enum keys
* @returns {$CancellablePromise<{ [_ in $models.Priority]?: number } | null>}
*/
export function GetPriorityWeights() {
return $Call.ByName("main.EnumMapService.GetPriorityWeights");
}
/**
* GetStatusMessages returns a map with string enum keys
* @returns {$CancellablePromise<{ [_ in $models.Status]?: string } | null>}
*/
export function GetStatusMessages() {
return $Call.ByName("main.EnumMapService.GetStatusMessages");
}

View file

@ -0,0 +1,21 @@
// @ts-check
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
// This file is automatically generated. DO NOT EDIT
import * as EnumMapService from "./enummapservice.js";
export {
EnumMapService
};
export {
Color,
Priority,
Status
} from "./models.js";
import * as $models from "./models.js";
/**
* Person represents a person with status
* @typedef {$models.Person} Person
*/

View file

@ -0,0 +1,63 @@
// @ts-check
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
// This file is automatically generated. DO NOT EDIT
/**
* Color represents color values
* @readonly
* @enum {number}
*/
export const Color = {
/**
* The Go zero value for the underlying type of the enum.
*/
$zero: 0,
Red: 1,
Green: 2,
Blue: 3,
};
/**
* Person represents a person with status
* @typedef {Object} Person
* @property {string} Name
* @property {Status} Status
*/
/**
* Priority represents priority levels
* @readonly
* @enum {number}
*/
export const Priority = {
/**
* The Go zero value for the underlying type of the enum.
*/
$zero: 0,
PriorityLow: 1,
PriorityMedium: 2,
PriorityHigh: 3,
};
/**
* Status represents different status values
* @readonly
* @enum {string}
*/
export const Status = {
/**
* The Go zero value for the underlying type of the enum.
*/
$zero: "",
StatusPending: "pending",
StatusRunning: "running",
StatusCompleted: "completed",
StatusFailed: "failed",
};
// In interface mode, this file is likely to contain just comments.
// We add a dummy export statement to ensure it is recognised as an ES module.
export {};

View file

@ -48,6 +48,14 @@ import * as $models from "./models.js";
* @typedef {$models.GoodTildeCstrAlias<U>} GoodTildeCstrAlias
*/
/**
* @typedef {$models.IntAlias} IntAlias
*/
/**
* @typedef {$models.IntType} IntType
*/
/**
* @template Y
* @typedef {$models.InterfaceCstrAlias<Y>} InterfaceCstrAlias

View file

@ -41,6 +41,14 @@
* @typedef {U} GoodTildeCstrAlias
*/
/**
* @typedef {number} IntAlias
*/
/**
* @typedef {number} IntType
*/
/**
* @template Y
* @typedef {Y} InterfaceCstrAlias
@ -49,151 +57,151 @@
/**
* @template R,S,T,U,V,W,X,Y,Z
* @typedef {Object} Maps
* @property {{ [_: string]: number } | null} Bool - Reject
* @property {{ [_: `${number}`]: number } | null} Int - Accept
* @property {{ [_: `${number}`]: number } | null} Uint - Accept
* @property {{ [_: string]: number } | null} Float - Reject
* @property {{ [_: string]: number } | null} Complex - Reject
* @property {{ [_: `${number}`]: number } | null} Byte - Accept
* @property {{ [_: `${number}`]: number } | null} Rune - Accept
* @property {{ [_: string]: number } | null} String - Accept
* @property {{ [_: string]: number } | null} IntPtr - Reject
* @property {{ [_: string]: number } | null} UintPtr - Reject
* @property {{ [_: string]: number } | null} FloatPtr - Reject
* @property {{ [_: string]: number } | null} ComplexPtr - Reject
* @property {{ [_: string]: number } | null} StringPtr - Reject
* @property {{ [_: string]: number } | null} NTM - Reject
* @property {{ [_: string]: number } | null} NTMPtr - Reject
* @property {{ [_: ValueTextMarshaler]: number } | null} VTM - Accept
* @property {{ [_: ValueTextMarshaler]: number } | null} VTMPtr - Accept
* @property {{ [_: string]: number } | null} PTM - Reject
* @property {{ [_: PointerTextMarshaler]: number } | null} PTMPtr - Accept
* @property {{ [_: string]: number } | null} JTM - Accept, hide
* @property {{ [_: string]: number } | null} JTMPtr - Accept, hide
* @property {{ [_: string]: number } | null} A - Reject
* @property {{ [_: string]: number } | null} APtr - Reject
* @property {{ [_: string]: number } | null} TM - Accept, hide
* @property {{ [_: string]: number } | null} TMPtr - Reject
* @property {{ [_: string]: number } | null} CI - Accept, hide
* @property {{ [_: string]: number } | null} CIPtr - Reject
* @property {{ [_: string]: number } | null} EI - Accept, hide
* @property {{ [_: string]: number } | null} EIPtr - Reject
* @property {{ [_: EmbeddedValue]: number } | null} EV - Accept
* @property {{ [_: EmbeddedValue]: number } | null} EVPtr - Accept
* @property {{ [_: EmbeddedValuePtr]: number } | null} EVP - Accept
* @property {{ [_: EmbeddedValuePtr]: number } | null} EVPPtr - Accept
* @property {{ [_: string]: number } | null} EP - Reject
* @property {{ [_: EmbeddedPointer]: number } | null} EPPtr - Accept
* @property {{ [_: EmbeddedPointerPtr]: number } | null} EPP - Accept
* @property {{ [_: EmbeddedPointerPtr]: number } | null} EPPPtr - Accept
* @property {{ [_: EmbeddedCustomInterface]: number } | null} ECI - Accept
* @property {{ [_: EmbeddedCustomInterface]: number } | null} ECIPtr - Accept
* @property {{ [_: EmbeddedOriginalInterface]: number } | null} EOI - Accept
* @property {{ [_: EmbeddedOriginalInterface]: number } | null} EOIPtr - Accept
* @property {{ [_: string]: number } | null} WT - Reject
* @property {{ [_: string]: number } | null} WA - Reject
* @property {{ [_: StringType]: number } | null} ST - Accept
* @property {{ [_: StringAlias]: number } | null} SA - Accept
* @property {{ [_: `${number}`]: number } | null} IntT - Accept
* @property {{ [_: `${number}`]: number } | null} IntA - Accept
* @property {{ [_: string]: number } | null} VT - Reject
* @property {{ [_: string]: number } | null} VTPtr - Reject
* @property {{ [_: string]: number } | null} VPT - Reject
* @property {{ [_: string]: number } | null} VPTPtr - Reject
* @property {{ [_: ValueAlias]: number } | null} VA - Accept
* @property {{ [_: ValueAlias]: number } | null} VAPtr - Accept
* @property {{ [_: string]: number } | null} VPA - Accept, hide
* @property {{ [_: string]: number } | null} VPAPtr - Reject
* @property {{ [_: string]: number } | null} PT - Reject
* @property {{ [_: string]: number } | null} PTPtr - Reject
* @property {{ [_: string]: number } | null} PPT - Reject
* @property {{ [_: string]: number } | null} PPTPtr - Reject
* @property {{ [_: string]: number } | null} PA - Reject
* @property {{ [_: PointerAlias]: number } | null} PAPtr - Accept
* @property {{ [_: string]: number } | null} PPA - Accept, hide
* @property {{ [_: string]: number } | null} PPAPtr - Reject
* @property {{ [_: string]: number } | null} IT - Accept, hide
* @property {{ [_: string]: number } | null} ITPtr - Reject
* @property {{ [_: string]: number } | null} IPT - Reject
* @property {{ [_: string]: number } | null} IPTPtr - Reject
* @property {{ [_: string]: number } | null} IA - Accept, hide
* @property {{ [_: string]: number } | null} IAPtr - Reject
* @property {{ [_: string]: number } | null} IPA - Reject
* @property {{ [_: string]: number } | null} IPAPtr - Reject
* @property {{ [_: string]: number } | null} TPR - Soft reject
* @property {{ [_: string]: number } | null} TPRPtr - Soft reject
* @property {{ [_: string]: number } | null} TPS - Accept, hide
* @property {{ [_: string]: number } | null} TPSPtr - Soft reject
* @property {{ [_: string]: number } | null} TPT - Soft reject
* @property {{ [_: string]: number } | null} TPTPtr - Soft reject
* @property {{ [_: string]: number } | null} TPU - Accept, hide
* @property {{ [_: string]: number } | null} TPUPtr - Soft reject
* @property {{ [_: string]: number } | null} TPV - Accept, hide
* @property {{ [_: string]: number } | null} TPVPtr - Soft reject
* @property {{ [_: string]: number } | null} TPW - Soft reject
* @property {{ [_: string]: number } | null} TPWPtr - Accept, hide
* @property {{ [_: string]: number } | null} TPX - Accept, hide
* @property {{ [_: string]: number } | null} TPXPtr - Soft reject
* @property {{ [_: string]: number } | null} TPY - Accept, hide
* @property {{ [_: string]: number } | null} TPYPtr - Soft reject
* @property {{ [_: string]: number } | null} TPZ - Accept, hide
* @property {{ [_: string]: number } | null} TPZPtr - Soft reject
* @property {{ [_: string]: number } | null} GAR - Soft reject
* @property {{ [_: string]: number } | null} GARPtr - Soft reject
* @property {{ [_: string]: number } | null} GAS - Accept, hide
* @property {{ [_: string]: number } | null} GASPtr - Soft reject
* @property {{ [_: string]: number } | null} GAT - Soft reject
* @property {{ [_: string]: number } | null} GATPtr - Soft reject
* @property {{ [_: string]: number } | null} GAU - Accept, hide
* @property {{ [_: string]: number } | null} GAUPtr - Soft reject
* @property {{ [_: string]: number } | null} GAV - Accept, hide
* @property {{ [_: string]: number } | null} GAVPtr - Soft reject
* @property {{ [_: string]: number } | null} GAW - Soft reject
* @property {{ [_: string]: number } | null} GAWPtr - Accept, hide
* @property {{ [_: string]: number } | null} GAX - Accept, hide
* @property {{ [_: string]: number } | null} GAXPtr - Soft reject
* @property {{ [_: string]: number } | null} GAY - Accept, hide
* @property {{ [_: string]: number } | null} GAYPtr - Soft reject
* @property {{ [_: string]: number } | null} GAZ - Accept, hide
* @property {{ [_: string]: number } | null} GAZPtr - Soft reject
* @property {{ [_: `${number}`]: number } | null} GACi - Accept, hide
* @property {{ [_: ComparableCstrAlias<ValueTextMarshaler>]: number } | null} GACV - Accept
* @property {{ [_: string]: number } | null} GACP - Reject
* @property {{ [_: string]: number } | null} GACiPtr - Reject
* @property {{ [_: string]: number } | null} GACVPtr - Accept, hide
* @property {{ [_: string]: number } | null} GACPPtr - Accept, hide
* @property {{ [_: `${number}`]: number } | null} GABi - Accept, hide
* @property {{ [_: BasicCstrAlias<string>]: number } | null} GABs - Accept
* @property {{ [_: string]: number } | null} GABiPtr - Reject
* @property {{ [_: string]: number } | null} GABT - Reject
* @property {{ [_: string]: number } | null} GABTPtr - Reject
* @property {{ [_: GoodTildeCstrAlias<ValueTextMarshaler>]: number } | null} GAGT - Accept
* @property {{ [_: string]: number } | null} GAGTPtr - Accept, hide
* @property {{ [_: NonBasicCstrAlias<ValueTextMarshaler>]: number } | null} GANBV - Accept
* @property {{ [_: string]: number } | null} GANBP - Accept, hide
* @property {{ [_: string]: number } | null} GANBVPtr - Accept, hide
* @property {{ [_: string]: number } | null} GANBPPtr - Reject
* @property {{ [_: PointableCstrAlias<ValueTextMarshaler>]: number } | null} GAPlV1 - Accept
* @property {{ [_: PointableCstrAlias<ValueTextMarshaler>]: number } | null} GAPlV2 - Accept
* @property {{ [_: string]: number } | null} GAPlP1 - Reject
* @property {{ [_: PointableCstrAlias<PointerTextMarshaler>]: number } | null} GAPlP2 - Accept
* @property {{ [_: string]: number } | null} GAPlVPtr - Accept, hide
* @property {{ [_: string]: number } | null} GAPlPPtr - Accept, hide
* @property {{ [_: `${number}`]: number } | null} GAMi - Accept, hide
* @property {{ [_: MixedCstrAlias<StringType>]: number } | null} GAMS - Accept
* @property {{ [_: MixedCstrAlias<ValueTextMarshaler>]: number } | null} GAMV - Accept
* @property {{ [_: string]: number } | null} GAMSPtr - Reject
* @property {{ [_: string]: number } | null} GAMVPtr - Accept, hide
* @property {{ [_: string]: number } | null} GAII - Accept, hide
* @property {{ [_: InterfaceCstrAlias<ValueTextMarshaler>]: number } | null} GAIV - Accept
* @property {{ [_: string]: number } | null} GAIP - Accept, hide
* @property {{ [_: string]: number } | null} GAIIPtr - Reject
* @property {{ [_: string]: number } | null} GAIVPtr - Accept, hide
* @property {{ [_: string]: number } | null} GAIPPtr - Reject
* @property {{ [_: string]: number } | null} GAPrV - Accept, hide
* @property {{ [_: string]: number } | null} GAPrP - Accept, hide
* @property {{ [_: string]: number } | null} GAPrVPtr - Reject
* @property {{ [_: string]: number } | null} GAPrPPtr - Reject
* @property {{ [_ in string]?: number } | null} Bool - Reject
* @property {{ [_ in `${number}`]?: number } | null} Int - Accept
* @property {{ [_ in `${number}`]?: number } | null} Uint - Accept
* @property {{ [_ in string]?: number } | null} Float - Reject
* @property {{ [_ in string]?: number } | null} Complex - Reject
* @property {{ [_ in `${number}`]?: number } | null} Byte - Accept
* @property {{ [_ in `${number}`]?: number } | null} Rune - Accept
* @property {{ [_ in string]?: number } | null} String - Accept
* @property {{ [_ in string]?: number } | null} IntPtr - Reject
* @property {{ [_ in string]?: number } | null} UintPtr - Reject
* @property {{ [_ in string]?: number } | null} FloatPtr - Reject
* @property {{ [_ in string]?: number } | null} ComplexPtr - Reject
* @property {{ [_ in string]?: number } | null} StringPtr - Reject
* @property {{ [_ in string]?: number } | null} NTM - Reject
* @property {{ [_ in string]?: number } | null} NTMPtr - Reject
* @property {{ [_ in ValueTextMarshaler]?: number } | null} VTM - Accept
* @property {{ [_ in ValueTextMarshaler]?: number } | null} VTMPtr - Accept
* @property {{ [_ in string]?: number } | null} PTM - Reject
* @property {{ [_ in PointerTextMarshaler]?: number } | null} PTMPtr - Accept
* @property {{ [_ in string]?: number } | null} JTM - Accept, hide
* @property {{ [_ in string]?: number } | null} JTMPtr - Accept, hide
* @property {{ [_ in string]?: number } | null} A - Reject
* @property {{ [_ in string]?: number } | null} APtr - Reject
* @property {{ [_ in string]?: number } | null} TM - Accept, hide
* @property {{ [_ in string]?: number } | null} TMPtr - Reject
* @property {{ [_ in string]?: number } | null} CI - Accept, hide
* @property {{ [_ in string]?: number } | null} CIPtr - Reject
* @property {{ [_ in string]?: number } | null} EI - Accept, hide
* @property {{ [_ in string]?: number } | null} EIPtr - Reject
* @property {{ [_ in EmbeddedValue]?: number } | null} EV - Accept
* @property {{ [_ in EmbeddedValue]?: number } | null} EVPtr - Accept
* @property {{ [_ in EmbeddedValuePtr]?: number } | null} EVP - Accept
* @property {{ [_ in EmbeddedValuePtr]?: number } | null} EVPPtr - Accept
* @property {{ [_ in string]?: number } | null} EP - Reject
* @property {{ [_ in EmbeddedPointer]?: number } | null} EPPtr - Accept
* @property {{ [_ in EmbeddedPointerPtr]?: number } | null} EPP - Accept
* @property {{ [_ in EmbeddedPointerPtr]?: number } | null} EPPPtr - Accept
* @property {{ [_ in EmbeddedCustomInterface]?: number } | null} ECI - Accept
* @property {{ [_ in EmbeddedCustomInterface]?: number } | null} ECIPtr - Accept
* @property {{ [_ in EmbeddedOriginalInterface]?: number } | null} EOI - Accept
* @property {{ [_ in EmbeddedOriginalInterface]?: number } | null} EOIPtr - Accept
* @property {{ [_ in string]?: number } | null} WT - Reject
* @property {{ [_ in string]?: number } | null} WA - Reject
* @property {{ [_ in StringType]?: number } | null} ST - Accept
* @property {{ [_ in StringAlias]?: number } | null} SA - Accept
* @property {{ [_ in IntType]?: number } | null} IntT - Accept
* @property {{ [_ in IntAlias]?: number } | null} IntA - Accept
* @property {{ [_ in string]?: number } | null} VT - Reject
* @property {{ [_ in string]?: number } | null} VTPtr - Reject
* @property {{ [_ in string]?: number } | null} VPT - Reject
* @property {{ [_ in string]?: number } | null} VPTPtr - Reject
* @property {{ [_ in ValueAlias]?: number } | null} VA - Accept
* @property {{ [_ in ValueAlias]?: number } | null} VAPtr - Accept
* @property {{ [_ in string]?: number } | null} VPA - Accept, hide
* @property {{ [_ in string]?: number } | null} VPAPtr - Reject
* @property {{ [_ in string]?: number } | null} PT - Reject
* @property {{ [_ in string]?: number } | null} PTPtr - Reject
* @property {{ [_ in string]?: number } | null} PPT - Reject
* @property {{ [_ in string]?: number } | null} PPTPtr - Reject
* @property {{ [_ in string]?: number } | null} PA - Reject
* @property {{ [_ in PointerAlias]?: number } | null} PAPtr - Accept
* @property {{ [_ in string]?: number } | null} PPA - Accept, hide
* @property {{ [_ in string]?: number } | null} PPAPtr - Reject
* @property {{ [_ in string]?: number } | null} IT - Accept, hide
* @property {{ [_ in string]?: number } | null} ITPtr - Reject
* @property {{ [_ in string]?: number } | null} IPT - Reject
* @property {{ [_ in string]?: number } | null} IPTPtr - Reject
* @property {{ [_ in string]?: number } | null} IA - Accept, hide
* @property {{ [_ in string]?: number } | null} IAPtr - Reject
* @property {{ [_ in string]?: number } | null} IPA - Reject
* @property {{ [_ in string]?: number } | null} IPAPtr - Reject
* @property {{ [_ in string]?: number } | null} TPR - Soft reject
* @property {{ [_ in string]?: number } | null} TPRPtr - Soft reject
* @property {{ [_ in string]?: number } | null} TPS - Accept, hide
* @property {{ [_ in string]?: number } | null} TPSPtr - Soft reject
* @property {{ [_ in string]?: number } | null} TPT - Soft reject
* @property {{ [_ in string]?: number } | null} TPTPtr - Soft reject
* @property {{ [_ in string]?: number } | null} TPU - Accept, hide
* @property {{ [_ in string]?: number } | null} TPUPtr - Soft reject
* @property {{ [_ in string]?: number } | null} TPV - Accept, hide
* @property {{ [_ in string]?: number } | null} TPVPtr - Soft reject
* @property {{ [_ in string]?: number } | null} TPW - Soft reject
* @property {{ [_ in string]?: number } | null} TPWPtr - Accept, hide
* @property {{ [_ in string]?: number } | null} TPX - Accept, hide
* @property {{ [_ in string]?: number } | null} TPXPtr - Soft reject
* @property {{ [_ in string]?: number } | null} TPY - Accept, hide
* @property {{ [_ in string]?: number } | null} TPYPtr - Soft reject
* @property {{ [_ in string]?: number } | null} TPZ - Accept, hide
* @property {{ [_ in string]?: number } | null} TPZPtr - Soft reject
* @property {{ [_ in string]?: number } | null} GAR - Soft reject
* @property {{ [_ in string]?: number } | null} GARPtr - Soft reject
* @property {{ [_ in string]?: number } | null} GAS - Accept, hide
* @property {{ [_ in string]?: number } | null} GASPtr - Soft reject
* @property {{ [_ in string]?: number } | null} GAT - Soft reject
* @property {{ [_ in string]?: number } | null} GATPtr - Soft reject
* @property {{ [_ in string]?: number } | null} GAU - Accept, hide
* @property {{ [_ in string]?: number } | null} GAUPtr - Soft reject
* @property {{ [_ in string]?: number } | null} GAV - Accept, hide
* @property {{ [_ in string]?: number } | null} GAVPtr - Soft reject
* @property {{ [_ in string]?: number } | null} GAW - Soft reject
* @property {{ [_ in string]?: number } | null} GAWPtr - Accept, hide
* @property {{ [_ in string]?: number } | null} GAX - Accept, hide
* @property {{ [_ in string]?: number } | null} GAXPtr - Soft reject
* @property {{ [_ in string]?: number } | null} GAY - Accept, hide
* @property {{ [_ in string]?: number } | null} GAYPtr - Soft reject
* @property {{ [_ in string]?: number } | null} GAZ - Accept, hide
* @property {{ [_ in string]?: number } | null} GAZPtr - Soft reject
* @property {{ [_ in ComparableCstrAlias<number>]?: number } | null} GACi - Accept
* @property {{ [_ in ComparableCstrAlias<ValueTextMarshaler>]?: number } | null} GACV - Accept
* @property {{ [_ in string]?: number } | null} GACP - Reject
* @property {{ [_ in string]?: number } | null} GACiPtr - Reject
* @property {{ [_ in string]?: number } | null} GACVPtr - Accept, hide
* @property {{ [_ in string]?: number } | null} GACPPtr - Accept, hide
* @property {{ [_ in BasicCstrAlias<number>]?: number } | null} GABi - Accept
* @property {{ [_ in BasicCstrAlias<string>]?: number } | null} GABs - Accept
* @property {{ [_ in string]?: number } | null} GABiPtr - Reject
* @property {{ [_ in string]?: number } | null} GABT - Reject
* @property {{ [_ in string]?: number } | null} GABTPtr - Reject
* @property {{ [_ in GoodTildeCstrAlias<ValueTextMarshaler>]?: number } | null} GAGT - Accept
* @property {{ [_ in string]?: number } | null} GAGTPtr - Accept, hide
* @property {{ [_ in NonBasicCstrAlias<ValueTextMarshaler>]?: number } | null} GANBV - Accept
* @property {{ [_ in string]?: number } | null} GANBP - Accept, hide
* @property {{ [_ in string]?: number } | null} GANBVPtr - Accept, hide
* @property {{ [_ in string]?: number } | null} GANBPPtr - Reject
* @property {{ [_ in PointableCstrAlias<ValueTextMarshaler>]?: number } | null} GAPlV1 - Accept
* @property {{ [_ in PointableCstrAlias<ValueTextMarshaler>]?: number } | null} GAPlV2 - Accept
* @property {{ [_ in string]?: number } | null} GAPlP1 - Reject
* @property {{ [_ in PointableCstrAlias<PointerTextMarshaler>]?: number } | null} GAPlP2 - Accept
* @property {{ [_ in string]?: number } | null} GAPlVPtr - Accept, hide
* @property {{ [_ in string]?: number } | null} GAPlPPtr - Accept, hide
* @property {{ [_ in MixedCstrAlias<number>]?: number } | null} GAMi - Accept
* @property {{ [_ in MixedCstrAlias<StringType>]?: number } | null} GAMS - Accept
* @property {{ [_ in MixedCstrAlias<ValueTextMarshaler>]?: number } | null} GAMV - Accept
* @property {{ [_ in string]?: number } | null} GAMSPtr - Reject
* @property {{ [_ in string]?: number } | null} GAMVPtr - Accept, hide
* @property {{ [_ in string]?: number } | null} GAII - Accept, hide
* @property {{ [_ in InterfaceCstrAlias<ValueTextMarshaler>]?: number } | null} GAIV - Accept
* @property {{ [_ in string]?: number } | null} GAIP - Accept, hide
* @property {{ [_ in string]?: number } | null} GAIIPtr - Reject
* @property {{ [_ in string]?: number } | null} GAIVPtr - Accept, hide
* @property {{ [_ in string]?: number } | null} GAIPPtr - Reject
* @property {{ [_ in string]?: number } | null} GAPrV - Accept, hide
* @property {{ [_ in string]?: number } | null} GAPrP - Accept, hide
* @property {{ [_ in string]?: number } | null} GAPrVPtr - Reject
* @property {{ [_ in string]?: number } | null} GAPrPPtr - Reject
*/
/**

View file

@ -12,7 +12,7 @@ import * as other$0 from "./other/models.js";
* @template How
* @typedef {Object} HowDifferent
* @property {string} Name - They have a name as well.
* @property {({ [_: string]: How } | null)[] | null} Differences - But they may have many differences.
* @property {({ [_ in string]?: How } | null)[] | null} Differences - But they may have many differences.
*/
/**

View file

@ -145,7 +145,7 @@ export function IntPointerInputNamedOutputs($in) {
}
/**
* @param {{ [_: `${number}`]: number } | null} $in
* @param {{ [_ in `${number}`]?: number } | null} $in
* @returns {$CancellablePromise<void>}
*/
export function MapIntInt($in) {
@ -153,7 +153,7 @@ export function MapIntInt($in) {
}
/**
* @param {{ [_: `${number}`]: number | null } | null} $in
* @param {{ [_ in `${number}`]?: number | null } | null} $in
* @returns {$CancellablePromise<void>}
*/
export function MapIntIntPointer($in) {
@ -161,7 +161,7 @@ export function MapIntIntPointer($in) {
}
/**
* @param {{ [_: `${number}`]: number[] | null } | null} $in
* @param {{ [_ in `${number}`]?: number[] | null } | null} $in
* @returns {$CancellablePromise<void>}
*/
export function MapIntSliceInt($in) {
@ -169,8 +169,8 @@ export function MapIntSliceInt($in) {
}
/**
* @param {{ [_: `${number}`]: number[] | null } | null} $in
* @returns {$CancellablePromise<{ [_: `${number}`]: number[] | null } | null>}
* @param {{ [_ in `${number}`]?: number[] | null } | null} $in
* @returns {$CancellablePromise<{ [_ in `${number}`]?: number[] | null } | null>}
*/
export function MapIntSliceIntInMapIntSliceIntOut($in) {
return $Call.ByName("main.GreetService.MapIntSliceIntInMapIntSliceIntOut", $in);
@ -208,7 +208,7 @@ export function PointerFloat64InFloat64Out($in) {
}
/**
* @param {{ [_: `${number}`]: number } | null} $in
* @param {{ [_ in `${number}`]?: number } | null} $in
* @returns {$CancellablePromise<void>}
*/
export function PointerMapIntInt($in) {

View file

@ -145,7 +145,7 @@ export function IntPointerInputNamedOutputs($in) {
}
/**
* @param {{ [_: `${number}`]: number } | null} $in
* @param {{ [_ in `${number}`]?: number } | null} $in
* @returns {$CancellablePromise<void>}
*/
export function MapIntInt($in) {
@ -153,7 +153,7 @@ export function MapIntInt($in) {
}
/**
* @param {{ [_: `${number}`]: number | null } | null} $in
* @param {{ [_ in `${number}`]?: number | null } | null} $in
* @returns {$CancellablePromise<void>}
*/
export function MapIntIntPointer($in) {
@ -161,7 +161,7 @@ export function MapIntIntPointer($in) {
}
/**
* @param {{ [_: `${number}`]: number[] | null } | null} $in
* @param {{ [_ in `${number}`]?: number[] | null } | null} $in
* @returns {$CancellablePromise<void>}
*/
export function MapIntSliceInt($in) {
@ -169,8 +169,8 @@ export function MapIntSliceInt($in) {
}
/**
* @param {{ [_: `${number}`]: number[] | null } | null} $in
* @returns {$CancellablePromise<{ [_: `${number}`]: number[] | null } | null>}
* @param {{ [_ in `${number}`]?: number[] | null } | null} $in
* @returns {$CancellablePromise<{ [_ in `${number}`]?: number[] | null } | null>}
*/
export function MapIntSliceIntInMapIntSliceIntOut($in) {
return $Call.ByName("main.GreetService.MapIntSliceIntInMapIntSliceIntOut", $in);
@ -208,7 +208,7 @@ export function PointerFloat64InFloat64Out($in) {
}
/**
* @param {{ [_: `${number}`]: number } | null} $in
* @param {{ [_ in `${number}`]?: number } | null} $in
* @returns {$CancellablePromise<void>}
*/
export function PointerMapIntInt($in) {

View file

@ -19,7 +19,7 @@ declare module "/wails/runtime.js" {
namespace Events {
interface CustomEvents {
"events_only:class": events_only$0.SomeClass;
"events_only:map": { [_: string]: number[] };
"events_only:map": { [_ in string]?: number[] };
"events_only:nodata": void;
"events_only:other": more$0.StringPtr[];
"events_only:string": string;

View file

@ -158,7 +158,7 @@ export type GenericAlias<T> = T;
/**
* A generic alias that wraps a map.
*/
export type GenericMapAlias<T, U> = { [_: string]: U };
export type GenericMapAlias<T, U> = { [_ in string]?: U };
/**
* A generic struct containing an alias.

View file

@ -19,7 +19,7 @@ import * as $models from "./models.js";
* It has a multiline doc comment
* The comment has even some * / traps!!
*/
export function Greet(str: string, people: $models.Person[], $2: {"AnotherCount": number, "AnotherOne": $models.Person | null}, assoc: { [_: `${number}`]: boolean | null }, $4: (number | null)[], ...other: string[]): $CancellablePromise<[$models.Person, any, number[]]> {
export function Greet(str: string, people: $models.Person[], $2: {"AnotherCount": number, "AnotherOne": $models.Person | null}, assoc: { [_ in `${number}`]?: boolean | null }, $4: (number | null)[], ...other: string[]): $CancellablePromise<[$models.Person, any, number[]]> {
return $Call.ByID(1411160069, str, people, $2, assoc, $4, other).then(($result: any) => {
$result[0] = $$createType0($result[0]);
$result[2] = $$createType1($result[2]);

View file

@ -7,6 +7,6 @@ import { Create as $Create } from "/wails/runtime.js";
export type Alias = Cyclic | null;
export type Cyclic = { [_: string]: Alias }[];
export type Cyclic = { [_ in string]?: Alias }[];
export type GenericCyclic<T> = {"X": GenericCyclic<T> | null, "Y": T[]}[];

View file

@ -0,0 +1,80 @@
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
// This file is automatically generated. DO NOT EDIT
/**
* EnumMapService tests various enum map key scenarios
* @module
*/
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore: Unused imports
import { Call as $Call, CancellablePromise as $CancellablePromise, Create as $Create } from "/wails/runtime.js";
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore: Unused imports
import * as $models from "./models.js";
/**
* GetColorCodes returns a map with uint8 enum keys
*/
export function GetColorCodes(): $CancellablePromise<{ [_ in $models.Color]?: string }> {
return $Call.ByID(2794981443).then(($result: any) => {
return $$createType0($result);
});
}
/**
* GetNestedEnumMap returns a map with enum keys and complex values
*/
export function GetNestedEnumMap(): $CancellablePromise<{ [_ in $models.Status]?: { [_ in $models.Priority]?: string } }> {
return $Call.ByID(3603489560).then(($result: any) => {
return $$createType2($result);
});
}
/**
* GetOptionalEnumMap returns a map with enum keys to optional values
*/
export function GetOptionalEnumMap(): $CancellablePromise<{ [_ in $models.Status]?: string | null }> {
return $Call.ByID(1871606385).then(($result: any) => {
return $$createType3($result);
});
}
/**
* GetPersonsByStatus returns a map with enum keys to struct values
*/
export function GetPersonsByStatus(): $CancellablePromise<{ [_ in $models.Status]?: $models.Person[] }> {
return $Call.ByID(2189502217).then(($result: any) => {
return $$createType6($result);
});
}
/**
* GetPriorityWeights returns a map with integer enum keys
*/
export function GetPriorityWeights(): $CancellablePromise<{ [_ in $models.Priority]?: number }> {
return $Call.ByID(1542216941).then(($result: any) => {
return $$createType7($result);
});
}
/**
* GetStatusMessages returns a map with string enum keys
*/
export function GetStatusMessages(): $CancellablePromise<{ [_ in $models.Status]?: string }> {
return $Call.ByID(1788640810).then(($result: any) => {
return $$createType8($result);
});
}
// Private type creation functions
const $$createType0 = $Create.Map($Create.Any, $Create.Any);
const $$createType1 = $Create.Map($Create.Any, $Create.Any);
const $$createType2 = $Create.Map($Create.Any, $$createType1);
const $$createType3 = $Create.Map($Create.Any, $Create.Any);
const $$createType4 = $models.Person.createFrom;
const $$createType5 = $Create.Array($$createType4);
const $$createType6 = $Create.Map($Create.Any, $$createType5);
const $$createType7 = $Create.Map($Create.Any, $Create.Any);
const $$createType8 = $Create.Map($Create.Any, $Create.Any);

View file

@ -0,0 +1,14 @@
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
// This file is automatically generated. DO NOT EDIT
import * as EnumMapService from "./enummapservice.js";
export {
EnumMapService
};
export {
Color,
Person,
Priority,
Status
} from "./models.js";

View file

@ -0,0 +1,77 @@
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
// This file is automatically generated. DO NOT EDIT
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore: Unused imports
import { Create as $Create } from "/wails/runtime.js";
/**
* Color represents color values
*/
export enum Color {
/**
* The Go zero value for the underlying type of the enum.
*/
$zero = 0,
Red = 1,
Green = 2,
Blue = 3,
};
/**
* Person represents a person with status
*/
export class Person {
"Name": string;
"Status": Status;
/** Creates a new Person instance. */
constructor($$source: Partial<Person> = {}) {
if (!("Name" in $$source)) {
this["Name"] = "";
}
if (!("Status" in $$source)) {
this["Status"] = Status.$zero;
}
Object.assign(this, $$source);
}
/**
* Creates a new Person instance from a string or object.
*/
static createFrom($$source: any = {}): Person {
let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source;
return new Person($$parsedSource as Partial<Person>);
}
}
/**
* Priority represents priority levels
*/
export enum Priority {
/**
* The Go zero value for the underlying type of the enum.
*/
$zero = 0,
PriorityLow = 1,
PriorityMedium = 2,
PriorityHigh = 3,
};
/**
* Status represents different status values
*/
export enum Status {
/**
* The Go zero value for the underlying type of the enum.
*/
$zero = "",
StatusPending = "pending",
StatusRunning = "running",
StatusCompleted = "completed",
StatusFailed = "failed",
};

View file

@ -20,6 +20,8 @@ export type {
EmbeddedValue,
EmbeddedValuePtr,
GoodTildeCstrAlias,
IntAlias,
IntType,
InterfaceCstrAlias,
MixedCstrAlias,
NonBasicCstrAlias,

View file

@ -23,733 +23,737 @@ export type EmbeddedValuePtr = string;
export type GoodTildeCstrAlias<U> = U;
export type IntAlias = number;
export type IntType = number;
export type InterfaceCstrAlias<Y> = Y;
export class Maps<R, S, T, U, V, W, X, Y, Z> {
/**
* Reject
*/
"Bool": { [_: string]: number };
"Bool": { [_ in string]?: number };
/**
* Accept
*/
"Int": { [_: `${number}`]: number };
"Int": { [_ in `${number}`]?: number };
/**
* Accept
*/
"Uint": { [_: `${number}`]: number };
"Uint": { [_ in `${number}`]?: number };
/**
* Reject
*/
"Float": { [_: string]: number };
"Float": { [_ in string]?: number };
/**
* Reject
*/
"Complex": { [_: string]: number };
"Complex": { [_ in string]?: number };
/**
* Accept
*/
"Byte": { [_: `${number}`]: number };
"Byte": { [_ in `${number}`]?: number };
/**
* Accept
*/
"Rune": { [_: `${number}`]: number };
"Rune": { [_ in `${number}`]?: number };
/**
* Accept
*/
"String": { [_: string]: number };
"String": { [_ in string]?: number };
/**
* Reject
*/
"IntPtr": { [_: string]: number };
"IntPtr": { [_ in string]?: number };
/**
* Reject
*/
"UintPtr": { [_: string]: number };
"UintPtr": { [_ in string]?: number };
/**
* Reject
*/
"FloatPtr": { [_: string]: number };
"FloatPtr": { [_ in string]?: number };
/**
* Reject
*/
"ComplexPtr": { [_: string]: number };
"ComplexPtr": { [_ in string]?: number };
/**
* Reject
*/
"StringPtr": { [_: string]: number };
"StringPtr": { [_ in string]?: number };
/**
* Reject
*/
"NTM": { [_: string]: number };
"NTM": { [_ in string]?: number };
/**
* Reject
*/
"NTMPtr": { [_: string]: number };
"NTMPtr": { [_ in string]?: number };
/**
* Accept
*/
"VTM": { [_: ValueTextMarshaler]: number };
"VTM": { [_ in ValueTextMarshaler]?: number };
/**
* Accept
*/
"VTMPtr": { [_: ValueTextMarshaler]: number };
"VTMPtr": { [_ in ValueTextMarshaler]?: number };
/**
* Reject
*/
"PTM": { [_: string]: number };
"PTM": { [_ in string]?: number };
/**
* Accept
*/
"PTMPtr": { [_: PointerTextMarshaler]: number };
"PTMPtr": { [_ in PointerTextMarshaler]?: number };
/**
* Accept, hide
*/
"JTM": { [_: string]: number };
"JTM": { [_ in string]?: number };
/**
* Accept, hide
*/
"JTMPtr": { [_: string]: number };
"JTMPtr": { [_ in string]?: number };
/**
* Reject
*/
"A": { [_: string]: number };
"A": { [_ in string]?: number };
/**
* Reject
*/
"APtr": { [_: string]: number };
"APtr": { [_ in string]?: number };
/**
* Accept, hide
*/
"TM": { [_: string]: number };
"TM": { [_ in string]?: number };
/**
* Reject
*/
"TMPtr": { [_: string]: number };
"TMPtr": { [_ in string]?: number };
/**
* Accept, hide
*/
"CI": { [_: string]: number };
"CI": { [_ in string]?: number };
/**
* Reject
*/
"CIPtr": { [_: string]: number };
"CIPtr": { [_ in string]?: number };
/**
* Accept, hide
*/
"EI": { [_: string]: number };
"EI": { [_ in string]?: number };
/**
* Reject
*/
"EIPtr": { [_: string]: number };
"EIPtr": { [_ in string]?: number };
/**
* Accept
*/
"EV": { [_: EmbeddedValue]: number };
"EV": { [_ in EmbeddedValue]?: number };
/**
* Accept
*/
"EVPtr": { [_: EmbeddedValue]: number };
"EVPtr": { [_ in EmbeddedValue]?: number };
/**
* Accept
*/
"EVP": { [_: EmbeddedValuePtr]: number };
"EVP": { [_ in EmbeddedValuePtr]?: number };
/**
* Accept
*/
"EVPPtr": { [_: EmbeddedValuePtr]: number };
"EVPPtr": { [_ in EmbeddedValuePtr]?: number };
/**
* Reject
*/
"EP": { [_: string]: number };
"EP": { [_ in string]?: number };
/**
* Accept
*/
"EPPtr": { [_: EmbeddedPointer]: number };
"EPPtr": { [_ in EmbeddedPointer]?: number };
/**
* Accept
*/
"EPP": { [_: EmbeddedPointerPtr]: number };
"EPP": { [_ in EmbeddedPointerPtr]?: number };
/**
* Accept
*/
"EPPPtr": { [_: EmbeddedPointerPtr]: number };
"EPPPtr": { [_ in EmbeddedPointerPtr]?: number };
/**
* Accept
*/
"ECI": { [_: EmbeddedCustomInterface]: number };
"ECI": { [_ in EmbeddedCustomInterface]?: number };
/**
* Accept
*/
"ECIPtr": { [_: EmbeddedCustomInterface]: number };
"ECIPtr": { [_ in EmbeddedCustomInterface]?: number };
/**
* Accept
*/
"EOI": { [_: EmbeddedOriginalInterface]: number };
"EOI": { [_ in EmbeddedOriginalInterface]?: number };
/**
* Accept
*/
"EOIPtr": { [_: EmbeddedOriginalInterface]: number };
"EOIPtr": { [_ in EmbeddedOriginalInterface]?: number };
/**
* Reject
*/
"WT": { [_: string]: number };
"WT": { [_ in string]?: number };
/**
* Reject
*/
"WA": { [_: string]: number };
"WA": { [_ in string]?: number };
/**
* Accept
*/
"ST": { [_: StringType]: number };
"ST": { [_ in StringType]?: number };
/**
* Accept
*/
"SA": { [_: StringAlias]: number };
"SA": { [_ in StringAlias]?: number };
/**
* Accept
*/
"IntT": { [_: `${number}`]: number };
"IntT": { [_ in IntType]?: number };
/**
* Accept
*/
"IntA": { [_: `${number}`]: number };
"IntA": { [_ in IntAlias]?: number };
/**
* Reject
*/
"VT": { [_: string]: number };
"VT": { [_ in string]?: number };
/**
* Reject
*/
"VTPtr": { [_: string]: number };
"VTPtr": { [_ in string]?: number };
/**
* Reject
*/
"VPT": { [_: string]: number };
"VPT": { [_ in string]?: number };
/**
* Reject
*/
"VPTPtr": { [_: string]: number };
"VPTPtr": { [_ in string]?: number };
/**
* Accept
*/
"VA": { [_: ValueAlias]: number };
"VA": { [_ in ValueAlias]?: number };
/**
* Accept
*/
"VAPtr": { [_: ValueAlias]: number };
"VAPtr": { [_ in ValueAlias]?: number };
/**
* Accept, hide
*/
"VPA": { [_: string]: number };
"VPA": { [_ in string]?: number };
/**
* Reject
*/
"VPAPtr": { [_: string]: number };
"VPAPtr": { [_ in string]?: number };
/**
* Reject
*/
"PT": { [_: string]: number };
"PT": { [_ in string]?: number };
/**
* Reject
*/
"PTPtr": { [_: string]: number };
"PTPtr": { [_ in string]?: number };
/**
* Reject
*/
"PPT": { [_: string]: number };
"PPT": { [_ in string]?: number };
/**
* Reject
*/
"PPTPtr": { [_: string]: number };
"PPTPtr": { [_ in string]?: number };
/**
* Reject
*/
"PA": { [_: string]: number };
"PA": { [_ in string]?: number };
/**
* Accept
*/
"PAPtr": { [_: PointerAlias]: number };
"PAPtr": { [_ in PointerAlias]?: number };
/**
* Accept, hide
*/
"PPA": { [_: string]: number };
"PPA": { [_ in string]?: number };
/**
* Reject
*/
"PPAPtr": { [_: string]: number };
"PPAPtr": { [_ in string]?: number };
/**
* Accept, hide
*/
"IT": { [_: string]: number };
"IT": { [_ in string]?: number };
/**
* Reject
*/
"ITPtr": { [_: string]: number };
"ITPtr": { [_ in string]?: number };
/**
* Reject
*/
"IPT": { [_: string]: number };
"IPT": { [_ in string]?: number };
/**
* Reject
*/
"IPTPtr": { [_: string]: number };
"IPTPtr": { [_ in string]?: number };
/**
* Accept, hide
*/
"IA": { [_: string]: number };
"IA": { [_ in string]?: number };
/**
* Reject
*/
"IAPtr": { [_: string]: number };
"IAPtr": { [_ in string]?: number };
/**
* Reject
*/
"IPA": { [_: string]: number };
"IPA": { [_ in string]?: number };
/**
* Reject
*/
"IPAPtr": { [_: string]: number };
"IPAPtr": { [_ in string]?: number };
/**
* Soft reject
*/
"TPR": { [_: string]: number };
"TPR": { [_ in string]?: number };
/**
* Soft reject
*/
"TPRPtr": { [_: string]: number };
"TPRPtr": { [_ in string]?: number };
/**
* Accept, hide
*/
"TPS": { [_: string]: number };
"TPS": { [_ in string]?: number };
/**
* Soft reject
*/
"TPSPtr": { [_: string]: number };
"TPSPtr": { [_ in string]?: number };
/**
* Soft reject
*/
"TPT": { [_: string]: number };
"TPT": { [_ in string]?: number };
/**
* Soft reject
*/
"TPTPtr": { [_: string]: number };
"TPTPtr": { [_ in string]?: number };
/**
* Accept, hide
*/
"TPU": { [_: string]: number };
"TPU": { [_ in string]?: number };
/**
* Soft reject
*/
"TPUPtr": { [_: string]: number };
"TPUPtr": { [_ in string]?: number };
/**
* Accept, hide
*/
"TPV": { [_: string]: number };
"TPV": { [_ in string]?: number };
/**
* Soft reject
*/
"TPVPtr": { [_: string]: number };
"TPVPtr": { [_ in string]?: number };
/**
* Soft reject
*/
"TPW": { [_: string]: number };
"TPW": { [_ in string]?: number };
/**
* Accept, hide
*/
"TPWPtr": { [_: string]: number };
"TPWPtr": { [_ in string]?: number };
/**
* Accept, hide
*/
"TPX": { [_: string]: number };
"TPX": { [_ in string]?: number };
/**
* Soft reject
*/
"TPXPtr": { [_: string]: number };
"TPXPtr": { [_ in string]?: number };
/**
* Accept, hide
*/
"TPY": { [_: string]: number };
"TPY": { [_ in string]?: number };
/**
* Soft reject
*/
"TPYPtr": { [_: string]: number };
"TPYPtr": { [_ in string]?: number };
/**
* Accept, hide
*/
"TPZ": { [_: string]: number };
"TPZ": { [_ in string]?: number };
/**
* Soft reject
*/
"TPZPtr": { [_: string]: number };
"TPZPtr": { [_ in string]?: number };
/**
* Soft reject
*/
"GAR": { [_: string]: number };
"GAR": { [_ in string]?: number };
/**
* Soft reject
*/
"GARPtr": { [_: string]: number };
"GARPtr": { [_ in string]?: number };
/**
* Accept, hide
*/
"GAS": { [_: string]: number };
"GAS": { [_ in string]?: number };
/**
* Soft reject
*/
"GASPtr": { [_: string]: number };
"GASPtr": { [_ in string]?: number };
/**
* Soft reject
*/
"GAT": { [_: string]: number };
"GAT": { [_ in string]?: number };
/**
* Soft reject
*/
"GATPtr": { [_: string]: number };
"GATPtr": { [_ in string]?: number };
/**
* Accept, hide
*/
"GAU": { [_: string]: number };
"GAU": { [_ in string]?: number };
/**
* Soft reject
*/
"GAUPtr": { [_: string]: number };
"GAUPtr": { [_ in string]?: number };
/**
* Accept, hide
*/
"GAV": { [_: string]: number };
"GAV": { [_ in string]?: number };
/**
* Soft reject
*/
"GAVPtr": { [_: string]: number };
"GAVPtr": { [_ in string]?: number };
/**
* Soft reject
*/
"GAW": { [_: string]: number };
"GAW": { [_ in string]?: number };
/**
* Accept, hide
*/
"GAWPtr": { [_: string]: number };
"GAWPtr": { [_ in string]?: number };
/**
* Accept, hide
*/
"GAX": { [_: string]: number };
"GAX": { [_ in string]?: number };
/**
* Soft reject
*/
"GAXPtr": { [_: string]: number };
"GAXPtr": { [_ in string]?: number };
/**
* Accept, hide
*/
"GAY": { [_: string]: number };
"GAY": { [_ in string]?: number };
/**
* Soft reject
*/
"GAYPtr": { [_: string]: number };
"GAYPtr": { [_ in string]?: number };
/**
* Accept, hide
*/
"GAZ": { [_: string]: number };
"GAZ": { [_ in string]?: number };
/**
* Soft reject
*/
"GAZPtr": { [_: string]: number };
/**
* Accept, hide
*/
"GACi": { [_: `${number}`]: number };
"GAZPtr": { [_ in string]?: number };
/**
* Accept
*/
"GACV": { [_: ComparableCstrAlias<ValueTextMarshaler>]: number };
/**
* Reject
*/
"GACP": { [_: string]: number };
/**
* Reject
*/
"GACiPtr": { [_: string]: number };
/**
* Accept, hide
*/
"GACVPtr": { [_: string]: number };
/**
* Accept, hide
*/
"GACPPtr": { [_: string]: number };
/**
* Accept, hide
*/
"GABi": { [_: `${number}`]: number };
"GACi": { [_ in ComparableCstrAlias<number>]?: number };
/**
* Accept
*/
"GABs": { [_: BasicCstrAlias<string>]: number };
"GACV": { [_ in ComparableCstrAlias<ValueTextMarshaler>]?: number };
/**
* Reject
*/
"GABiPtr": { [_: string]: number };
"GACP": { [_ in string]?: number };
/**
* Reject
*/
"GABT": { [_: string]: number };
"GACiPtr": { [_ in string]?: number };
/**
* Reject
* Accept, hide
*/
"GABTPtr": { [_: string]: number };
"GACVPtr": { [_ in string]?: number };
/**
* Accept, hide
*/
"GACPPtr": { [_ in string]?: number };
/**
* Accept
*/
"GAGT": { [_: GoodTildeCstrAlias<ValueTextMarshaler>]: number };
/**
* Accept, hide
*/
"GAGTPtr": { [_: string]: number };
"GABi": { [_ in BasicCstrAlias<number>]?: number };
/**
* Accept
*/
"GANBV": { [_: NonBasicCstrAlias<ValueTextMarshaler>]: number };
/**
* Accept, hide
*/
"GANBP": { [_: string]: number };
/**
* Accept, hide
*/
"GANBVPtr": { [_: string]: number };
"GABs": { [_ in BasicCstrAlias<string>]?: number };
/**
* Reject
*/
"GANBPPtr": { [_: string]: number };
"GABiPtr": { [_ in string]?: number };
/**
* Reject
*/
"GABT": { [_ in string]?: number };
/**
* Reject
*/
"GABTPtr": { [_ in string]?: number };
/**
* Accept
*/
"GAPlV1": { [_: PointableCstrAlias<ValueTextMarshaler>]: number };
"GAGT": { [_ in GoodTildeCstrAlias<ValueTextMarshaler>]?: number };
/**
* Accept, hide
*/
"GAGTPtr": { [_ in string]?: number };
/**
* Accept
*/
"GAPlV2": { [_: PointableCstrAlias<ValueTextMarshaler>]: number };
"GANBV": { [_ in NonBasicCstrAlias<ValueTextMarshaler>]?: number };
/**
* Accept, hide
*/
"GANBP": { [_ in string]?: number };
/**
* Accept, hide
*/
"GANBVPtr": { [_ in string]?: number };
/**
* Reject
*/
"GAPlP1": { [_: string]: number };
"GANBPPtr": { [_ in string]?: number };
/**
* Accept
*/
"GAPlP2": { [_: PointableCstrAlias<PointerTextMarshaler>]: number };
/**
* Accept, hide
*/
"GAPlVPtr": { [_: string]: number };
/**
* Accept, hide
*/
"GAPlPPtr": { [_: string]: number };
/**
* Accept, hide
*/
"GAMi": { [_: `${number}`]: number };
"GAPlV1": { [_ in PointableCstrAlias<ValueTextMarshaler>]?: number };
/**
* Accept
*/
"GAMS": { [_: MixedCstrAlias<StringType>]: number };
"GAPlV2": { [_ in PointableCstrAlias<ValueTextMarshaler>]?: number };
/**
* Reject
*/
"GAPlP1": { [_ in string]?: number };
/**
* Accept
*/
"GAMV": { [_: MixedCstrAlias<ValueTextMarshaler>]: number };
/**
* Reject
*/
"GAMSPtr": { [_: string]: number };
"GAPlP2": { [_ in PointableCstrAlias<PointerTextMarshaler>]?: number };
/**
* Accept, hide
*/
"GAMVPtr": { [_: string]: number };
"GAPlVPtr": { [_ in string]?: number };
/**
* Accept, hide
*/
"GAII": { [_: string]: number };
"GAPlPPtr": { [_ in string]?: number };
/**
* Accept
*/
"GAIV": { [_: InterfaceCstrAlias<ValueTextMarshaler>]: number };
"GAMi": { [_ in MixedCstrAlias<number>]?: number };
/**
* Accept, hide
* Accept
*/
"GAIP": { [_: string]: number };
"GAMS": { [_ in MixedCstrAlias<StringType>]?: number };
/**
* Accept
*/
"GAMV": { [_ in MixedCstrAlias<ValueTextMarshaler>]?: number };
/**
* Reject
*/
"GAIIPtr": { [_: string]: number };
"GAMSPtr": { [_ in string]?: number };
/**
* Accept, hide
*/
"GAIVPtr": { [_: string]: number };
/**
* Reject
*/
"GAIPPtr": { [_: string]: number };
"GAMVPtr": { [_ in string]?: number };
/**
* Accept, hide
*/
"GAPrV": { [_: string]: number };
"GAII": { [_ in string]?: number };
/**
* Accept
*/
"GAIV": { [_ in InterfaceCstrAlias<ValueTextMarshaler>]?: number };
/**
* Accept, hide
*/
"GAPrP": { [_: string]: number };
"GAIP": { [_ in string]?: number };
/**
* Reject
*/
"GAPrVPtr": { [_: string]: number };
"GAIIPtr": { [_ in string]?: number };
/**
* Accept, hide
*/
"GAIVPtr": { [_ in string]?: number };
/**
* Reject
*/
"GAPrPPtr": { [_: string]: number };
"GAIPPtr": { [_ in string]?: number };
/**
* Accept, hide
*/
"GAPrV": { [_ in string]?: number };
/**
* Accept, hide
*/
"GAPrP": { [_ in string]?: number };
/**
* Reject
*/
"GAPrVPtr": { [_ in string]?: number };
/**
* Reject
*/
"GAPrPPtr": { [_ in string]?: number };
/** Creates a new Maps instance. */
constructor($$source: Partial<Maps<R, S, T, U, V, W, X, Y, Z>> = {}) {

View file

@ -22,7 +22,7 @@ export class HowDifferent<How> {
/**
* But they may have many differences.
*/
"Differences": { [_: string]: How }[];
"Differences": { [_ in string]?: How }[];
/** Creates a new HowDifferent instance. */
constructor($$source: Partial<HowDifferent<How>> = {}) {

View file

@ -81,19 +81,19 @@ export function IntPointerInputNamedOutputs($in: number | null): $CancellablePro
return $Call.ByID(2718999663, $in);
}
export function MapIntInt($in: { [_: `${number}`]: number }): $CancellablePromise<void> {
export function MapIntInt($in: { [_ in `${number}`]?: number }): $CancellablePromise<void> {
return $Call.ByID(2386486356, $in);
}
export function MapIntIntPointer($in: { [_: `${number}`]: number | null }): $CancellablePromise<void> {
export function MapIntIntPointer($in: { [_ in `${number}`]?: number | null }): $CancellablePromise<void> {
return $Call.ByID(2163571325, $in);
}
export function MapIntSliceInt($in: { [_: `${number}`]: number[] }): $CancellablePromise<void> {
export function MapIntSliceInt($in: { [_ in `${number}`]?: number[] }): $CancellablePromise<void> {
return $Call.ByID(2900172572, $in);
}
export function MapIntSliceIntInMapIntSliceIntOut($in: { [_: `${number}`]: number[] }): $CancellablePromise<{ [_: `${number}`]: number[] }> {
export function MapIntSliceIntInMapIntSliceIntOut($in: { [_ in `${number}`]?: number[] }): $CancellablePromise<{ [_ in `${number}`]?: number[] }> {
return $Call.ByID(881980169, $in).then(($result: any) => {
return $$createType1($result);
});
@ -115,7 +115,7 @@ export function PointerFloat64InFloat64Out($in: number | null): $CancellableProm
return $Call.ByID(2124953624, $in);
}
export function PointerMapIntInt($in: { [_: `${number}`]: number } | null): $CancellablePromise<void> {
export function PointerMapIntInt($in: { [_ in `${number}`]?: number } | null): $CancellablePromise<void> {
return $Call.ByID(3516977899, $in);
}

View file

@ -81,19 +81,19 @@ export function IntPointerInputNamedOutputs($in: number | null): $CancellablePro
return $Call.ByID(2718999663, $in);
}
export function MapIntInt($in: { [_: `${number}`]: number }): $CancellablePromise<void> {
export function MapIntInt($in: { [_ in `${number}`]?: number }): $CancellablePromise<void> {
return $Call.ByID(2386486356, $in);
}
export function MapIntIntPointer($in: { [_: `${number}`]: number | null }): $CancellablePromise<void> {
export function MapIntIntPointer($in: { [_ in `${number}`]?: number | null }): $CancellablePromise<void> {
return $Call.ByID(2163571325, $in);
}
export function MapIntSliceInt($in: { [_: `${number}`]: number[] }): $CancellablePromise<void> {
export function MapIntSliceInt($in: { [_ in `${number}`]?: number[] }): $CancellablePromise<void> {
return $Call.ByID(2900172572, $in);
}
export function MapIntSliceIntInMapIntSliceIntOut($in: { [_: `${number}`]: number[] }): $CancellablePromise<{ [_: `${number}`]: number[] }> {
export function MapIntSliceIntInMapIntSliceIntOut($in: { [_ in `${number}`]?: number[] }): $CancellablePromise<{ [_ in `${number}`]?: number[] }> {
return $Call.ByID(881980169, $in).then(($result: any) => {
return $$createType1($result);
});
@ -115,7 +115,7 @@ export function PointerFloat64InFloat64Out($in: number | null): $CancellableProm
return $Call.ByID(2124953624, $in);
}
export function PointerMapIntInt($in: { [_: `${number}`]: number } | null): $CancellablePromise<void> {
export function PointerMapIntInt($in: { [_ in `${number}`]?: number } | null): $CancellablePromise<void> {
return $Call.ByID(3516977899, $in);
}

View file

@ -19,7 +19,7 @@ declare module "/wails/runtime.js" {
namespace Events {
interface CustomEvents {
"events_only:class": events_only$0.SomeClass;
"events_only:map": { [_: string]: number[] };
"events_only:map": { [_ in string]?: number[] };
"events_only:nodata": void;
"events_only:other": more$0.StringPtr[];
"events_only:string": string;

View file

@ -158,7 +158,7 @@ export type GenericAlias<T> = T;
/**
* A generic alias that wraps a map.
*/
export type GenericMapAlias<T, U> = { [_: string]: U };
export type GenericMapAlias<T, U> = { [_ in string]?: U };
/**
* A generic struct containing an alias.

View file

@ -19,7 +19,7 @@ import * as $models from "./models.js";
* It has a multiline doc comment
* The comment has even some * / traps!!
*/
export function Greet(str: string, people: $models.Person[], $2: {"AnotherCount": number, "AnotherOne": $models.Person | null}, assoc: { [_: `${number}`]: boolean | null }, $4: (number | null)[], ...other: string[]): $CancellablePromise<[$models.Person, any, number[]]> {
export function Greet(str: string, people: $models.Person[], $2: {"AnotherCount": number, "AnotherOne": $models.Person | null}, assoc: { [_ in `${number}`]?: boolean | null }, $4: (number | null)[], ...other: string[]): $CancellablePromise<[$models.Person, any, number[]]> {
return $Call.ByName("main.GreetService.Greet", str, people, $2, assoc, $4, other).then(($result: any) => {
$result[0] = $$createType0($result[0]);
$result[2] = $$createType1($result[2]);

View file

@ -7,6 +7,6 @@ import { Create as $Create } from "/wails/runtime.js";
export type Alias = Cyclic | null;
export type Cyclic = { [_: string]: Alias }[];
export type Cyclic = { [_ in string]?: Alias }[];
export type GenericCyclic<T> = {"X": GenericCyclic<T> | null, "Y": T[]}[];

View file

@ -0,0 +1,80 @@
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
// This file is automatically generated. DO NOT EDIT
/**
* EnumMapService tests various enum map key scenarios
* @module
*/
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore: Unused imports
import { Call as $Call, CancellablePromise as $CancellablePromise, Create as $Create } from "/wails/runtime.js";
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore: Unused imports
import * as $models from "./models.js";
/**
* GetColorCodes returns a map with uint8 enum keys
*/
export function GetColorCodes(): $CancellablePromise<{ [_ in $models.Color]?: string }> {
return $Call.ByName("main.EnumMapService.GetColorCodes").then(($result: any) => {
return $$createType0($result);
});
}
/**
* GetNestedEnumMap returns a map with enum keys and complex values
*/
export function GetNestedEnumMap(): $CancellablePromise<{ [_ in $models.Status]?: { [_ in $models.Priority]?: string } }> {
return $Call.ByName("main.EnumMapService.GetNestedEnumMap").then(($result: any) => {
return $$createType2($result);
});
}
/**
* GetOptionalEnumMap returns a map with enum keys to optional values
*/
export function GetOptionalEnumMap(): $CancellablePromise<{ [_ in $models.Status]?: string | null }> {
return $Call.ByName("main.EnumMapService.GetOptionalEnumMap").then(($result: any) => {
return $$createType3($result);
});
}
/**
* GetPersonsByStatus returns a map with enum keys to struct values
*/
export function GetPersonsByStatus(): $CancellablePromise<{ [_ in $models.Status]?: $models.Person[] }> {
return $Call.ByName("main.EnumMapService.GetPersonsByStatus").then(($result: any) => {
return $$createType6($result);
});
}
/**
* GetPriorityWeights returns a map with integer enum keys
*/
export function GetPriorityWeights(): $CancellablePromise<{ [_ in $models.Priority]?: number }> {
return $Call.ByName("main.EnumMapService.GetPriorityWeights").then(($result: any) => {
return $$createType7($result);
});
}
/**
* GetStatusMessages returns a map with string enum keys
*/
export function GetStatusMessages(): $CancellablePromise<{ [_ in $models.Status]?: string }> {
return $Call.ByName("main.EnumMapService.GetStatusMessages").then(($result: any) => {
return $$createType8($result);
});
}
// Private type creation functions
const $$createType0 = $Create.Map($Create.Any, $Create.Any);
const $$createType1 = $Create.Map($Create.Any, $Create.Any);
const $$createType2 = $Create.Map($Create.Any, $$createType1);
const $$createType3 = $Create.Map($Create.Any, $Create.Any);
const $$createType4 = $models.Person.createFrom;
const $$createType5 = $Create.Array($$createType4);
const $$createType6 = $Create.Map($Create.Any, $$createType5);
const $$createType7 = $Create.Map($Create.Any, $Create.Any);
const $$createType8 = $Create.Map($Create.Any, $Create.Any);

View file

@ -0,0 +1,14 @@
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
// This file is automatically generated. DO NOT EDIT
import * as EnumMapService from "./enummapservice.js";
export {
EnumMapService
};
export {
Color,
Person,
Priority,
Status
} from "./models.js";

View file

@ -0,0 +1,77 @@
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
// This file is automatically generated. DO NOT EDIT
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore: Unused imports
import { Create as $Create } from "/wails/runtime.js";
/**
* Color represents color values
*/
export enum Color {
/**
* The Go zero value for the underlying type of the enum.
*/
$zero = 0,
Red = 1,
Green = 2,
Blue = 3,
};
/**
* Person represents a person with status
*/
export class Person {
"Name": string;
"Status": Status;
/** Creates a new Person instance. */
constructor($$source: Partial<Person> = {}) {
if (!("Name" in $$source)) {
this["Name"] = "";
}
if (!("Status" in $$source)) {
this["Status"] = Status.$zero;
}
Object.assign(this, $$source);
}
/**
* Creates a new Person instance from a string or object.
*/
static createFrom($$source: any = {}): Person {
let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source;
return new Person($$parsedSource as Partial<Person>);
}
}
/**
* Priority represents priority levels
*/
export enum Priority {
/**
* The Go zero value for the underlying type of the enum.
*/
$zero = 0,
PriorityLow = 1,
PriorityMedium = 2,
PriorityHigh = 3,
};
/**
* Status represents different status values
*/
export enum Status {
/**
* The Go zero value for the underlying type of the enum.
*/
$zero = "",
StatusPending = "pending",
StatusRunning = "running",
StatusCompleted = "completed",
StatusFailed = "failed",
};

View file

@ -20,6 +20,8 @@ export type {
EmbeddedValue,
EmbeddedValuePtr,
GoodTildeCstrAlias,
IntAlias,
IntType,
InterfaceCstrAlias,
MixedCstrAlias,
NonBasicCstrAlias,

View file

@ -23,733 +23,737 @@ export type EmbeddedValuePtr = string;
export type GoodTildeCstrAlias<U> = U;
export type IntAlias = number;
export type IntType = number;
export type InterfaceCstrAlias<Y> = Y;
export class Maps<R, S, T, U, V, W, X, Y, Z> {
/**
* Reject
*/
"Bool": { [_: string]: number };
"Bool": { [_ in string]?: number };
/**
* Accept
*/
"Int": { [_: `${number}`]: number };
"Int": { [_ in `${number}`]?: number };
/**
* Accept
*/
"Uint": { [_: `${number}`]: number };
"Uint": { [_ in `${number}`]?: number };
/**
* Reject
*/
"Float": { [_: string]: number };
"Float": { [_ in string]?: number };
/**
* Reject
*/
"Complex": { [_: string]: number };
"Complex": { [_ in string]?: number };
/**
* Accept
*/
"Byte": { [_: `${number}`]: number };
"Byte": { [_ in `${number}`]?: number };
/**
* Accept
*/
"Rune": { [_: `${number}`]: number };
"Rune": { [_ in `${number}`]?: number };
/**
* Accept
*/
"String": { [_: string]: number };
"String": { [_ in string]?: number };
/**
* Reject
*/
"IntPtr": { [_: string]: number };
"IntPtr": { [_ in string]?: number };
/**
* Reject
*/
"UintPtr": { [_: string]: number };
"UintPtr": { [_ in string]?: number };
/**
* Reject
*/
"FloatPtr": { [_: string]: number };
"FloatPtr": { [_ in string]?: number };
/**
* Reject
*/
"ComplexPtr": { [_: string]: number };
"ComplexPtr": { [_ in string]?: number };
/**
* Reject
*/
"StringPtr": { [_: string]: number };
"StringPtr": { [_ in string]?: number };
/**
* Reject
*/
"NTM": { [_: string]: number };
"NTM": { [_ in string]?: number };
/**
* Reject
*/
"NTMPtr": { [_: string]: number };
"NTMPtr": { [_ in string]?: number };
/**
* Accept
*/
"VTM": { [_: ValueTextMarshaler]: number };
"VTM": { [_ in ValueTextMarshaler]?: number };
/**
* Accept
*/
"VTMPtr": { [_: ValueTextMarshaler]: number };
"VTMPtr": { [_ in ValueTextMarshaler]?: number };
/**
* Reject
*/
"PTM": { [_: string]: number };
"PTM": { [_ in string]?: number };
/**
* Accept
*/
"PTMPtr": { [_: PointerTextMarshaler]: number };
"PTMPtr": { [_ in PointerTextMarshaler]?: number };
/**
* Accept, hide
*/
"JTM": { [_: string]: number };
"JTM": { [_ in string]?: number };
/**
* Accept, hide
*/
"JTMPtr": { [_: string]: number };
"JTMPtr": { [_ in string]?: number };
/**
* Reject
*/
"A": { [_: string]: number };
"A": { [_ in string]?: number };
/**
* Reject
*/
"APtr": { [_: string]: number };
"APtr": { [_ in string]?: number };
/**
* Accept, hide
*/
"TM": { [_: string]: number };
"TM": { [_ in string]?: number };
/**
* Reject
*/
"TMPtr": { [_: string]: number };
"TMPtr": { [_ in string]?: number };
/**
* Accept, hide
*/
"CI": { [_: string]: number };
"CI": { [_ in string]?: number };
/**
* Reject
*/
"CIPtr": { [_: string]: number };
"CIPtr": { [_ in string]?: number };
/**
* Accept, hide
*/
"EI": { [_: string]: number };
"EI": { [_ in string]?: number };
/**
* Reject
*/
"EIPtr": { [_: string]: number };
"EIPtr": { [_ in string]?: number };
/**
* Accept
*/
"EV": { [_: EmbeddedValue]: number };
"EV": { [_ in EmbeddedValue]?: number };
/**
* Accept
*/
"EVPtr": { [_: EmbeddedValue]: number };
"EVPtr": { [_ in EmbeddedValue]?: number };
/**
* Accept
*/
"EVP": { [_: EmbeddedValuePtr]: number };
"EVP": { [_ in EmbeddedValuePtr]?: number };
/**
* Accept
*/
"EVPPtr": { [_: EmbeddedValuePtr]: number };
"EVPPtr": { [_ in EmbeddedValuePtr]?: number };
/**
* Reject
*/
"EP": { [_: string]: number };
"EP": { [_ in string]?: number };
/**
* Accept
*/
"EPPtr": { [_: EmbeddedPointer]: number };
"EPPtr": { [_ in EmbeddedPointer]?: number };
/**
* Accept
*/
"EPP": { [_: EmbeddedPointerPtr]: number };
"EPP": { [_ in EmbeddedPointerPtr]?: number };
/**
* Accept
*/
"EPPPtr": { [_: EmbeddedPointerPtr]: number };
"EPPPtr": { [_ in EmbeddedPointerPtr]?: number };
/**
* Accept
*/
"ECI": { [_: EmbeddedCustomInterface]: number };
"ECI": { [_ in EmbeddedCustomInterface]?: number };
/**
* Accept
*/
"ECIPtr": { [_: EmbeddedCustomInterface]: number };
"ECIPtr": { [_ in EmbeddedCustomInterface]?: number };
/**
* Accept
*/
"EOI": { [_: EmbeddedOriginalInterface]: number };
"EOI": { [_ in EmbeddedOriginalInterface]?: number };
/**
* Accept
*/
"EOIPtr": { [_: EmbeddedOriginalInterface]: number };
"EOIPtr": { [_ in EmbeddedOriginalInterface]?: number };
/**
* Reject
*/
"WT": { [_: string]: number };
"WT": { [_ in string]?: number };
/**
* Reject
*/
"WA": { [_: string]: number };
"WA": { [_ in string]?: number };
/**
* Accept
*/
"ST": { [_: StringType]: number };
"ST": { [_ in StringType]?: number };
/**
* Accept
*/
"SA": { [_: StringAlias]: number };
"SA": { [_ in StringAlias]?: number };
/**
* Accept
*/
"IntT": { [_: `${number}`]: number };
"IntT": { [_ in IntType]?: number };
/**
* Accept
*/
"IntA": { [_: `${number}`]: number };
"IntA": { [_ in IntAlias]?: number };
/**
* Reject
*/
"VT": { [_: string]: number };
"VT": { [_ in string]?: number };
/**
* Reject
*/
"VTPtr": { [_: string]: number };
"VTPtr": { [_ in string]?: number };
/**
* Reject
*/
"VPT": { [_: string]: number };
"VPT": { [_ in string]?: number };
/**
* Reject
*/
"VPTPtr": { [_: string]: number };
"VPTPtr": { [_ in string]?: number };
/**
* Accept
*/
"VA": { [_: ValueAlias]: number };
"VA": { [_ in ValueAlias]?: number };
/**
* Accept
*/
"VAPtr": { [_: ValueAlias]: number };
"VAPtr": { [_ in ValueAlias]?: number };
/**
* Accept, hide
*/
"VPA": { [_: string]: number };
"VPA": { [_ in string]?: number };
/**
* Reject
*/
"VPAPtr": { [_: string]: number };
"VPAPtr": { [_ in string]?: number };
/**
* Reject
*/
"PT": { [_: string]: number };
"PT": { [_ in string]?: number };
/**
* Reject
*/
"PTPtr": { [_: string]: number };
"PTPtr": { [_ in string]?: number };
/**
* Reject
*/
"PPT": { [_: string]: number };
"PPT": { [_ in string]?: number };
/**
* Reject
*/
"PPTPtr": { [_: string]: number };
"PPTPtr": { [_ in string]?: number };
/**
* Reject
*/
"PA": { [_: string]: number };
"PA": { [_ in string]?: number };
/**
* Accept
*/
"PAPtr": { [_: PointerAlias]: number };
"PAPtr": { [_ in PointerAlias]?: number };
/**
* Accept, hide
*/
"PPA": { [_: string]: number };
"PPA": { [_ in string]?: number };
/**
* Reject
*/
"PPAPtr": { [_: string]: number };
"PPAPtr": { [_ in string]?: number };
/**
* Accept, hide
*/
"IT": { [_: string]: number };
"IT": { [_ in string]?: number };
/**
* Reject
*/
"ITPtr": { [_: string]: number };
"ITPtr": { [_ in string]?: number };
/**
* Reject
*/
"IPT": { [_: string]: number };
"IPT": { [_ in string]?: number };
/**
* Reject
*/
"IPTPtr": { [_: string]: number };
"IPTPtr": { [_ in string]?: number };
/**
* Accept, hide
*/
"IA": { [_: string]: number };
"IA": { [_ in string]?: number };
/**
* Reject
*/
"IAPtr": { [_: string]: number };
"IAPtr": { [_ in string]?: number };
/**
* Reject
*/
"IPA": { [_: string]: number };
"IPA": { [_ in string]?: number };
/**
* Reject
*/
"IPAPtr": { [_: string]: number };
"IPAPtr": { [_ in string]?: number };
/**
* Soft reject
*/
"TPR": { [_: string]: number };
"TPR": { [_ in string]?: number };
/**
* Soft reject
*/
"TPRPtr": { [_: string]: number };
"TPRPtr": { [_ in string]?: number };
/**
* Accept, hide
*/
"TPS": { [_: string]: number };
"TPS": { [_ in string]?: number };
/**
* Soft reject
*/
"TPSPtr": { [_: string]: number };
"TPSPtr": { [_ in string]?: number };
/**
* Soft reject
*/
"TPT": { [_: string]: number };
"TPT": { [_ in string]?: number };
/**
* Soft reject
*/
"TPTPtr": { [_: string]: number };
"TPTPtr": { [_ in string]?: number };
/**
* Accept, hide
*/
"TPU": { [_: string]: number };
"TPU": { [_ in string]?: number };
/**
* Soft reject
*/
"TPUPtr": { [_: string]: number };
"TPUPtr": { [_ in string]?: number };
/**
* Accept, hide
*/
"TPV": { [_: string]: number };
"TPV": { [_ in string]?: number };
/**
* Soft reject
*/
"TPVPtr": { [_: string]: number };
"TPVPtr": { [_ in string]?: number };
/**
* Soft reject
*/
"TPW": { [_: string]: number };
"TPW": { [_ in string]?: number };
/**
* Accept, hide
*/
"TPWPtr": { [_: string]: number };
"TPWPtr": { [_ in string]?: number };
/**
* Accept, hide
*/
"TPX": { [_: string]: number };
"TPX": { [_ in string]?: number };
/**
* Soft reject
*/
"TPXPtr": { [_: string]: number };
"TPXPtr": { [_ in string]?: number };
/**
* Accept, hide
*/
"TPY": { [_: string]: number };
"TPY": { [_ in string]?: number };
/**
* Soft reject
*/
"TPYPtr": { [_: string]: number };
"TPYPtr": { [_ in string]?: number };
/**
* Accept, hide
*/
"TPZ": { [_: string]: number };
"TPZ": { [_ in string]?: number };
/**
* Soft reject
*/
"TPZPtr": { [_: string]: number };
"TPZPtr": { [_ in string]?: number };
/**
* Soft reject
*/
"GAR": { [_: string]: number };
"GAR": { [_ in string]?: number };
/**
* Soft reject
*/
"GARPtr": { [_: string]: number };
"GARPtr": { [_ in string]?: number };
/**
* Accept, hide
*/
"GAS": { [_: string]: number };
"GAS": { [_ in string]?: number };
/**
* Soft reject
*/
"GASPtr": { [_: string]: number };
"GASPtr": { [_ in string]?: number };
/**
* Soft reject
*/
"GAT": { [_: string]: number };
"GAT": { [_ in string]?: number };
/**
* Soft reject
*/
"GATPtr": { [_: string]: number };
"GATPtr": { [_ in string]?: number };
/**
* Accept, hide
*/
"GAU": { [_: string]: number };
"GAU": { [_ in string]?: number };
/**
* Soft reject
*/
"GAUPtr": { [_: string]: number };
"GAUPtr": { [_ in string]?: number };
/**
* Accept, hide
*/
"GAV": { [_: string]: number };
"GAV": { [_ in string]?: number };
/**
* Soft reject
*/
"GAVPtr": { [_: string]: number };
"GAVPtr": { [_ in string]?: number };
/**
* Soft reject
*/
"GAW": { [_: string]: number };
"GAW": { [_ in string]?: number };
/**
* Accept, hide
*/
"GAWPtr": { [_: string]: number };
"GAWPtr": { [_ in string]?: number };
/**
* Accept, hide
*/
"GAX": { [_: string]: number };
"GAX": { [_ in string]?: number };
/**
* Soft reject
*/
"GAXPtr": { [_: string]: number };
"GAXPtr": { [_ in string]?: number };
/**
* Accept, hide
*/
"GAY": { [_: string]: number };
"GAY": { [_ in string]?: number };
/**
* Soft reject
*/
"GAYPtr": { [_: string]: number };
"GAYPtr": { [_ in string]?: number };
/**
* Accept, hide
*/
"GAZ": { [_: string]: number };
"GAZ": { [_ in string]?: number };
/**
* Soft reject
*/
"GAZPtr": { [_: string]: number };
/**
* Accept, hide
*/
"GACi": { [_: `${number}`]: number };
"GAZPtr": { [_ in string]?: number };
/**
* Accept
*/
"GACV": { [_: ComparableCstrAlias<ValueTextMarshaler>]: number };
/**
* Reject
*/
"GACP": { [_: string]: number };
/**
* Reject
*/
"GACiPtr": { [_: string]: number };
/**
* Accept, hide
*/
"GACVPtr": { [_: string]: number };
/**
* Accept, hide
*/
"GACPPtr": { [_: string]: number };
/**
* Accept, hide
*/
"GABi": { [_: `${number}`]: number };
"GACi": { [_ in ComparableCstrAlias<number>]?: number };
/**
* Accept
*/
"GABs": { [_: BasicCstrAlias<string>]: number };
"GACV": { [_ in ComparableCstrAlias<ValueTextMarshaler>]?: number };
/**
* Reject
*/
"GABiPtr": { [_: string]: number };
"GACP": { [_ in string]?: number };
/**
* Reject
*/
"GABT": { [_: string]: number };
"GACiPtr": { [_ in string]?: number };
/**
* Reject
* Accept, hide
*/
"GABTPtr": { [_: string]: number };
"GACVPtr": { [_ in string]?: number };
/**
* Accept, hide
*/
"GACPPtr": { [_ in string]?: number };
/**
* Accept
*/
"GAGT": { [_: GoodTildeCstrAlias<ValueTextMarshaler>]: number };
/**
* Accept, hide
*/
"GAGTPtr": { [_: string]: number };
"GABi": { [_ in BasicCstrAlias<number>]?: number };
/**
* Accept
*/
"GANBV": { [_: NonBasicCstrAlias<ValueTextMarshaler>]: number };
/**
* Accept, hide
*/
"GANBP": { [_: string]: number };
/**
* Accept, hide
*/
"GANBVPtr": { [_: string]: number };
"GABs": { [_ in BasicCstrAlias<string>]?: number };
/**
* Reject
*/
"GANBPPtr": { [_: string]: number };
"GABiPtr": { [_ in string]?: number };
/**
* Reject
*/
"GABT": { [_ in string]?: number };
/**
* Reject
*/
"GABTPtr": { [_ in string]?: number };
/**
* Accept
*/
"GAPlV1": { [_: PointableCstrAlias<ValueTextMarshaler>]: number };
"GAGT": { [_ in GoodTildeCstrAlias<ValueTextMarshaler>]?: number };
/**
* Accept, hide
*/
"GAGTPtr": { [_ in string]?: number };
/**
* Accept
*/
"GAPlV2": { [_: PointableCstrAlias<ValueTextMarshaler>]: number };
"GANBV": { [_ in NonBasicCstrAlias<ValueTextMarshaler>]?: number };
/**
* Accept, hide
*/
"GANBP": { [_ in string]?: number };
/**
* Accept, hide
*/
"GANBVPtr": { [_ in string]?: number };
/**
* Reject
*/
"GAPlP1": { [_: string]: number };
"GANBPPtr": { [_ in string]?: number };
/**
* Accept
*/
"GAPlP2": { [_: PointableCstrAlias<PointerTextMarshaler>]: number };
/**
* Accept, hide
*/
"GAPlVPtr": { [_: string]: number };
/**
* Accept, hide
*/
"GAPlPPtr": { [_: string]: number };
/**
* Accept, hide
*/
"GAMi": { [_: `${number}`]: number };
"GAPlV1": { [_ in PointableCstrAlias<ValueTextMarshaler>]?: number };
/**
* Accept
*/
"GAMS": { [_: MixedCstrAlias<StringType>]: number };
"GAPlV2": { [_ in PointableCstrAlias<ValueTextMarshaler>]?: number };
/**
* Reject
*/
"GAPlP1": { [_ in string]?: number };
/**
* Accept
*/
"GAMV": { [_: MixedCstrAlias<ValueTextMarshaler>]: number };
/**
* Reject
*/
"GAMSPtr": { [_: string]: number };
"GAPlP2": { [_ in PointableCstrAlias<PointerTextMarshaler>]?: number };
/**
* Accept, hide
*/
"GAMVPtr": { [_: string]: number };
"GAPlVPtr": { [_ in string]?: number };
/**
* Accept, hide
*/
"GAII": { [_: string]: number };
"GAPlPPtr": { [_ in string]?: number };
/**
* Accept
*/
"GAIV": { [_: InterfaceCstrAlias<ValueTextMarshaler>]: number };
"GAMi": { [_ in MixedCstrAlias<number>]?: number };
/**
* Accept, hide
* Accept
*/
"GAIP": { [_: string]: number };
"GAMS": { [_ in MixedCstrAlias<StringType>]?: number };
/**
* Accept
*/
"GAMV": { [_ in MixedCstrAlias<ValueTextMarshaler>]?: number };
/**
* Reject
*/
"GAIIPtr": { [_: string]: number };
"GAMSPtr": { [_ in string]?: number };
/**
* Accept, hide
*/
"GAIVPtr": { [_: string]: number };
/**
* Reject
*/
"GAIPPtr": { [_: string]: number };
"GAMVPtr": { [_ in string]?: number };
/**
* Accept, hide
*/
"GAPrV": { [_: string]: number };
"GAII": { [_ in string]?: number };
/**
* Accept
*/
"GAIV": { [_ in InterfaceCstrAlias<ValueTextMarshaler>]?: number };
/**
* Accept, hide
*/
"GAPrP": { [_: string]: number };
"GAIP": { [_ in string]?: number };
/**
* Reject
*/
"GAPrVPtr": { [_: string]: number };
"GAIIPtr": { [_ in string]?: number };
/**
* Accept, hide
*/
"GAIVPtr": { [_ in string]?: number };
/**
* Reject
*/
"GAPrPPtr": { [_: string]: number };
"GAIPPtr": { [_ in string]?: number };
/**
* Accept, hide
*/
"GAPrV": { [_ in string]?: number };
/**
* Accept, hide
*/
"GAPrP": { [_ in string]?: number };
/**
* Reject
*/
"GAPrVPtr": { [_ in string]?: number };
/**
* Reject
*/
"GAPrPPtr": { [_ in string]?: number };
/** Creates a new Maps instance. */
constructor($$source: Partial<Maps<R, S, T, U, V, W, X, Y, Z>> = {}) {

View file

@ -22,7 +22,7 @@ export class HowDifferent<How> {
/**
* But they may have many differences.
*/
"Differences": { [_: string]: How }[];
"Differences": { [_ in string]?: How }[];
/** Creates a new HowDifferent instance. */
constructor($$source: Partial<HowDifferent<How>> = {}) {

View file

@ -81,19 +81,19 @@ export function IntPointerInputNamedOutputs($in: number | null): $CancellablePro
return $Call.ByName("main.GreetService.IntPointerInputNamedOutputs", $in);
}
export function MapIntInt($in: { [_: `${number}`]: number }): $CancellablePromise<void> {
export function MapIntInt($in: { [_ in `${number}`]?: number }): $CancellablePromise<void> {
return $Call.ByName("main.GreetService.MapIntInt", $in);
}
export function MapIntIntPointer($in: { [_: `${number}`]: number | null }): $CancellablePromise<void> {
export function MapIntIntPointer($in: { [_ in `${number}`]?: number | null }): $CancellablePromise<void> {
return $Call.ByName("main.GreetService.MapIntIntPointer", $in);
}
export function MapIntSliceInt($in: { [_: `${number}`]: number[] }): $CancellablePromise<void> {
export function MapIntSliceInt($in: { [_ in `${number}`]?: number[] }): $CancellablePromise<void> {
return $Call.ByName("main.GreetService.MapIntSliceInt", $in);
}
export function MapIntSliceIntInMapIntSliceIntOut($in: { [_: `${number}`]: number[] }): $CancellablePromise<{ [_: `${number}`]: number[] }> {
export function MapIntSliceIntInMapIntSliceIntOut($in: { [_ in `${number}`]?: number[] }): $CancellablePromise<{ [_ in `${number}`]?: number[] }> {
return $Call.ByName("main.GreetService.MapIntSliceIntInMapIntSliceIntOut", $in).then(($result: any) => {
return $$createType1($result);
});
@ -115,7 +115,7 @@ export function PointerFloat64InFloat64Out($in: number | null): $CancellableProm
return $Call.ByName("main.GreetService.PointerFloat64InFloat64Out", $in);
}
export function PointerMapIntInt($in: { [_: `${number}`]: number } | null): $CancellablePromise<void> {
export function PointerMapIntInt($in: { [_ in `${number}`]?: number } | null): $CancellablePromise<void> {
return $Call.ByName("main.GreetService.PointerMapIntInt", $in);
}

View file

@ -81,19 +81,19 @@ export function IntPointerInputNamedOutputs($in: number | null): $CancellablePro
return $Call.ByName("main.GreetService.IntPointerInputNamedOutputs", $in);
}
export function MapIntInt($in: { [_: `${number}`]: number }): $CancellablePromise<void> {
export function MapIntInt($in: { [_ in `${number}`]?: number }): $CancellablePromise<void> {
return $Call.ByName("main.GreetService.MapIntInt", $in);
}
export function MapIntIntPointer($in: { [_: `${number}`]: number | null }): $CancellablePromise<void> {
export function MapIntIntPointer($in: { [_ in `${number}`]?: number | null }): $CancellablePromise<void> {
return $Call.ByName("main.GreetService.MapIntIntPointer", $in);
}
export function MapIntSliceInt($in: { [_: `${number}`]: number[] }): $CancellablePromise<void> {
export function MapIntSliceInt($in: { [_ in `${number}`]?: number[] }): $CancellablePromise<void> {
return $Call.ByName("main.GreetService.MapIntSliceInt", $in);
}
export function MapIntSliceIntInMapIntSliceIntOut($in: { [_: `${number}`]: number[] }): $CancellablePromise<{ [_: `${number}`]: number[] }> {
export function MapIntSliceIntInMapIntSliceIntOut($in: { [_ in `${number}`]?: number[] }): $CancellablePromise<{ [_ in `${number}`]?: number[] }> {
return $Call.ByName("main.GreetService.MapIntSliceIntInMapIntSliceIntOut", $in).then(($result: any) => {
return $$createType1($result);
});
@ -115,7 +115,7 @@ export function PointerFloat64InFloat64Out($in: number | null): $CancellableProm
return $Call.ByName("main.GreetService.PointerFloat64InFloat64Out", $in);
}
export function PointerMapIntInt($in: { [_: `${number}`]: number } | null): $CancellablePromise<void> {
export function PointerMapIntInt($in: { [_ in `${number}`]?: number } | null): $CancellablePromise<void> {
return $Call.ByName("main.GreetService.PointerMapIntInt", $in);
}

View file

@ -19,7 +19,7 @@ declare module "/wails/runtime.js" {
namespace Events {
interface CustomEvents {
"events_only:class": events_only$0.SomeClass;
"events_only:map": { [_: string]: number[] | null } | null;
"events_only:map": { [_ in string]?: number[] | null } | null;
"events_only:nodata": void;
"events_only:other": more$0.StringPtr[] | null;
"events_only:string": string;

View file

@ -72,7 +72,7 @@ export type GenericAlias<T> = T;
/**
* A generic alias that wraps a map.
*/
export type GenericMapAlias<T, U> = { [_: string]: U } | null;
export type GenericMapAlias<T, U> = { [_ in string]?: U } | null;
/**
* A generic struct containing an alias.

View file

@ -19,6 +19,6 @@ import * as $models from "./models.js";
* It has a multiline doc comment
* The comment has even some * / traps!!
*/
export function Greet(str: string, people: $models.Person[] | null, $2: {"AnotherCount": number, "AnotherOne": $models.Person | null}, assoc: { [_: `${number}`]: boolean | null } | null, $4: (number | null)[] | null, ...other: string[]): $CancellablePromise<[$models.Person, any, number[] | null]> {
export function Greet(str: string, people: $models.Person[] | null, $2: {"AnotherCount": number, "AnotherOne": $models.Person | null}, assoc: { [_ in `${number}`]?: boolean | null } | null, $4: (number | null)[] | null, ...other: string[]): $CancellablePromise<[$models.Person, any, number[] | null]> {
return $Call.ByID(1411160069, str, people, $2, assoc, $4, other);
}

View file

@ -3,6 +3,6 @@
export type Alias = Cyclic | null;
export type Cyclic = ({ [_: string]: Alias } | null)[] | null;
export type Cyclic = ({ [_ in string]?: Alias } | null)[] | null;
export type GenericCyclic<T> = {"X": GenericCyclic<T> | null, "Y": T[] | null}[] | null;

View file

@ -0,0 +1,57 @@
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
// This file is automatically generated. DO NOT EDIT
/**
* EnumMapService tests various enum map key scenarios
* @module
*/
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore: Unused imports
import { Call as $Call, CancellablePromise as $CancellablePromise } from "/wails/runtime.js";
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore: Unused imports
import * as $models from "./models.js";
/**
* GetColorCodes returns a map with uint8 enum keys
*/
export function GetColorCodes(): $CancellablePromise<{ [_ in $models.Color]?: string } | null> {
return $Call.ByID(2794981443);
}
/**
* GetNestedEnumMap returns a map with enum keys and complex values
*/
export function GetNestedEnumMap(): $CancellablePromise<{ [_ in $models.Status]?: { [_ in $models.Priority]?: string } | null } | null> {
return $Call.ByID(3603489560);
}
/**
* GetOptionalEnumMap returns a map with enum keys to optional values
*/
export function GetOptionalEnumMap(): $CancellablePromise<{ [_ in $models.Status]?: string | null } | null> {
return $Call.ByID(1871606385);
}
/**
* GetPersonsByStatus returns a map with enum keys to struct values
*/
export function GetPersonsByStatus(): $CancellablePromise<{ [_ in $models.Status]?: $models.Person[] | null } | null> {
return $Call.ByID(2189502217);
}
/**
* GetPriorityWeights returns a map with integer enum keys
*/
export function GetPriorityWeights(): $CancellablePromise<{ [_ in $models.Priority]?: number } | null> {
return $Call.ByID(1542216941);
}
/**
* GetStatusMessages returns a map with string enum keys
*/
export function GetStatusMessages(): $CancellablePromise<{ [_ in $models.Status]?: string } | null> {
return $Call.ByID(1788640810);
}

View file

@ -0,0 +1,17 @@
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
// This file is automatically generated. DO NOT EDIT
import * as EnumMapService from "./enummapservice.js";
export {
EnumMapService
};
export {
Color,
Priority,
Status
} from "./models.js";
export type {
Person
} from "./models.js";

View file

@ -0,0 +1,53 @@
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
// This file is automatically generated. DO NOT EDIT
/**
* Color represents color values
*/
export enum Color {
/**
* The Go zero value for the underlying type of the enum.
*/
$zero = 0,
Red = 1,
Green = 2,
Blue = 3,
};
/**
* Person represents a person with status
*/
export interface Person {
"Name": string;
"Status": Status;
}
/**
* Priority represents priority levels
*/
export enum Priority {
/**
* The Go zero value for the underlying type of the enum.
*/
$zero = 0,
PriorityLow = 1,
PriorityMedium = 2,
PriorityHigh = 3,
};
/**
* Status represents different status values
*/
export enum Status {
/**
* The Go zero value for the underlying type of the enum.
*/
$zero = "",
StatusPending = "pending",
StatusRunning = "running",
StatusCompleted = "completed",
StatusFailed = "failed",
};

View file

@ -16,6 +16,8 @@ export type {
EmbeddedValue,
EmbeddedValuePtr,
GoodTildeCstrAlias,
IntAlias,
IntType,
InterfaceCstrAlias,
Maps,
MixedCstrAlias,

View file

@ -19,733 +19,737 @@ export type EmbeddedValuePtr = string;
export type GoodTildeCstrAlias<U> = U;
export type IntAlias = number;
export type IntType = number;
export type InterfaceCstrAlias<Y> = Y;
export interface Maps<R, S, T, U, V, W, X, Y, Z> {
/**
* Reject
*/
"Bool": { [_: string]: number } | null;
"Bool": { [_ in string]?: number } | null;
/**
* Accept
*/
"Int": { [_: `${number}`]: number } | null;
"Int": { [_ in `${number}`]?: number } | null;
/**
* Accept
*/
"Uint": { [_: `${number}`]: number } | null;
"Uint": { [_ in `${number}`]?: number } | null;
/**
* Reject
*/
"Float": { [_: string]: number } | null;
"Float": { [_ in string]?: number } | null;
/**
* Reject
*/
"Complex": { [_: string]: number } | null;
"Complex": { [_ in string]?: number } | null;
/**
* Accept
*/
"Byte": { [_: `${number}`]: number } | null;
"Byte": { [_ in `${number}`]?: number } | null;
/**
* Accept
*/
"Rune": { [_: `${number}`]: number } | null;
"Rune": { [_ in `${number}`]?: number } | null;
/**
* Accept
*/
"String": { [_: string]: number } | null;
"String": { [_ in string]?: number } | null;
/**
* Reject
*/
"IntPtr": { [_: string]: number } | null;
"IntPtr": { [_ in string]?: number } | null;
/**
* Reject
*/
"UintPtr": { [_: string]: number } | null;
"UintPtr": { [_ in string]?: number } | null;
/**
* Reject
*/
"FloatPtr": { [_: string]: number } | null;
"FloatPtr": { [_ in string]?: number } | null;
/**
* Reject
*/
"ComplexPtr": { [_: string]: number } | null;
"ComplexPtr": { [_ in string]?: number } | null;
/**
* Reject
*/
"StringPtr": { [_: string]: number } | null;
"StringPtr": { [_ in string]?: number } | null;
/**
* Reject
*/
"NTM": { [_: string]: number } | null;
"NTM": { [_ in string]?: number } | null;
/**
* Reject
*/
"NTMPtr": { [_: string]: number } | null;
"NTMPtr": { [_ in string]?: number } | null;
/**
* Accept
*/
"VTM": { [_: ValueTextMarshaler]: number } | null;
"VTM": { [_ in ValueTextMarshaler]?: number } | null;
/**
* Accept
*/
"VTMPtr": { [_: ValueTextMarshaler]: number } | null;
"VTMPtr": { [_ in ValueTextMarshaler]?: number } | null;
/**
* Reject
*/
"PTM": { [_: string]: number } | null;
"PTM": { [_ in string]?: number } | null;
/**
* Accept
*/
"PTMPtr": { [_: PointerTextMarshaler]: number } | null;
"PTMPtr": { [_ in PointerTextMarshaler]?: number } | null;
/**
* Accept, hide
*/
"JTM": { [_: string]: number } | null;
"JTM": { [_ in string]?: number } | null;
/**
* Accept, hide
*/
"JTMPtr": { [_: string]: number } | null;
"JTMPtr": { [_ in string]?: number } | null;
/**
* Reject
*/
"A": { [_: string]: number } | null;
"A": { [_ in string]?: number } | null;
/**
* Reject
*/
"APtr": { [_: string]: number } | null;
"APtr": { [_ in string]?: number } | null;
/**
* Accept, hide
*/
"TM": { [_: string]: number } | null;
"TM": { [_ in string]?: number } | null;
/**
* Reject
*/
"TMPtr": { [_: string]: number } | null;
"TMPtr": { [_ in string]?: number } | null;
/**
* Accept, hide
*/
"CI": { [_: string]: number } | null;
"CI": { [_ in string]?: number } | null;
/**
* Reject
*/
"CIPtr": { [_: string]: number } | null;
"CIPtr": { [_ in string]?: number } | null;
/**
* Accept, hide
*/
"EI": { [_: string]: number } | null;
"EI": { [_ in string]?: number } | null;
/**
* Reject
*/
"EIPtr": { [_: string]: number } | null;
"EIPtr": { [_ in string]?: number } | null;
/**
* Accept
*/
"EV": { [_: EmbeddedValue]: number } | null;
"EV": { [_ in EmbeddedValue]?: number } | null;
/**
* Accept
*/
"EVPtr": { [_: EmbeddedValue]: number } | null;
"EVPtr": { [_ in EmbeddedValue]?: number } | null;
/**
* Accept
*/
"EVP": { [_: EmbeddedValuePtr]: number } | null;
"EVP": { [_ in EmbeddedValuePtr]?: number } | null;
/**
* Accept
*/
"EVPPtr": { [_: EmbeddedValuePtr]: number } | null;
"EVPPtr": { [_ in EmbeddedValuePtr]?: number } | null;
/**
* Reject
*/
"EP": { [_: string]: number } | null;
"EP": { [_ in string]?: number } | null;
/**
* Accept
*/
"EPPtr": { [_: EmbeddedPointer]: number } | null;
"EPPtr": { [_ in EmbeddedPointer]?: number } | null;
/**
* Accept
*/
"EPP": { [_: EmbeddedPointerPtr]: number } | null;
"EPP": { [_ in EmbeddedPointerPtr]?: number } | null;
/**
* Accept
*/
"EPPPtr": { [_: EmbeddedPointerPtr]: number } | null;
"EPPPtr": { [_ in EmbeddedPointerPtr]?: number } | null;
/**
* Accept
*/
"ECI": { [_: EmbeddedCustomInterface]: number } | null;
"ECI": { [_ in EmbeddedCustomInterface]?: number } | null;
/**
* Accept
*/
"ECIPtr": { [_: EmbeddedCustomInterface]: number } | null;
"ECIPtr": { [_ in EmbeddedCustomInterface]?: number } | null;
/**
* Accept
*/
"EOI": { [_: EmbeddedOriginalInterface]: number } | null;
"EOI": { [_ in EmbeddedOriginalInterface]?: number } | null;
/**
* Accept
*/
"EOIPtr": { [_: EmbeddedOriginalInterface]: number } | null;
"EOIPtr": { [_ in EmbeddedOriginalInterface]?: number } | null;
/**
* Reject
*/
"WT": { [_: string]: number } | null;
"WT": { [_ in string]?: number } | null;
/**
* Reject
*/
"WA": { [_: string]: number } | null;
"WA": { [_ in string]?: number } | null;
/**
* Accept
*/
"ST": { [_: StringType]: number } | null;
"ST": { [_ in StringType]?: number } | null;
/**
* Accept
*/
"SA": { [_: StringAlias]: number } | null;
"SA": { [_ in StringAlias]?: number } | null;
/**
* Accept
*/
"IntT": { [_: `${number}`]: number } | null;
"IntT": { [_ in IntType]?: number } | null;
/**
* Accept
*/
"IntA": { [_: `${number}`]: number } | null;
"IntA": { [_ in IntAlias]?: number } | null;
/**
* Reject
*/
"VT": { [_: string]: number } | null;
"VT": { [_ in string]?: number } | null;
/**
* Reject
*/
"VTPtr": { [_: string]: number } | null;
"VTPtr": { [_ in string]?: number } | null;
/**
* Reject
*/
"VPT": { [_: string]: number } | null;
"VPT": { [_ in string]?: number } | null;
/**
* Reject
*/
"VPTPtr": { [_: string]: number } | null;
"VPTPtr": { [_ in string]?: number } | null;
/**
* Accept
*/
"VA": { [_: ValueAlias]: number } | null;
"VA": { [_ in ValueAlias]?: number } | null;
/**
* Accept
*/
"VAPtr": { [_: ValueAlias]: number } | null;
"VAPtr": { [_ in ValueAlias]?: number } | null;
/**
* Accept, hide
*/
"VPA": { [_: string]: number } | null;
"VPA": { [_ in string]?: number } | null;
/**
* Reject
*/
"VPAPtr": { [_: string]: number } | null;
"VPAPtr": { [_ in string]?: number } | null;
/**
* Reject
*/
"PT": { [_: string]: number } | null;
"PT": { [_ in string]?: number } | null;
/**
* Reject
*/
"PTPtr": { [_: string]: number } | null;
"PTPtr": { [_ in string]?: number } | null;
/**
* Reject
*/
"PPT": { [_: string]: number } | null;
"PPT": { [_ in string]?: number } | null;
/**
* Reject
*/
"PPTPtr": { [_: string]: number } | null;
"PPTPtr": { [_ in string]?: number } | null;
/**
* Reject
*/
"PA": { [_: string]: number } | null;
"PA": { [_ in string]?: number } | null;
/**
* Accept
*/
"PAPtr": { [_: PointerAlias]: number } | null;
"PAPtr": { [_ in PointerAlias]?: number } | null;
/**
* Accept, hide
*/
"PPA": { [_: string]: number } | null;
"PPA": { [_ in string]?: number } | null;
/**
* Reject
*/
"PPAPtr": { [_: string]: number } | null;
"PPAPtr": { [_ in string]?: number } | null;
/**
* Accept, hide
*/
"IT": { [_: string]: number } | null;
"IT": { [_ in string]?: number } | null;
/**
* Reject
*/
"ITPtr": { [_: string]: number } | null;
"ITPtr": { [_ in string]?: number } | null;
/**
* Reject
*/
"IPT": { [_: string]: number } | null;
"IPT": { [_ in string]?: number } | null;
/**
* Reject
*/
"IPTPtr": { [_: string]: number } | null;
"IPTPtr": { [_ in string]?: number } | null;
/**
* Accept, hide
*/
"IA": { [_: string]: number } | null;
"IA": { [_ in string]?: number } | null;
/**
* Reject
*/
"IAPtr": { [_: string]: number } | null;
"IAPtr": { [_ in string]?: number } | null;
/**
* Reject
*/
"IPA": { [_: string]: number } | null;
"IPA": { [_ in string]?: number } | null;
/**
* Reject
*/
"IPAPtr": { [_: string]: number } | null;
"IPAPtr": { [_ in string]?: number } | null;
/**
* Soft reject
*/
"TPR": { [_: string]: number } | null;
"TPR": { [_ in string]?: number } | null;
/**
* Soft reject
*/
"TPRPtr": { [_: string]: number } | null;
"TPRPtr": { [_ in string]?: number } | null;
/**
* Accept, hide
*/
"TPS": { [_: string]: number } | null;
"TPS": { [_ in string]?: number } | null;
/**
* Soft reject
*/
"TPSPtr": { [_: string]: number } | null;
"TPSPtr": { [_ in string]?: number } | null;
/**
* Soft reject
*/
"TPT": { [_: string]: number } | null;
"TPT": { [_ in string]?: number } | null;
/**
* Soft reject
*/
"TPTPtr": { [_: string]: number } | null;
"TPTPtr": { [_ in string]?: number } | null;
/**
* Accept, hide
*/
"TPU": { [_: string]: number } | null;
"TPU": { [_ in string]?: number } | null;
/**
* Soft reject
*/
"TPUPtr": { [_: string]: number } | null;
"TPUPtr": { [_ in string]?: number } | null;
/**
* Accept, hide
*/
"TPV": { [_: string]: number } | null;
"TPV": { [_ in string]?: number } | null;
/**
* Soft reject
*/
"TPVPtr": { [_: string]: number } | null;
"TPVPtr": { [_ in string]?: number } | null;
/**
* Soft reject
*/
"TPW": { [_: string]: number } | null;
"TPW": { [_ in string]?: number } | null;
/**
* Accept, hide
*/
"TPWPtr": { [_: string]: number } | null;
"TPWPtr": { [_ in string]?: number } | null;
/**
* Accept, hide
*/
"TPX": { [_: string]: number } | null;
"TPX": { [_ in string]?: number } | null;
/**
* Soft reject
*/
"TPXPtr": { [_: string]: number } | null;
"TPXPtr": { [_ in string]?: number } | null;
/**
* Accept, hide
*/
"TPY": { [_: string]: number } | null;
"TPY": { [_ in string]?: number } | null;
/**
* Soft reject
*/
"TPYPtr": { [_: string]: number } | null;
"TPYPtr": { [_ in string]?: number } | null;
/**
* Accept, hide
*/
"TPZ": { [_: string]: number } | null;
"TPZ": { [_ in string]?: number } | null;
/**
* Soft reject
*/
"TPZPtr": { [_: string]: number } | null;
"TPZPtr": { [_ in string]?: number } | null;
/**
* Soft reject
*/
"GAR": { [_: string]: number } | null;
"GAR": { [_ in string]?: number } | null;
/**
* Soft reject
*/
"GARPtr": { [_: string]: number } | null;
"GARPtr": { [_ in string]?: number } | null;
/**
* Accept, hide
*/
"GAS": { [_: string]: number } | null;
"GAS": { [_ in string]?: number } | null;
/**
* Soft reject
*/
"GASPtr": { [_: string]: number } | null;
"GASPtr": { [_ in string]?: number } | null;
/**
* Soft reject
*/
"GAT": { [_: string]: number } | null;
"GAT": { [_ in string]?: number } | null;
/**
* Soft reject
*/
"GATPtr": { [_: string]: number } | null;
"GATPtr": { [_ in string]?: number } | null;
/**
* Accept, hide
*/
"GAU": { [_: string]: number } | null;
"GAU": { [_ in string]?: number } | null;
/**
* Soft reject
*/
"GAUPtr": { [_: string]: number } | null;
"GAUPtr": { [_ in string]?: number } | null;
/**
* Accept, hide
*/
"GAV": { [_: string]: number } | null;
"GAV": { [_ in string]?: number } | null;
/**
* Soft reject
*/
"GAVPtr": { [_: string]: number } | null;
"GAVPtr": { [_ in string]?: number } | null;
/**
* Soft reject
*/
"GAW": { [_: string]: number } | null;
"GAW": { [_ in string]?: number } | null;
/**
* Accept, hide
*/
"GAWPtr": { [_: string]: number } | null;
"GAWPtr": { [_ in string]?: number } | null;
/**
* Accept, hide
*/
"GAX": { [_: string]: number } | null;
"GAX": { [_ in string]?: number } | null;
/**
* Soft reject
*/
"GAXPtr": { [_: string]: number } | null;
"GAXPtr": { [_ in string]?: number } | null;
/**
* Accept, hide
*/
"GAY": { [_: string]: number } | null;
"GAY": { [_ in string]?: number } | null;
/**
* Soft reject
*/
"GAYPtr": { [_: string]: number } | null;
"GAYPtr": { [_ in string]?: number } | null;
/**
* Accept, hide
*/
"GAZ": { [_: string]: number } | null;
"GAZ": { [_ in string]?: number } | null;
/**
* Soft reject
*/
"GAZPtr": { [_: string]: number } | null;
/**
* Accept, hide
*/
"GACi": { [_: `${number}`]: number } | null;
"GAZPtr": { [_ in string]?: number } | null;
/**
* Accept
*/
"GACV": { [_: ComparableCstrAlias<ValueTextMarshaler>]: number } | null;
/**
* Reject
*/
"GACP": { [_: string]: number } | null;
/**
* Reject
*/
"GACiPtr": { [_: string]: number } | null;
/**
* Accept, hide
*/
"GACVPtr": { [_: string]: number } | null;
/**
* Accept, hide
*/
"GACPPtr": { [_: string]: number } | null;
/**
* Accept, hide
*/
"GABi": { [_: `${number}`]: number } | null;
"GACi": { [_ in ComparableCstrAlias<number>]?: number } | null;
/**
* Accept
*/
"GABs": { [_: BasicCstrAlias<string>]: number } | null;
"GACV": { [_ in ComparableCstrAlias<ValueTextMarshaler>]?: number } | null;
/**
* Reject
*/
"GABiPtr": { [_: string]: number } | null;
"GACP": { [_ in string]?: number } | null;
/**
* Reject
*/
"GABT": { [_: string]: number } | null;
"GACiPtr": { [_ in string]?: number } | null;
/**
* Reject
* Accept, hide
*/
"GABTPtr": { [_: string]: number } | null;
"GACVPtr": { [_ in string]?: number } | null;
/**
* Accept, hide
*/
"GACPPtr": { [_ in string]?: number } | null;
/**
* Accept
*/
"GAGT": { [_: GoodTildeCstrAlias<ValueTextMarshaler>]: number } | null;
/**
* Accept, hide
*/
"GAGTPtr": { [_: string]: number } | null;
"GABi": { [_ in BasicCstrAlias<number>]?: number } | null;
/**
* Accept
*/
"GANBV": { [_: NonBasicCstrAlias<ValueTextMarshaler>]: number } | null;
/**
* Accept, hide
*/
"GANBP": { [_: string]: number } | null;
/**
* Accept, hide
*/
"GANBVPtr": { [_: string]: number } | null;
"GABs": { [_ in BasicCstrAlias<string>]?: number } | null;
/**
* Reject
*/
"GANBPPtr": { [_: string]: number } | null;
"GABiPtr": { [_ in string]?: number } | null;
/**
* Reject
*/
"GABT": { [_ in string]?: number } | null;
/**
* Reject
*/
"GABTPtr": { [_ in string]?: number } | null;
/**
* Accept
*/
"GAPlV1": { [_: PointableCstrAlias<ValueTextMarshaler>]: number } | null;
"GAGT": { [_ in GoodTildeCstrAlias<ValueTextMarshaler>]?: number } | null;
/**
* Accept, hide
*/
"GAGTPtr": { [_ in string]?: number } | null;
/**
* Accept
*/
"GAPlV2": { [_: PointableCstrAlias<ValueTextMarshaler>]: number } | null;
"GANBV": { [_ in NonBasicCstrAlias<ValueTextMarshaler>]?: number } | null;
/**
* Accept, hide
*/
"GANBP": { [_ in string]?: number } | null;
/**
* Accept, hide
*/
"GANBVPtr": { [_ in string]?: number } | null;
/**
* Reject
*/
"GAPlP1": { [_: string]: number } | null;
"GANBPPtr": { [_ in string]?: number } | null;
/**
* Accept
*/
"GAPlP2": { [_: PointableCstrAlias<PointerTextMarshaler>]: number } | null;
/**
* Accept, hide
*/
"GAPlVPtr": { [_: string]: number } | null;
/**
* Accept, hide
*/
"GAPlPPtr": { [_: string]: number } | null;
/**
* Accept, hide
*/
"GAMi": { [_: `${number}`]: number } | null;
"GAPlV1": { [_ in PointableCstrAlias<ValueTextMarshaler>]?: number } | null;
/**
* Accept
*/
"GAMS": { [_: MixedCstrAlias<StringType>]: number } | null;
"GAPlV2": { [_ in PointableCstrAlias<ValueTextMarshaler>]?: number } | null;
/**
* Reject
*/
"GAPlP1": { [_ in string]?: number } | null;
/**
* Accept
*/
"GAMV": { [_: MixedCstrAlias<ValueTextMarshaler>]: number } | null;
/**
* Reject
*/
"GAMSPtr": { [_: string]: number } | null;
"GAPlP2": { [_ in PointableCstrAlias<PointerTextMarshaler>]?: number } | null;
/**
* Accept, hide
*/
"GAMVPtr": { [_: string]: number } | null;
"GAPlVPtr": { [_ in string]?: number } | null;
/**
* Accept, hide
*/
"GAII": { [_: string]: number } | null;
"GAPlPPtr": { [_ in string]?: number } | null;
/**
* Accept
*/
"GAIV": { [_: InterfaceCstrAlias<ValueTextMarshaler>]: number } | null;
"GAMi": { [_ in MixedCstrAlias<number>]?: number } | null;
/**
* Accept, hide
* Accept
*/
"GAIP": { [_: string]: number } | null;
"GAMS": { [_ in MixedCstrAlias<StringType>]?: number } | null;
/**
* Accept
*/
"GAMV": { [_ in MixedCstrAlias<ValueTextMarshaler>]?: number } | null;
/**
* Reject
*/
"GAIIPtr": { [_: string]: number } | null;
"GAMSPtr": { [_ in string]?: number } | null;
/**
* Accept, hide
*/
"GAIVPtr": { [_: string]: number } | null;
/**
* Reject
*/
"GAIPPtr": { [_: string]: number } | null;
"GAMVPtr": { [_ in string]?: number } | null;
/**
* Accept, hide
*/
"GAPrV": { [_: string]: number } | null;
"GAII": { [_ in string]?: number } | null;
/**
* Accept
*/
"GAIV": { [_ in InterfaceCstrAlias<ValueTextMarshaler>]?: number } | null;
/**
* Accept, hide
*/
"GAPrP": { [_: string]: number } | null;
"GAIP": { [_ in string]?: number } | null;
/**
* Reject
*/
"GAPrVPtr": { [_: string]: number } | null;
"GAIIPtr": { [_ in string]?: number } | null;
/**
* Accept, hide
*/
"GAIVPtr": { [_ in string]?: number } | null;
/**
* Reject
*/
"GAPrPPtr": { [_: string]: number } | null;
"GAIPPtr": { [_ in string]?: number } | null;
/**
* Accept, hide
*/
"GAPrV": { [_ in string]?: number } | null;
/**
* Accept, hide
*/
"GAPrP": { [_ in string]?: number } | null;
/**
* Reject
*/
"GAPrVPtr": { [_ in string]?: number } | null;
/**
* Reject
*/
"GAPrPPtr": { [_ in string]?: number } | null;
}
export type MixedCstrAlias<X> = X;

View file

@ -18,7 +18,7 @@ export interface HowDifferent<How> {
/**
* But they may have many differences.
*/
"Differences": ({ [_: string]: How } | null)[] | null;
"Differences": ({ [_ in string]?: How } | null)[] | null;
}
/**

View file

@ -81,19 +81,19 @@ export function IntPointerInputNamedOutputs($in: number | null): $CancellablePro
return $Call.ByID(2718999663, $in);
}
export function MapIntInt($in: { [_: `${number}`]: number } | null): $CancellablePromise<void> {
export function MapIntInt($in: { [_ in `${number}`]?: number } | null): $CancellablePromise<void> {
return $Call.ByID(2386486356, $in);
}
export function MapIntIntPointer($in: { [_: `${number}`]: number | null } | null): $CancellablePromise<void> {
export function MapIntIntPointer($in: { [_ in `${number}`]?: number | null } | null): $CancellablePromise<void> {
return $Call.ByID(2163571325, $in);
}
export function MapIntSliceInt($in: { [_: `${number}`]: number[] | null } | null): $CancellablePromise<void> {
export function MapIntSliceInt($in: { [_ in `${number}`]?: number[] | null } | null): $CancellablePromise<void> {
return $Call.ByID(2900172572, $in);
}
export function MapIntSliceIntInMapIntSliceIntOut($in: { [_: `${number}`]: number[] | null } | null): $CancellablePromise<{ [_: `${number}`]: number[] | null } | null> {
export function MapIntSliceIntInMapIntSliceIntOut($in: { [_ in `${number}`]?: number[] | null } | null): $CancellablePromise<{ [_ in `${number}`]?: number[] | null } | null> {
return $Call.ByID(881980169, $in);
}
@ -113,7 +113,7 @@ export function PointerFloat64InFloat64Out($in: number | null): $CancellableProm
return $Call.ByID(2124953624, $in);
}
export function PointerMapIntInt($in: { [_: `${number}`]: number } | null): $CancellablePromise<void> {
export function PointerMapIntInt($in: { [_ in `${number}`]?: number } | null): $CancellablePromise<void> {
return $Call.ByID(3516977899, $in);
}

View file

@ -81,19 +81,19 @@ export function IntPointerInputNamedOutputs($in: number | null): $CancellablePro
return $Call.ByID(2718999663, $in);
}
export function MapIntInt($in: { [_: `${number}`]: number } | null): $CancellablePromise<void> {
export function MapIntInt($in: { [_ in `${number}`]?: number } | null): $CancellablePromise<void> {
return $Call.ByID(2386486356, $in);
}
export function MapIntIntPointer($in: { [_: `${number}`]: number | null } | null): $CancellablePromise<void> {
export function MapIntIntPointer($in: { [_ in `${number}`]?: number | null } | null): $CancellablePromise<void> {
return $Call.ByID(2163571325, $in);
}
export function MapIntSliceInt($in: { [_: `${number}`]: number[] | null } | null): $CancellablePromise<void> {
export function MapIntSliceInt($in: { [_ in `${number}`]?: number[] | null } | null): $CancellablePromise<void> {
return $Call.ByID(2900172572, $in);
}
export function MapIntSliceIntInMapIntSliceIntOut($in: { [_: `${number}`]: number[] | null } | null): $CancellablePromise<{ [_: `${number}`]: number[] | null } | null> {
export function MapIntSliceIntInMapIntSliceIntOut($in: { [_ in `${number}`]?: number[] | null } | null): $CancellablePromise<{ [_ in `${number}`]?: number[] | null } | null> {
return $Call.ByID(881980169, $in);
}
@ -113,7 +113,7 @@ export function PointerFloat64InFloat64Out($in: number | null): $CancellableProm
return $Call.ByID(2124953624, $in);
}
export function PointerMapIntInt($in: { [_: `${number}`]: number } | null): $CancellablePromise<void> {
export function PointerMapIntInt($in: { [_ in `${number}`]?: number } | null): $CancellablePromise<void> {
return $Call.ByID(3516977899, $in);
}

View file

@ -19,7 +19,7 @@ declare module "/wails/runtime.js" {
namespace Events {
interface CustomEvents {
"events_only:class": events_only$0.SomeClass;
"events_only:map": { [_: string]: number[] | null } | null;
"events_only:map": { [_ in string]?: number[] | null } | null;
"events_only:nodata": void;
"events_only:other": more$0.StringPtr[] | null;
"events_only:string": string;

View file

@ -72,7 +72,7 @@ export type GenericAlias<T> = T;
/**
* A generic alias that wraps a map.
*/
export type GenericMapAlias<T, U> = { [_: string]: U } | null;
export type GenericMapAlias<T, U> = { [_ in string]?: U } | null;
/**
* A generic struct containing an alias.

View file

@ -19,6 +19,6 @@ import * as $models from "./models.js";
* It has a multiline doc comment
* The comment has even some * / traps!!
*/
export function Greet(str: string, people: $models.Person[] | null, $2: {"AnotherCount": number, "AnotherOne": $models.Person | null}, assoc: { [_: `${number}`]: boolean | null } | null, $4: (number | null)[] | null, ...other: string[]): $CancellablePromise<[$models.Person, any, number[] | null]> {
export function Greet(str: string, people: $models.Person[] | null, $2: {"AnotherCount": number, "AnotherOne": $models.Person | null}, assoc: { [_ in `${number}`]?: boolean | null } | null, $4: (number | null)[] | null, ...other: string[]): $CancellablePromise<[$models.Person, any, number[] | null]> {
return $Call.ByName("main.GreetService.Greet", str, people, $2, assoc, $4, other);
}

View file

@ -3,6 +3,6 @@
export type Alias = Cyclic | null;
export type Cyclic = ({ [_: string]: Alias } | null)[] | null;
export type Cyclic = ({ [_ in string]?: Alias } | null)[] | null;
export type GenericCyclic<T> = {"X": GenericCyclic<T> | null, "Y": T[] | null}[] | null;

View file

@ -0,0 +1,57 @@
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
// This file is automatically generated. DO NOT EDIT
/**
* EnumMapService tests various enum map key scenarios
* @module
*/
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore: Unused imports
import { Call as $Call, CancellablePromise as $CancellablePromise } from "/wails/runtime.js";
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore: Unused imports
import * as $models from "./models.js";
/**
* GetColorCodes returns a map with uint8 enum keys
*/
export function GetColorCodes(): $CancellablePromise<{ [_ in $models.Color]?: string } | null> {
return $Call.ByName("main.EnumMapService.GetColorCodes");
}
/**
* GetNestedEnumMap returns a map with enum keys and complex values
*/
export function GetNestedEnumMap(): $CancellablePromise<{ [_ in $models.Status]?: { [_ in $models.Priority]?: string } | null } | null> {
return $Call.ByName("main.EnumMapService.GetNestedEnumMap");
}
/**
* GetOptionalEnumMap returns a map with enum keys to optional values
*/
export function GetOptionalEnumMap(): $CancellablePromise<{ [_ in $models.Status]?: string | null } | null> {
return $Call.ByName("main.EnumMapService.GetOptionalEnumMap");
}
/**
* GetPersonsByStatus returns a map with enum keys to struct values
*/
export function GetPersonsByStatus(): $CancellablePromise<{ [_ in $models.Status]?: $models.Person[] | null } | null> {
return $Call.ByName("main.EnumMapService.GetPersonsByStatus");
}
/**
* GetPriorityWeights returns a map with integer enum keys
*/
export function GetPriorityWeights(): $CancellablePromise<{ [_ in $models.Priority]?: number } | null> {
return $Call.ByName("main.EnumMapService.GetPriorityWeights");
}
/**
* GetStatusMessages returns a map with string enum keys
*/
export function GetStatusMessages(): $CancellablePromise<{ [_ in $models.Status]?: string } | null> {
return $Call.ByName("main.EnumMapService.GetStatusMessages");
}

View file

@ -0,0 +1,17 @@
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
// This file is automatically generated. DO NOT EDIT
import * as EnumMapService from "./enummapservice.js";
export {
EnumMapService
};
export {
Color,
Priority,
Status
} from "./models.js";
export type {
Person
} from "./models.js";

View file

@ -0,0 +1,53 @@
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
// This file is automatically generated. DO NOT EDIT
/**
* Color represents color values
*/
export enum Color {
/**
* The Go zero value for the underlying type of the enum.
*/
$zero = 0,
Red = 1,
Green = 2,
Blue = 3,
};
/**
* Person represents a person with status
*/
export interface Person {
"Name": string;
"Status": Status;
}
/**
* Priority represents priority levels
*/
export enum Priority {
/**
* The Go zero value for the underlying type of the enum.
*/
$zero = 0,
PriorityLow = 1,
PriorityMedium = 2,
PriorityHigh = 3,
};
/**
* Status represents different status values
*/
export enum Status {
/**
* The Go zero value for the underlying type of the enum.
*/
$zero = "",
StatusPending = "pending",
StatusRunning = "running",
StatusCompleted = "completed",
StatusFailed = "failed",
};

View file

@ -16,6 +16,8 @@ export type {
EmbeddedValue,
EmbeddedValuePtr,
GoodTildeCstrAlias,
IntAlias,
IntType,
InterfaceCstrAlias,
Maps,
MixedCstrAlias,

Some files were not shown because too many files have changed in this diff Show more