// package warbot_config -- конфиг бота для хранения в базе package warbot_config import ( "encoding/json" "fmt" "sync" ) // ВарБотКонфиг -- конфиг бота для хранения в базе type ВарБотКонфиг struct { ЕслиАвтозапуск_ bool `json:"is_auto_run,omitempty"` // Признак автостарта при загрузке Логин_ string `json:"login"` // Логин бота Пароль_ string `json:"password"` // Пароль бота блок sync.RWMutex } // Marshall -- сериализует конфиг в JSON func (sf *ВарБотКонфиг) Marshall() string { binData, _ := json.Marshal(sf) return string(binData) } // Unmarshall -- десериализует себя из байтового потока func (sf *ВарБотКонфиг) Unmarshall(strData string) error { err := json.Unmarshal([]byte(strData), sf) if err != nil { return fmt.Errorf("WarBotConfig.Unmarshall(): err=\n\t%w", err) } return nil } // Логин -- возвращает логин func (сам *ВарБотКонфиг) Логин() string { сам.блок.RLock() defer сам.блок.RUnlock() return сам.Логин_ }