config_injection

package
v0.0.0-...-7c18459 Latest Latest
Warning

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

Go to latest
Published: May 18, 2021 License: GPL-3.0 Imports: 1 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Cache

type Cache interface {
	Store(key string, data []byte)
	Get(key string) ([]byte, error)
}

Cache will store/retrieve data in a fast way

type Instrumentation

type Instrumentation interface {
	Count(key string, value int)
	Duration(key string, start time.Time)
}

Instrumentation records the performances and events

type Logger

type Logger interface {
	Error(message string, args ...interface{})
	Warn(message string, args ...interface{})
	Info(message string, args ...interface{})
	Debug(message string, args ...interface{})
}

Logger logs stuff

type MyConfig

type MyConfig interface {
	Logger() Logger
	Instrumentation() Instrumentation
	RateLimiter() RateLimiter
	Cache() Cache
}

MyConfig defines the config for MyStruct

type MyStruct

type MyStruct struct {
}

MyStruct does something fantastic

func NewByConfigConstructor

func NewByConfigConstructor(cfg MyConfig, url string, credentials string) *MyStruct

NewByConfigConstructor is the constructor for MyStruct

func NewLongConstructor

func NewLongConstructor(logger Logger, stats Instrumentation, limiter RateLimiter, cache Cache, url string, credentials string) *MyStruct

NewLongConstructor is the constructor for MyStruct

type RateLimiter

type RateLimiter interface {
	Acquire()
	Release()
}

RateLimiter limits how many concurrent requests we can make or process

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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