Replace most functionality in internal/util with goutil and slices

This commit is contained in:
Sasha Koshka 2024-09-11 00:08:21 -04:00
parent 0a8bb39265
commit 9d67013e33
9 changed files with 39 additions and 156 deletions

5
go.mod
View File

@ -1,8 +1,11 @@
module git.tebibyte.media/tomo/backend module git.tebibyte.media/tomo/backend
go 1.20 go 1.21.0
toolchain go1.22.2
require ( require (
git.tebibyte.media/sashakoshka/goutil v0.3.0
git.tebibyte.media/tomo/tomo v0.46.1 git.tebibyte.media/tomo/tomo v0.46.1
git.tebibyte.media/tomo/typeset v0.8.0 git.tebibyte.media/tomo/typeset v0.8.0
git.tebibyte.media/tomo/xgbkb v1.0.1 git.tebibyte.media/tomo/xgbkb v1.0.1

2
go.sum
View File

@ -1,3 +1,5 @@
git.tebibyte.media/sashakoshka/goutil v0.3.0 h1:dcZ/9/or7m8eTpf2B1Pu4CscplXh2INTXFartz+ExwE=
git.tebibyte.media/sashakoshka/goutil v0.3.0/go.mod h1:e1OXLa+wX7x/F8n8gyxz2hnfVCEkWzGrZNX8/k/lR/M=
git.tebibyte.media/sashakoshka/xgbkb v1.0.0/go.mod h1:pNcE6TRO93vHd6q42SdwLSTTj25L0Yzggz7yLe0JV6Q= git.tebibyte.media/sashakoshka/xgbkb v1.0.0/go.mod h1:pNcE6TRO93vHd6q42SdwLSTTj25L0Yzggz7yLe0JV6Q=
git.tebibyte.media/tomo/tomo v0.46.1 h1:/8fT6I9l4TK529zokrThbNDHGRvUsNgif1Zs++0PBSQ= git.tebibyte.media/tomo/tomo v0.46.1 h1:/8fT6I9l4TK529zokrThbNDHGRvUsNgif1Zs++0PBSQ=
git.tebibyte.media/tomo/tomo v0.46.1/go.mod h1:WrtilgKB1y8O2Yu7X4mYcRiqOlPR8NuUnoA/ynkQWrs= git.tebibyte.media/tomo/tomo v0.46.1/go.mod h1:WrtilgKB1y8O2Yu7X4mYcRiqOlPR8NuUnoA/ynkQWrs=

View File

@ -1,12 +1,12 @@
package system package system
import "git.tebibyte.media/tomo/tomo" import "git.tebibyte.media/tomo/tomo"
import "git.tebibyte.media/tomo/backend/internal/util" import "git.tebibyte.media/sashakoshka/goutil/container"
type attrHierarchy [T tomo.Attr] struct { type attrHierarchy [T tomo.Attr] struct {
fallback T fallback T
style util.Optional[T] style ucontainer.Optional[T]
user util.Optional[T] user ucontainer.Optional[T]
} }
func (this *attrHierarchy[T]) SetFallback (fallback T) { func (this *attrHierarchy[T]) SetFallback (fallback T) {

View File

@ -7,20 +7,21 @@ import "git.tebibyte.media/tomo/tomo/data"
import "git.tebibyte.media/tomo/tomo/input" import "git.tebibyte.media/tomo/tomo/input"
import "git.tebibyte.media/tomo/tomo/event" import "git.tebibyte.media/tomo/tomo/event"
import "git.tebibyte.media/tomo/tomo/canvas" import "git.tebibyte.media/tomo/tomo/canvas"
import "git.tebibyte.media/tomo/backend/internal/util" import "git.tebibyte.media/sashakoshka/goutil/container"
import "git.tebibyte.media/sashakoshka/goutil/image/color"
type box struct { type box struct {
system *System system *System
parent parent parent parent
outer anyBox outer anyBox
tags util.Set[string] tags ucontainer.Set[string]
role tomo.Role role tomo.Role
lastStyleNonce int lastStyleNonce int
lastIconSetNonce int lastIconSetNonce int
styleApplicator *styleApplicator styleApplicator *styleApplicator
minSize util.Memo[image.Point] minSize ucontainer.Memo[image.Point]
bounds image.Rectangle bounds image.Rectangle
innerClippingBounds image.Rectangle innerClippingBounds image.Rectangle