feat: dispatcher and long poller options

This commit is contained in:
abelith committed 2026-10-05 14:15:20 +03:00
1 parent b5f1b426af
commit fd2ae3db72
3 files changed
+109 -23

No files matched your search

+12 -6
View File
@@ -10,25 +10,31 @@ type FSMStorage struct {
m sync.Map
}
type EventIsolation struct{}
func NewMemoryFSMStorage() *FSMStorage {
return &FSMStorage{}
}
func (f *FSMStorage) Get(_ context.Context, userID int) (*state.Snapshot, error) {
func (f *FSMStorage) Get(_ context.Context, userID int) (state.Snapshot, error) {
st, ok := f.m.Load(userID)
if !ok {
return nil, state.ErrStateNotFound
return state.Snapshot{}, state.ErrStateNotFound
}
return st.(*state.Snapshot), nil
return st.(state.Snapshot), nil
}
func (f *FSMStorage) Put(_ context.Context, snapshot *state.Snapshot) error {
func (f *FSMStorage) Put(_ context.Context, snapshot state.Snapshot) error {
f.m.Store(snapshot.ID, snapshot)
return nil
}
func (f *FSMStorage) Delete(_ context.Context, snapshot *state.Snapshot) error {
f.m.Delete(snapshot.ID)
func (f *FSMStorage) Delete(_ context.Context, userID int) error {
f.m.Delete(userID)
return nil
}
func NewMemoryEventIsolation() *EventIsolation {
return &EventIsolation{}
}