sing-box/experimental/libbox/deprecated.go

58 lines
1.1 KiB
Go
Raw Normal View History

2024-10-18 01:58:03 +00:00
package libbox
import (
"sync"
"github.com/sagernet/sing-box/experimental/deprecated"
2024-11-07 04:02:36 +00:00
"github.com/sagernet/sing/common"
2024-10-18 01:58:03 +00:00
)
var _ deprecated.Manager = (*deprecatedManager)(nil)
type deprecatedManager struct {
access sync.Mutex
features []deprecated.Note
}
func (m *deprecatedManager) ReportDeprecated(feature deprecated.Note) {
m.access.Lock()
defer m.access.Unlock()
2024-11-07 04:02:36 +00:00
m.features = common.Uniq(append(m.features, feature))
2024-10-18 01:58:03 +00:00
}
func (m *deprecatedManager) Get() []deprecated.Note {
m.access.Lock()
defer m.access.Unlock()
features := m.features
m.features = nil
return features
}
var _ = deprecated.Note(DeprecatedNote{})
type DeprecatedNote struct {
Name string
Description string
DeprecatedVersion string
ScheduledVersion string
EnvName string
MigrationLink string
}
func (n DeprecatedNote) Impending() bool {
return deprecated.Note(n).Impending()
}
func (n DeprecatedNote) Message() string {
return deprecated.Note(n).Message()
}
func (n DeprecatedNote) MessageWithLink() string {
return deprecated.Note(n).MessageWithLink()
}
type DeprecatedNoteIterator interface {
HasNext() bool
Next() *DeprecatedNote
}