package session type FlashMessage struct { Type string `json:"type"` Message string `json:"message"` } func (s *Session) SetFlash(key string, value any) { if s.Data == nil { s.Data = make(map[string]any) } flashData, ok := s.Data["_flash"].(map[string]any) if !ok { flashData = make(map[string]any) } flashData[key] = value s.Data["_flash"] = flashData } func (s *Session) GetFlash(key string) (any, bool) { if s.Data == nil { return nil, false } flashData, ok := s.Data["_flash"].(map[string]any) if !ok { return nil, false } value, exists := flashData[key] if exists { delete(flashData, key) if len(flashData) == 0 { delete(s.Data, "_flash") } else { s.Data["_flash"] = flashData } } return value, exists } func (s *Session) GetAllFlash() map[string]any { if s.Data == nil { return nil } flashData, ok := s.Data["_flash"].(map[string]any) if !ok { return nil } delete(s.Data, "_flash") return flashData }