Files
mautrix-telegram/pkg/gotd/telegram/updates/update.go
T
2025-06-27 20:03:37 -07:00

54 lines
901 B
Go

package updates
import (
"go.mau.fi/mautrix-telegram/pkg/gotd/tg"
)
type update struct {
Value any
State int
Count int
Entities entities
}
func (u update) start() int { return u.State - u.Count }
func (u update) end() int { return u.State }
// Entities contains update entities.
type entities struct {
Users []tg.UserClass
Chats []tg.ChatClass
}
// Merge merges entities.
func (e *entities) Merge(from entities) {
for _, candidate := range from.Users {
merge := true
for _, exist := range e.Users {
if exist.GetID() == candidate.GetID() {
merge = false
break
}
}
if merge {
e.Users = append(e.Users, candidate)
}
}
for _, candidate := range from.Chats {
merge := true
for _, exist := range e.Chats {
if exist.GetID() == candidate.GetID() {
merge = false
break
}
}
if merge {
e.Chats = append(e.Chats, candidate)
}
}
}