add dat base

This commit is contained in:
2022-12-31 17:17:10 +01:00
parent 6fb82df153
commit 4ff22d7d63
27 changed files with 1337 additions and 36 deletions
+25 -10
View File
@@ -1,6 +1,7 @@
package device
import (
"git.aiterp.net/lucifer3/server/internal/gentools"
"strings"
)
@@ -13,14 +14,9 @@ type Pointer struct {
Aliases []string `json:"aliases"`
}
func (p *Pointer) AddAlias(alias string) {
if strings.HasPrefix(alias, "lucifer:name:") {
for i, alias2 := range p.Aliases {
if strings.HasPrefix(alias2, "lucifer:name:") {
p.Aliases = append(p.Aliases[:i], p.Aliases[i+1:]...)
break
}
}
func (p *Pointer) AddAlias(alias string) (added *string, removed *string) {
if !strings.HasPrefix(alias, "lucifer:") {
return
}
for _, alias2 := range p.Aliases {
@@ -29,16 +25,35 @@ func (p *Pointer) AddAlias(alias string) {
}
}
if strings.HasPrefix(alias, "lucifer:name:") {
for i, alias2 := range p.Aliases {
if strings.HasPrefix(alias2, "lucifer:name:") {
p.Aliases = append(p.Aliases[:i], p.Aliases[i+1:]...)
removed = gentools.ShallowCopy(&alias2)
break
}
}
}
added = gentools.ShallowCopy(&alias)
p.Aliases = append(p.Aliases, alias)
return
}
func (p *Pointer) RemoveAlias(alias string) {
func (p *Pointer) RemoveAlias(alias string) bool {
if strings.HasPrefix(alias, "lucifer:name:") {
// Name cannot be removed like this.
return false
}
for i, alias2 := range p.Aliases {
if alias2 == alias {
p.Aliases = append(p.Aliases[:i], p.Aliases[i+1:]...)
break
return true
}
}
return false
}
func (p *Pointer) Name() string {