initializer

package module
v0.1.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 29, 2022 License: MIT Imports: 3 Imported by: 2

README

Пример типового использования

package module1

import (
	"myapp/config"

	"github.com/alrusov/initializer"
	"github.com/alrusov/log"
	"github.com/alrusov/stdhttp"
)

func init() {
	initializer.RegisterModuleInitializer(initModule)
}

func initModule(cfg interface{}, h *stdhttp.HTTP) (err error) {
	appCfg := cfg.(*config.Config)
	// do something

	log.Message(log.INFO, "module1 initialized")
	return
}
package http

import (
	"app/config"

	"github.com/alrusov/initializer"
	"github.com/alrusov/stdhttp"
)

type HTTP struct {
	cfg *config.Config
	h   *stdhttp.HTTP
}

func NewHTTP(cfg *config.Config) (hh *stdhttp.HTTP, err error) {
	h := &HTTP{
		cfg: cfg,
	}

	h.h, err = stdhttp.NewListener(&cfg.HTTP.Listener, h)
	if err != nil {
		return nil, err
	}

	// ...
	// ...
	// ...

	err = initializer.Do(cfg, h.h)
	if err != nil {
		return nil, err
	}

	return h.h, nil
}

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Do

func Do(cfg any, h any) (err error)

Инициализируем модули

func RegisterModuleInitializer

func RegisterModuleInitializer(f ModuleInitializer)

Добавить инициализатор модуля

Types

type ModuleInitializer

type ModuleInitializer func(cfg any, h any) error

Инициализатор модуля

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL