pkg

package module
v0.0.4 Latest Latest
Warning

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

Go to latest
Published: Mar 15, 2021 License: MIT Imports: 17 Imported by: 0

README

pkg

Test license Coverage Build Status Go Report Card

install

go get -u github.com/NingziSlay/pkg

config

TODO: support time.Time

usage:

package main

import (
	"github.com/NingziSlay/pkg"
	"log"
)

type Config struct{}

func main() {
	var c Config
	if err := pkg.MustMapConfig(&c); err != nil {
		log.Fatal(err)
	}
	// use c here
}

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrorNonPointer = newE("mapStruct of non-pointer")
	ErrorNilInput   = newE("mapStruct of nil")
	ErrorNonStruct  = newE("mapStruct of non-struct ptr")
)

预定义的一些异常

Functions

func GetLogger

func GetLogger() zerolog.Logger

GetLogger 获取 l 实例,如果 l 为空,则初始化一个 l 实例

func InitLogger

func InitLogger(debug bool)

InitLogger 创建 l 实例

func MapConfig

func MapConfig(dest interface{}) error

MapConfig 可以从环境变量读取配置灌入到 dest 中,dest 必须是一个指向结构体的指针, 会解析结构体每个字段,通过结构体标签得到这个字段对应的环境变量名,自动将从环境变量读取 到的字符串值转为 dest 字段对应的类型并为其赋值 如果 dest 为 nil,返回 ErrorNilInput 如果 dest 不是一个指针,返回 ErrorNonPointer 如果 dest 指针指向的值不是一个结构体,返回 ErrorNonStruct 如果环境变量的值转为字段相应类型时发生错误,立即返回相应的错误

MapConfig 允许字段值为空

func MustMapConfig

func MustMapConfig(dest interface{}) error

MustMapConfig 所有可导出字段都不允许为空

func WithLoggerLevel

func WithLoggerLevel(level zerolog.Level) zerolog.Logger

WithLoggerLevel 返回一个自定义日志等级的 l 实例

func WithSampleLog added in v0.0.3

func WithSampleLog() zerolog.Logger

WithSampleLog 返回一个 sampling log 实例 debug 等级每秒输出前 5 条日志,之后每 20 条输出一条 info 等级每秒输出前 5 条日志,之后每 10 条输出一条

Types

type ConfigError

type ConfigError struct {
	// contains filtered or unexported fields
}

ConfigError mapper 过程中会出现的错误

func (ConfigError) Error

func (c ConfigError) Error() string

Error error interface

type DB added in v0.0.3

type DB struct {
	// contains filtered or unexported fields
}

DB simple wrapper of Gorm

func NewDB added in v0.0.3

func NewDB(debug bool, dsn string) (*DB, error)

NewDB return a new DB instance

func NewDBWithMockForTest added in v0.0.3

func NewDBWithMockForTest(debug bool, conn *sql.DB) (*DB, error)

NewDBWithMockForTest return a new DB instance JUST FOR TESTS JUST FOR TESTS JUST FOR TESTS

func (*DB) GetDriver added in v0.0.3

func (db *DB) GetDriver() *gorm.DB

func (*DB) QueryMore added in v0.0.3

func (db *DB) QueryMore(sql string, args ...interface{}) (*sql.Rows, error)

QueryMore 查询多个结果,返回的结果需要配合 ScanRows 使用 example: rows, _ := db.QueryMore("SELECT * FROM table LIMIT 10")

for rows.Next(){
   _ =  db.ScanRows(rows, &dest)
}

func (*DB) QueryOne added in v0.0.3

func (db *DB) QueryOne(dest interface{}, sql string, args ...interface{}) error

QueryOne

func (*DB) ScanRows added in v0.0.3

func (db *DB) ScanRows(rows *sql.Rows, dest interface{}) error

ScanRows 扫描 rows 到 dest

type ES added in v0.0.4

type ES struct {
	// contains filtered or unexported fields
}

ES simple wrapper of github.com/olivere/elastic/v7

func NewES added in v0.0.4

func NewES(debug bool, hosts ...string) (*ES, error)

NewES return a New ES instance

func (*ES) BulkProcess added in v0.0.4

func (es *ES) BulkProcess(ctx context.Context, ch <-chan ESDoc, batch, worker int) (err error)

BulkProcess start a bulk process

func (*ES) Client added in v0.0.4

func (es *ES) Client() *elastic.Client

Client return an elastic.Client

type ESDoc added in v0.0.4

type ESDoc interface {
	Index() string
	ID() string
}

ESDoc es doc 对象

Jump to

Keyboard shortcuts

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