wails-template/app.tmpl.go

69 lines
1.1 KiB
Go
Raw Normal View History

2025-02-03 16:09:45 +01:00
package main
import (
"context"
"fmt"
2025-02-04 09:51:28 +01:00
"slices"
2025-02-03 16:09:45 +01:00
)
// App struct
type App struct {
ctx context.Context
}
// NewApp creates a new App application struct
func NewApp() *App {
return &App{}
}
// startup is called when the app starts. The context is saved
// so we can call the runtime methods
func (a *App) startup(ctx context.Context) {
a.ctx = ctx
}
// Greet returns a greeting for the given name
func (a *App) Greet(name string) string {
return fmt.Sprintf("Hello %s, It's show time!", name)
}
2025-02-04 09:51:28 +01:00
type Thing struct {
ID int
Name string
}
type Service struct {
things map[int]Thing
maxID int
}
func NewThingsService() *Service {
return &Service{
things: make(map[int]Thing),
}
}
func (s *Service) NewThing(name string) {
s.maxID++
s.things[s.maxID] = Thing{
Name: name,
ID: s.maxID,
}
print(name)
}
func (s *Service) GetThings() []Thing {
things := make([]Thing, 0, len(s.things))
for _, t := range s.things {
things = append(things, t)
}
slices.SortFunc(things, func(a, b Thing) int { return a.ID - b.ID })
return things
}
func (s *Service) DeleteThing(id int) {
delete(s.things, id)
}