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