gui
This commit is contained in:
parent
d735a6bb15
commit
4bb8715e7f
@ -88,6 +88,7 @@ const (
|
|||||||
// toolbar
|
// toolbar
|
||||||
TOOLBAR_MONITOR = "监控"
|
TOOLBAR_MONITOR = "监控"
|
||||||
TOOLBAR_TESTER = "接口测试"
|
TOOLBAR_TESTER = "接口测试"
|
||||||
|
TOOLBAR_GEN = "生成代码"
|
||||||
|
|
||||||
//monitor
|
//monitor
|
||||||
APP_MONITOR_TITLE_ID = "编号"
|
APP_MONITOR_TITLE_ID = "编号"
|
||||||
|
@ -10,7 +10,10 @@ import (
|
|||||||
"io"
|
"io"
|
||||||
"os"
|
"os"
|
||||||
|
|
||||||
|
"fyne.io/fyne/v2"
|
||||||
"fyne.io/fyne/v2/app"
|
"fyne.io/fyne/v2/app"
|
||||||
|
"fyne.io/fyne/v2/container"
|
||||||
|
"fyne.io/fyne/v2/widget"
|
||||||
"github.com/sirupsen/logrus"
|
"github.com/sirupsen/logrus"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -18,6 +21,7 @@ var (
|
|||||||
connService service.ConnService
|
connService service.ConnService
|
||||||
pttService service.PttService
|
pttService service.PttService
|
||||||
configService service.ConfigService
|
configService service.ConfigService
|
||||||
|
dbService service.DbService
|
||||||
obs = observer.NewObserver()
|
obs = observer.NewObserver()
|
||||||
logger *logrus.Logger
|
logger *logrus.Logger
|
||||||
)
|
)
|
||||||
@ -31,6 +35,11 @@ func init() {
|
|||||||
os.Exit(1)
|
os.Exit(1)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if err = setupDb(); err != nil {
|
||||||
|
fmt.Println(err)
|
||||||
|
os.Exit(1)
|
||||||
|
}
|
||||||
|
|
||||||
// initialize logger
|
// initialize logger
|
||||||
if err = setupLogger(); err != nil {
|
if err = setupLogger(); err != nil {
|
||||||
fmt.Println(err)
|
fmt.Println(err)
|
||||||
@ -53,9 +62,24 @@ func main() {
|
|||||||
app := app.NewWithID("protocol-test-tool")
|
app := app.NewWithID("protocol-test-tool")
|
||||||
app.SetIcon(theme.ResourceIconPng)
|
app.SetIcon(theme.ResourceIconPng)
|
||||||
appUI := ui.NewUI(app, configService, connService, pttService, obs)
|
appUI := ui.NewUI(app, configService, connService, pttService, obs)
|
||||||
mainWindow := ui.NewMainWindow(appUI)
|
|
||||||
|
|
||||||
|
//创建enter
|
||||||
|
w := fyne.CurrentApp().NewWindow("")
|
||||||
|
w.SetContent(container.NewGridWithColumns(2,
|
||||||
|
widget.NewButton("工具", func() {
|
||||||
|
toolWindow := ui.NewToolWindow(appUI)
|
||||||
|
toolWindow.CreateWindow(common.APP_NAME, 1366, 768, true)
|
||||||
|
w.Hide()
|
||||||
|
}),
|
||||||
|
widget.NewButton("登服", func() {
|
||||||
|
mainWindow := ui.NewMainWindow(appUI)
|
||||||
mainWindow.CreateWindow(common.APP_NAME, 1366, 768, true)
|
mainWindow.CreateWindow(common.APP_NAME, 1366, 768, true)
|
||||||
|
w.Hide()
|
||||||
|
})))
|
||||||
|
w.SetFixedSize(true)
|
||||||
|
w.Resize(fyne.NewSize(300, 100))
|
||||||
|
w.Show()
|
||||||
|
w.CenterOnScreen()
|
||||||
logrus.WithField("version", app.Metadata().Version).Info("app starting")
|
logrus.WithField("version", app.Metadata().Version).Info("app starting")
|
||||||
appUI.Run()
|
appUI.Run()
|
||||||
}
|
}
|
||||||
@ -70,6 +94,11 @@ func setupWsConn() (err error) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func setupDb() (err error) {
|
||||||
|
dbService = service.NewDbService()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
func setupConfig() (err error) {
|
func setupConfig() (err error) {
|
||||||
configService, err = service.NewConfigService()
|
configService, err = service.NewConfigService()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -10,10 +10,11 @@ type appContainer struct {
|
|||||||
appStatusMap map[string]appStatus
|
appStatusMap map[string]appStatus
|
||||||
container.DocTabs
|
container.DocTabs
|
||||||
obs observer.Observer
|
obs observer.Observer
|
||||||
|
ai []appInterface
|
||||||
}
|
}
|
||||||
|
|
||||||
func newAppContainer(obs observer.Observer) *appContainer {
|
func newAppContainer(ai []appInterface, obs observer.Observer) *appContainer {
|
||||||
at := &appContainer{obs: obs}
|
at := &appContainer{ai: ai, obs: obs}
|
||||||
|
|
||||||
at.appStatusMap = make(map[string]appStatus)
|
at.appStatusMap = make(map[string]appStatus)
|
||||||
at.CloseIntercept = at.closeHandle
|
at.CloseIntercept = at.closeHandle
|
||||||
@ -30,7 +31,7 @@ type appStatus struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (at *appContainer) closeHandle(tab *container.TabItem) {
|
func (at *appContainer) closeHandle(tab *container.TabItem) {
|
||||||
for _, app := range appRegister {
|
for _, app := range at.ai {
|
||||||
if app.GetAppName() == tab.Text {
|
if app.GetAppName() == tab.Text {
|
||||||
if app.OnClose() {
|
if app.OnClose() {
|
||||||
at.Remove(tab)
|
at.Remove(tab)
|
||||||
@ -60,7 +61,7 @@ func (at *appContainer) openApp(app appInterface) error {
|
|||||||
// open default app
|
// open default app
|
||||||
func (at *appContainer) openDefaultApp() (string, error) {
|
func (at *appContainer) openDefaultApp() (string, error) {
|
||||||
var firstTab *container.TabItem
|
var firstTab *container.TabItem
|
||||||
for _, app := range appRegister {
|
for _, app := range at.ai {
|
||||||
if app.OpenDefault() {
|
if app.OpenDefault() {
|
||||||
if err := at.initApp(app); err != nil {
|
if err := at.initApp(app); err != nil {
|
||||||
return app.GetAppName(), err
|
return app.GetAppName(), err
|
||||||
|
@ -19,6 +19,10 @@ var (
|
|||||||
&appMonitor{},
|
&appMonitor{},
|
||||||
&appTester{},
|
&appTester{},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
toolRegister = []appInterface{
|
||||||
|
&appGen{},
|
||||||
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
type appAdapter struct {
|
type appAdapter struct {
|
||||||
|
@ -16,6 +16,7 @@ import (
|
|||||||
"fyne.io/fyne/v2"
|
"fyne.io/fyne/v2"
|
||||||
"fyne.io/fyne/v2/container"
|
"fyne.io/fyne/v2/container"
|
||||||
"fyne.io/fyne/v2/dialog"
|
"fyne.io/fyne/v2/dialog"
|
||||||
|
"fyne.io/fyne/v2/theme"
|
||||||
"fyne.io/fyne/v2/widget"
|
"fyne.io/fyne/v2/widget"
|
||||||
"github.com/BabySid/gobase"
|
"github.com/BabySid/gobase"
|
||||||
"github.com/Pallinder/go-randomdata"
|
"github.com/Pallinder/go-randomdata"
|
||||||
@ -25,6 +26,7 @@ import (
|
|||||||
|
|
||||||
var (
|
var (
|
||||||
globalWin *MainWindowImpl
|
globalWin *MainWindowImpl
|
||||||
|
toolWin *ToolWindowImpl
|
||||||
)
|
)
|
||||||
|
|
||||||
type MainWindow interface {
|
type MainWindow interface {
|
||||||
@ -49,19 +51,6 @@ func NewMainWindow(ui *UIImpl) MainWindow {
|
|||||||
UIImpl: *ui,
|
UIImpl: *ui,
|
||||||
}
|
}
|
||||||
|
|
||||||
// main menu
|
|
||||||
// mw.mm = newMainMenu()
|
|
||||||
// mw.w.SetMainMenu(mw.mm.MainMenu)
|
|
||||||
|
|
||||||
// status bar
|
|
||||||
mw.sb = newStatusBar()
|
|
||||||
|
|
||||||
// tool bar
|
|
||||||
mw.tb = newToolBar()
|
|
||||||
|
|
||||||
// main app tabs
|
|
||||||
mw.at = newAppContainer(ui.obs)
|
|
||||||
|
|
||||||
globalWin = mw
|
globalWin = mw
|
||||||
|
|
||||||
ui.obs.AddListener(observer.EVENT_PING, observer.Listener{
|
ui.obs.AddListener(observer.EVENT_PING, observer.Listener{
|
||||||
@ -95,13 +84,25 @@ func (ui *MainWindowImpl) createWindowContainer() {
|
|||||||
ui.sb = newStatusBar()
|
ui.sb = newStatusBar()
|
||||||
|
|
||||||
// tool bar
|
// tool bar
|
||||||
ui.tb = newToolBar()
|
toolbar := widget.NewToolbar(
|
||||||
|
widget.NewToolbarAction(theme.ComputerIcon(), func() {
|
||||||
|
openApp2(common.TOOLBAR_MONITOR)
|
||||||
|
}),
|
||||||
|
widget.NewToolbarAction(theme.AccountIcon(), func() {
|
||||||
|
openApp2(common.TOOLBAR_TESTER)
|
||||||
|
}),
|
||||||
|
widget.NewToolbarSpacer(),
|
||||||
|
widget.NewToolbarAction(theme.HelpIcon(), func() {
|
||||||
|
showAbout()
|
||||||
|
}),
|
||||||
|
)
|
||||||
|
ui.tb = newToolBar(toolbar)
|
||||||
|
|
||||||
// Fun Toys
|
// Fun Toys
|
||||||
ui.toys = newToys(ui.obs)
|
ui.toys = newToys(ui.obs)
|
||||||
|
|
||||||
// main app tabs
|
// main app tabs
|
||||||
ui.at = newAppContainer(ui.obs)
|
ui.at = newAppContainer(appRegister, ui.obs)
|
||||||
content := container.NewBorder(ui.tb.toolbar, ui.sb.widget, nil, ui.toys.widget, ui.at)
|
content := container.NewBorder(ui.tb.toolbar, ui.sb.widget, nil, ui.toys.widget, ui.at)
|
||||||
ui.w.SetContent(content)
|
ui.w.SetContent(content)
|
||||||
ui.w.SetCloseIntercept(ui.quiteHandle)
|
ui.w.SetCloseIntercept(ui.quiteHandle)
|
||||||
@ -238,14 +239,11 @@ func (ui *MainWindowImpl) createChooseServerWindow(
|
|||||||
|
|
||||||
// createLoginWin
|
// createLoginWin
|
||||||
func (ui *MainWindowImpl) createLoginWin(sid, sname string) {
|
func (ui *MainWindowImpl) createLoginWin(sid, sname string) {
|
||||||
//form
|
|
||||||
account := widget.NewEntry()
|
account := widget.NewEntry()
|
||||||
account.Text = "user8080" //default account
|
// account.Text = "user8080" //default account
|
||||||
// account.Validator = validation.NewRegexp(`^(\s*)$`, "account required")
|
|
||||||
// password := widget.NewPasswordEntry()
|
|
||||||
items := []*widget.FormItem{
|
items := []*widget.FormItem{
|
||||||
widget.NewFormItem(common.LABEL_ACCOUNT, account),
|
widget.NewFormItem(common.LABEL_ACCOUNT, account),
|
||||||
// widget.NewFormItem("password", password),
|
|
||||||
}
|
}
|
||||||
|
|
||||||
dialog.ShowForm(common.FORM_TITLE_LOGIN, common.BUTTON_LOGIN, common.BUTTON_CANCEL, items, func(b bool) {
|
dialog.ShowForm(common.FORM_TITLE_LOGIN, common.BUTTON_LOGIN, common.BUTTON_CANCEL, items, func(b bool) {
|
||||||
|
@ -2,9 +2,7 @@ package ui
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"go_dreamfactory/cmd/v2/lib/common"
|
|
||||||
|
|
||||||
"fyne.io/fyne/v2/theme"
|
|
||||||
"fyne.io/fyne/v2/widget"
|
"fyne.io/fyne/v2/widget"
|
||||||
"github.com/sirupsen/logrus"
|
"github.com/sirupsen/logrus"
|
||||||
)
|
)
|
||||||
@ -13,26 +11,16 @@ type toolBar struct {
|
|||||||
toolbar *widget.Toolbar
|
toolbar *widget.Toolbar
|
||||||
}
|
}
|
||||||
|
|
||||||
func newToolBar() *toolBar {
|
func newToolBar(items *widget.Toolbar) *toolBar {
|
||||||
var tb toolBar
|
var tb toolBar
|
||||||
|
|
||||||
// mainwindow toolbar
|
// mainwindow toolbar
|
||||||
tb.toolbar = widget.NewToolbar(
|
tb.toolbar = items
|
||||||
widget.NewToolbarAction(theme.ComputerIcon(), func() {
|
|
||||||
openApp(common.TOOLBAR_MONITOR)
|
|
||||||
}),
|
|
||||||
widget.NewToolbarAction(theme.AccountIcon(), func() {
|
|
||||||
openApp(common.TOOLBAR_TESTER)
|
|
||||||
}),
|
|
||||||
widget.NewToolbarSpacer(),
|
|
||||||
widget.NewToolbarAction(theme.HelpIcon(), func() {
|
|
||||||
showAbout()
|
|
||||||
}),
|
|
||||||
)
|
|
||||||
return &tb
|
return &tb
|
||||||
}
|
}
|
||||||
|
|
||||||
func openApp(name string) {
|
// open app2
|
||||||
|
func openApp2(name string) {
|
||||||
for _, app := range appRegister {
|
for _, app := range appRegister {
|
||||||
if app.GetAppName() == name {
|
if app.GetAppName() == name {
|
||||||
err := globalWin.at.openApp(app)
|
err := globalWin.at.openApp(app)
|
||||||
@ -42,3 +30,14 @@ func openApp(name string) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func openApp1(name string) {
|
||||||
|
for _, app := range toolRegister {
|
||||||
|
if app.GetAppName() == name {
|
||||||
|
err := toolWin.at.openApp(app)
|
||||||
|
if err != nil {
|
||||||
|
logrus.Error(fmt.Errorf("%s %v", app.GetAppName(), err))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
2
go.mod
2
go.mod
@ -9,6 +9,7 @@ require (
|
|||||||
github.com/Pallinder/go-randomdata v1.2.0
|
github.com/Pallinder/go-randomdata v1.2.0
|
||||||
github.com/atotto/clipboard v0.1.4
|
github.com/atotto/clipboard v0.1.4
|
||||||
github.com/axgle/mahonia v0.0.0-20180208002826-3358181d7394
|
github.com/axgle/mahonia v0.0.0-20180208002826-3358181d7394
|
||||||
|
github.com/boltdb/bolt v1.3.1
|
||||||
github.com/dengsgo/math-engine v0.0.0-20220213125415-0351c3c75eca
|
github.com/dengsgo/math-engine v0.0.0-20220213125415-0351c3c75eca
|
||||||
github.com/gin-gonic/gin v1.8.1
|
github.com/gin-gonic/gin v1.8.1
|
||||||
github.com/go-playground/validator/v10 v10.10.1
|
github.com/go-playground/validator/v10 v10.10.1
|
||||||
@ -169,7 +170,6 @@ require (
|
|||||||
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f // indirect
|
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f // indirect
|
||||||
golang.org/x/text v0.3.7 // indirect
|
golang.org/x/text v0.3.7 // indirect
|
||||||
golang.org/x/tools v0.1.12 // indirect
|
golang.org/x/tools v0.1.12 // indirect
|
||||||
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 // indirect
|
|
||||||
gopkg.in/ini.v1 v1.62.0 // indirect
|
gopkg.in/ini.v1 v1.62.0 // indirect
|
||||||
gopkg.in/natefinch/lumberjack.v2 v2.0.0 // indirect
|
gopkg.in/natefinch/lumberjack.v2 v2.0.0 // indirect
|
||||||
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect
|
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect
|
||||||
|
10
go.sum
10
go.sum
@ -92,6 +92,8 @@ github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+Ce
|
|||||||
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
|
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
|
||||||
github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs=
|
github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs=
|
||||||
github.com/bketelsen/crypt v0.0.4/go.mod h1:aI6NrJ0pMGgvZKL1iVgXLnfIFJtfV+bKCoqOes/6LfM=
|
github.com/bketelsen/crypt v0.0.4/go.mod h1:aI6NrJ0pMGgvZKL1iVgXLnfIFJtfV+bKCoqOes/6LfM=
|
||||||
|
github.com/boltdb/bolt v1.3.1 h1:JQmyP4ZBrce+ZQu0dY660FMfatumYDLun9hBCUVIkF4=
|
||||||
|
github.com/boltdb/bolt v1.3.1/go.mod h1:clJnj/oiGkjum5o1McbSZDSLxVThjynRyGBgiAx27Ps=
|
||||||
github.com/bradfitz/go-smtpd v0.0.0-20170404230938-deb6d6237625/go.mod h1:HYsPBTaaSFSlLx/70C2HPIMNZpVV8+vt/A+FMnYP11g=
|
github.com/bradfitz/go-smtpd v0.0.0-20170404230938-deb6d6237625/go.mod h1:HYsPBTaaSFSlLx/70C2HPIMNZpVV8+vt/A+FMnYP11g=
|
||||||
github.com/buger/jsonparser v0.0.0-20181115193947-bf1c66bbce23/go.mod h1:bbYlZJ7hK1yFx9hf58LP0zeX7UjIGs20ufpu3evjr+s=
|
github.com/buger/jsonparser v0.0.0-20181115193947-bf1c66bbce23/go.mod h1:bbYlZJ7hK1yFx9hf58LP0zeX7UjIGs20ufpu3evjr+s=
|
||||||
github.com/buger/jsonparser v1.1.1/go.mod h1:6RYKKt7H4d4+iWqouImQ9R2FZql3VbhNgx27UK13J/0=
|
github.com/buger/jsonparser v1.1.1/go.mod h1:6RYKKt7H4d4+iWqouImQ9R2FZql3VbhNgx27UK13J/0=
|
||||||
@ -766,7 +768,6 @@ github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de
|
|||||||
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||||
github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
|
github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
|
||||||
github.com/yuin/goldmark v1.4.0/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
|
github.com/yuin/goldmark v1.4.0/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
|
||||||
github.com/yuin/goldmark v1.4.1 h1:/vn0k+RBvwlxEmP5E7SZMqNxPhfMVFEJiykr15/0XKM=
|
|
||||||
github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
|
github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
|
||||||
github.com/yuin/goldmark v1.4.13 h1:fVcFKWvrslecOb/tg+Cc05dkeYx540o0FuFt3nUVDoE=
|
github.com/yuin/goldmark v1.4.13 h1:fVcFKWvrslecOb/tg+Cc05dkeYx540o0FuFt3nUVDoE=
|
||||||
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
|
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
|
||||||
@ -867,7 +868,6 @@ golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
|||||||
golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||||
golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||||
golang.org/x/mod v0.5.1/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro=
|
golang.org/x/mod v0.5.1/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro=
|
||||||
golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3 h1:kQgndtyPBW/JIYERgdxfwMYh3AVStj88WQTlNDi2a+o=
|
|
||||||
golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3/go.mod h1:3p9vT2HGsQu2K1YbXdKPJLVgG5VJdoTa1poYQBtP1AY=
|
golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3/go.mod h1:3p9vT2HGsQu2K1YbXdKPJLVgG5VJdoTa1poYQBtP1AY=
|
||||||
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 h1:6zppjxzCulZykYSLyVDYbneBfbaBIQPYMevg0bEwv2s=
|
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 h1:6zppjxzCulZykYSLyVDYbneBfbaBIQPYMevg0bEwv2s=
|
||||||
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
|
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
|
||||||
@ -925,7 +925,6 @@ golang.org/x/net v0.0.0-20210916014120-12bc252f5db8/go.mod h1:9nx3DQGgdP8bBQD5qx
|
|||||||
golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
||||||
golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
||||||
golang.org/x/net v0.0.0-20211216030914-fe4d6282115f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
golang.org/x/net v0.0.0-20211216030914-fe4d6282115f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
||||||
golang.org/x/net v0.0.0-20220407224826-aac1ed45d8e3 h1:EN5+DfgmRMvRUrMGERW2gQl3Vc+Z7ZMnI/xdEpPSf0c=
|
|
||||||
golang.org/x/net v0.0.0-20220407224826-aac1ed45d8e3/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
|
golang.org/x/net v0.0.0-20220407224826-aac1ed45d8e3/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
|
||||||
golang.org/x/net v0.0.0-20220722155237-a158d28d115b h1:PxfKdU9lEEDYjdIzOtC4qFWgkU2rGHdKlKowJSMN9h0=
|
golang.org/x/net v0.0.0-20220722155237-a158d28d115b h1:PxfKdU9lEEDYjdIzOtC4qFWgkU2rGHdKlKowJSMN9h0=
|
||||||
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
|
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
|
||||||
@ -955,8 +954,8 @@ golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJ
|
|||||||
golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c h1:5KslGYwFpkhGh+Q16bwMP3cOontH8FOep7tGV86Y7SQ=
|
|
||||||
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
|
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4 h1:uVc8UZUe6tr40fFVnUP5Oj+veunVezqYl9z7DYw9xzw=
|
||||||
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
|
||||||
golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
@ -1035,8 +1034,6 @@ golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBc
|
|||||||
golang.org/x/sys v0.0.0-20220111092808-5a964db01320/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
golang.org/x/sys v0.0.0-20220111092808-5a964db01320/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
golang.org/x/sys v0.0.0-20220408201424-a24fb2fb8a0f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
golang.org/x/sys v0.0.0-20220408201424-a24fb2fb8a0f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
golang.org/x/sys v0.0.0-20220712014510-0a85c31ab51e h1:NHvCuwuS43lGnYhten69ZWqi2QOj/CiDNcKbVqwVoew=
|
|
||||||
golang.org/x/sys v0.0.0-20220712014510-0a85c31ab51e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
|
||||||
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f h1:v4INt8xihDGvnrfjMDVXGxw9wrfxYyCjk0KbXjhR55s=
|
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f h1:v4INt8xihDGvnrfjMDVXGxw9wrfxYyCjk0KbXjhR55s=
|
||||||
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||||
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
||||||
@ -1123,7 +1120,6 @@ golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
|
|||||||
golang.org/x/tools v0.1.6-0.20210726203631-07bc1bf47fb2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
|
golang.org/x/tools v0.1.6-0.20210726203631-07bc1bf47fb2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
|
||||||
golang.org/x/tools v0.1.8-0.20211022200916-316ba0b74098/go.mod h1:LGqMHiF4EqQNHR1JncWGqT5BVaXmza+X+BDGol+dOxo=
|
golang.org/x/tools v0.1.8-0.20211022200916-316ba0b74098/go.mod h1:LGqMHiF4EqQNHR1JncWGqT5BVaXmza+X+BDGol+dOxo=
|
||||||
golang.org/x/tools v0.1.8/go.mod h1:nABZi5QlRsZVlzPpHl034qft6wpY4eDcsTt5AaioBiU=
|
golang.org/x/tools v0.1.8/go.mod h1:nABZi5QlRsZVlzPpHl034qft6wpY4eDcsTt5AaioBiU=
|
||||||
golang.org/x/tools v0.1.10 h1:QjFRCZxdOhBJ/UNgnBZLbNV13DlbnK0quyivTnXJM20=
|
|
||||||
golang.org/x/tools v0.1.10/go.mod h1:Uh6Zz+xoGYZom868N8YTex3t7RhtHDBrE8Gzo9bV56E=
|
golang.org/x/tools v0.1.10/go.mod h1:Uh6Zz+xoGYZom868N8YTex3t7RhtHDBrE8Gzo9bV56E=
|
||||||
golang.org/x/tools v0.1.12 h1:VveCTK38A2rkS8ZqFY25HIDFscX5X9OoEhJd3quQmXU=
|
golang.org/x/tools v0.1.12 h1:VveCTK38A2rkS8ZqFY25HIDFscX5X9OoEhJd3quQmXU=
|
||||||
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
|
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
|
||||||
|
Loading…
Reference in New Issue
Block a user