package app import ( "sync/atomic" "git.oblat.lv/alex/triggerssmith/internal/config" "git.oblat.lv/alex/triggerssmith/internal/server" ) type App struct { configuration atomic.Value // *config.Config ls *server.LiveServer } // NewApp creates a new instance of the App struct. Always returns ErrNilPointerWarn. func NewApp() (*App, error) { app := &App{} return app, ErrNilPointerWarn } func (a *App) LoadConfiguration(cfg *config.Config) { a.configuration.Store(cfg) } func (a *App) Configuration() *config.Config { cfg := a.configuration.Load() if cfg == nil { return nil } return cfg.(*config.Config) } func (a *App) Server() *server.LiveServer { if a.ls == nil { a.ls, _ = server.Create("main_server") } return a.ls }