// package section_mode -- типовой режим секция работы части игры
//
//	Имеет имя режима и имя текущей работы в режиме
package section_mode

import (
	"sync"
)

// SectionMode -- режим работы секции
type SectionMode struct {
	name  string // Имя режима
	work  string // Имя работы
	block sync.RWMutex
}

// NewSectionMode -- возвращает новый *SectionMode
func NewSectionMode() *SectionMode {
	return &SectionMode{
		name: "start",
	}
}

// Уст -- устанавливает режим работы
func (sf *SectionMode) Уст(val string) {
	sf.block.Lock()
	defer sf.block.Unlock()
	sf.name = val
}

// Получ -- возвращает хранимый режим работы
func (sf *SectionMode) Получ() string {
	sf.block.RLock()
	defer sf.block.RUnlock()
	return sf.name
}

// Режим -- возвращает хранимое имя работы
func (sf *SectionMode) Режим() string {
	sf.block.RLock()
	defer sf.block.RUnlock()
	return sf.work
}

// РежимУст -- устанавливает хранимое имя работы
func (sf *SectionMode) РежимУст(work string) {
	sf.block.Lock()
	defer sf.block.Unlock()
	sf.work = work
}
