// package warbot_config -- конфиг бота для хранения в базе package warbot_config import ( "encoding/json" "sync" "wartank/pkg/alias" "wartank/pkg/components/kernel/logger" ) // ВарБотКонфиг -- конфиг бота для хранения в базе 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 } // Unmarshal -- десериализует себя из байтового потока func (сам *ВарБотКонфиг) Unmarshal(binData []byte) { лог:=logger.НовЛоггер("ВарБотКонфиг") лог.Отладка("Unmarshal()") err := json.Unmarshal(binData, сам) лог.Паника(err!=nil, "Unmarshal(): err=\n\t%v\n", err) } // Логин -- возвращает логин func (сам *ВарБотКонфиг) Логин() string { сам.блок.RLock() defer сам.блок.RUnlock() return сам.Логин_ } // Номер -- возвращает номер бота func (сам *ВарБотКонфиг) Номер() alias.БотНомер { сам.блок.RLock() defer сам.блок.RUnlock() return сам.Номер_ }