Go generics and changes in v1.18 (#5)

* ArrayIn to use generics.

* interface{} -> any.
This commit is contained in:
Miroslav Šedivý
2022-07-28 12:20:20 +02:00
committed by GitHub
parent c725e96c90
commit babddacbf3
26 changed files with 100 additions and 110 deletions

View File

@ -237,13 +237,13 @@ func (manager *SessionManagerCtx) PopCursors() map[types.Session][]types.Cursor
// broadcasts
// ---
func (manager *SessionManagerCtx) Broadcast(event string, payload interface{}, exclude interface{}) {
func (manager *SessionManagerCtx) Broadcast(event string, payload any, exclude ...string) {
for _, session := range manager.List() {
if !session.State().IsConnected {
continue
}
if exclude != nil {
if len(exclude) > 0 {
if in, _ := utils.ArrayIn(session.ID(), exclude); in {
continue
}
@ -253,13 +253,13 @@ func (manager *SessionManagerCtx) Broadcast(event string, payload interface{}, e
}
}
func (manager *SessionManagerCtx) AdminBroadcast(event string, payload interface{}, exclude interface{}) {
func (manager *SessionManagerCtx) AdminBroadcast(event string, payload any, exclude ...string) {
for _, session := range manager.List() {
if !session.State().IsConnected || !session.Profile().IsAdmin {
continue
}
if exclude != nil {
if len(exclude) > 0 {
if in, _ := utils.ArrayIn(session.ID(), exclude); in {
continue
}
@ -269,13 +269,13 @@ func (manager *SessionManagerCtx) AdminBroadcast(event string, payload interface
}
}
func (manager *SessionManagerCtx) InactiveCursorsBroadcast(event string, payload interface{}, exclude interface{}) {
func (manager *SessionManagerCtx) InactiveCursorsBroadcast(event string, payload any, exclude ...string) {
for _, session := range manager.List() {
if !session.State().IsConnected || !session.Profile().CanSeeInactiveCursors {
continue
}
if exclude != nil {
if len(exclude) > 0 {
if in, _ := utils.ArrayIn(session.ID(), exclude); in {
continue
}
@ -290,43 +290,43 @@ func (manager *SessionManagerCtx) InactiveCursorsBroadcast(event string, payload
// ---
func (manager *SessionManagerCtx) OnCreated(listener func(session types.Session)) {
manager.emmiter.On("created", func(payload ...interface{}) {
manager.emmiter.On("created", func(payload ...any) {
listener(payload[0].(*SessionCtx))
})
}
func (manager *SessionManagerCtx) OnDeleted(listener func(session types.Session)) {
manager.emmiter.On("deleted", func(payload ...interface{}) {
manager.emmiter.On("deleted", func(payload ...any) {
listener(payload[0].(*SessionCtx))
})
}
func (manager *SessionManagerCtx) OnConnected(listener func(session types.Session)) {
manager.emmiter.On("connected", func(payload ...interface{}) {
manager.emmiter.On("connected", func(payload ...any) {
listener(payload[0].(*SessionCtx))
})
}
func (manager *SessionManagerCtx) OnDisconnected(listener func(session types.Session)) {
manager.emmiter.On("disconnected", func(payload ...interface{}) {
manager.emmiter.On("disconnected", func(payload ...any) {
listener(payload[0].(*SessionCtx))
})
}
func (manager *SessionManagerCtx) OnProfileChanged(listener func(session types.Session)) {
manager.emmiter.On("profile_changed", func(payload ...interface{}) {
manager.emmiter.On("profile_changed", func(payload ...any) {
listener(payload[0].(*SessionCtx))
})
}
func (manager *SessionManagerCtx) OnStateChanged(listener func(session types.Session)) {
manager.emmiter.On("state_changed", func(payload ...interface{}) {
manager.emmiter.On("state_changed", func(payload ...any) {
listener(payload[0].(*SessionCtx))
})
}
func (manager *SessionManagerCtx) OnHostChanged(listener func(session types.Session)) {
manager.emmiter.On("host_changed", func(payload ...interface{}) {
manager.emmiter.On("host_changed", func(payload ...any) {
if payload[0] == nil {
listener(nil)
} else {
@ -336,7 +336,7 @@ func (manager *SessionManagerCtx) OnHostChanged(listener func(session types.Sess
}
func (manager *SessionManagerCtx) OnSettingsChanged(listener func(new types.Settings, old types.Settings)) {
manager.emmiter.On("settings_changed", func(payload ...interface{}) {
manager.emmiter.On("settings_changed", func(payload ...any) {
listener(payload[0].(types.Settings), payload[1].(types.Settings))
})
}