package app import ( "fmt" "go.ipao.vip/atom/container" "go.ipao.vip/atom/opt" ) func Provide(opts ...opt.Option) error { options := opt.New(opts...) var config Config if err := options.UnmarshalConfig(&config); err != nil { return fmt.Errorf("unmarshal app config: %w", err) } if err := container.Container.Provide(func() (*Config, error) { return &config, nil }, options.DiOptions()...); err != nil { return fmt.Errorf("provide app config: %w", err) } return nil }