Documentation ¶
Overview ¶
Package yiigo makes Golang development easier !
Basic usage ¶
MySQL
// default db yiigo.RegisterDB(yiigo.AsDefault, yiigo.MySQL, "root:root@tcp(localhost:3306)/test") yiigo.DB().Get(&User{}, "SELECT * FROM `user` WHERE `id` = ?", 1) yiigo.Orm().First(&User{}, 1) // other db yiigo.RegisterDB("foo", yiigo.MySQL, "root:root@tcp(localhost:3306)/foo") yiigo.DB("foo").Get(&User{}, "SELECT * FROM `user` WHERE `id` = ?", 1) yiigo.Orm("foo").First(&User{}, 1)
MongoDB
// default mongodb yiigo.RegisterMongoDB(yiigo.AsDefault, "mongodb://localhost:27017") ctx, _ := context.WithTimeout(context.Background(), 5*time.Second) yiigo.Mongo().Database("test").Collection("numbers").InsertOne(ctx, bson.M{"name": "pi", "value": 3.14159}) // other mongodb yiigo.RegisterMongoDB("foo", "mongodb://localhost:27017") ctx, _ := context.WithTimeout(context.Background(), 5*time.Second) yiigo.Mongo("foo").Database("test").Collection("numbers").InsertOne(ctx, bson.M{"name": "pi", "value": 3.14159})
Redis
// default redis yiigo.RegisterRedis(yiigo.AsDefault, "localhost:6379") conn, err := yiigo.Redis().Get() if err != nil { log.Fatal(err) } defer yiigo.Redis().Put(conn) conn.Do("SET", "test_key", "hello world") // other redis yiigo.RegisterRedis("foo", "localhost:6379") conn, err := yiigo.Redis("foo").Get() if err != nil { log.Fatal(err) } defer yiigo.Redis("foo").Put(conn) conn.Do("SET", "test_key", "hello world")
Config
// env.toml // // [app] // env = "dev" // debug = true // port = 50001 yiigo.SetEnvFile("env.toml") yiigo.Env.GetBool("app.debug", true) yiigo.Env.GetInt("app.port", 12345) yiigo.Env.GetString("app.env", "dev")
Zipkin
reporter := yiigo.NewZipkinHTTPReporter("http://localhost:9411/api/v2/spans") err := yiigo.RegisterZipkinTracer(yiigo.AsDefault, reporter) if err != nil { log.Fatal(err) } client, err := yiigo.ZTracer().HTTPClient() if err != nil { log.Fatal(err) } b, err := client.Get(context.Background(), "url...", yiigo.WithRequestHeader("Content-Type", "application/json"), yiigo.WithRequestTimeout(5*time.Second), ) if err != nil { log.Fatal(err) } fmt.Println(string(b))
Logger
// default logger yiigo.RegisterLogger(yiigo.AsDefault, "app.log") yiigo.Logger().Info("hello world") // other logger yiigo.RegisterLogger("foo", "foo.log") yiigo.Logger("foo").Info("hello world")
For more details, see the documentation for the types and methods.
Index ¶
- Constants
- Variables
- func AESCBCDecrypt(cipherText, key []byte, iv ...byte) ([]byte, error)
- func AESCBCEncrypt(plainText, key []byte, iv ...byte) ([]byte, error)
- func AddSlashes(s string) string
- func DB(name ...string) *sqlx.DB
- func Date(timestamp int64, layout ...string) string
- func Float64sUnique(a []float64) []float64
- func HMAC(t, s, key string) string
- func HTTPGet(url string, options ...HTTPRequestOption) ([]byte, error)
- func HTTPPost(url string, body []byte, options ...HTTPRequestOption) ([]byte, error)
- func Hash(t, s string) string
- func IP2Long(ip string) uint32
- func InArray(x interface{}, y ...interface{}) bool
- func InFloat64s(x float64, y ...float64) bool
- func InInt16s(x int16, y ...int16) bool
- func InInt32s(x int32, y ...int32) bool
- func InInt64s(x int64, y ...int64) bool
- func InInt8s(x int8, y ...int8) bool
- func InInts(x int, y ...int) bool
- func InStrings(x string, y ...string) bool
- func InUint16s(x uint16, y ...uint16) bool
- func InUint32s(x uint32, y ...uint32) bool
- func InUint64s(x uint64, y ...uint64) bool
- func InUint8s(x uint8, y ...uint8) bool
- func InUints(x uint, y ...uint) bool
- func InsertSQL(table string, data interface{}) (string, []interface{})
- func Int16sUnique(a []int16) []int16
- func Int32sUnique(a []int32) []int32
- func Int64sUnique(a []int64) []int64
- func Int8sUnique(a []int8) []int8
- func IntsUnique(a []int) []int
- func Logger(name ...string) *zap.Logger
- func Long2IP(ip uint32) string
- func MD5(s string) string
- func Mongo(name ...string) *mongo.Client
- func MyTimeEncoder(t time.Time, e zapcore.PrimitiveArrayEncoder)
- func NewZipkinHTTPReporter(url string, options ...ZipkinReporterOption) reporter.Reporter
- func Orm(name ...string) *gorm.DB
- func PGInsertSQL(table string, data interface{}) (string, []interface{})
- func PGUpdateSQL(query string, data interface{}, args ...interface{}) (string, []interface{})
- func PKCS7Padding(cipherText []byte, blockSize int) []byte
- func PKCS7UnPadding(plainText []byte, blockSize int) []byte
- func QuoteMeta(s string) string
- func RegisterDB(name string, driver DBDriver, dsn string, options ...DBOption) error
- func RegisterLogger(name, file string, options ...LogOption)
- func RegisterMailer(name, host string, port int, account, password string)
- func RegisterMongoDB(name, dsn string, options ...MongoOption) error
- func RegisterRedis(name, addr string, options ...RedisOption)
- func RegisterZipkinTracer(name string, r reporter.Reporter, options ...zipkin.TracerOption) error
- func SHA1(s string) string
- func SearchInt16s(a []int16, x int16) int
- func SearchInt32s(a []int32, x int32) int
- func SearchInt64s(a []int64, x int64) int
- func SearchInt8s(a []int8, x int8) int
- func SearchUint16s(a []uint16, x uint16) int
- func SearchUint32s(a []uint32, x uint32) int
- func SearchUint64s(a []uint64, x uint64) int
- func SearchUint8s(a []uint8, x uint8) int
- func SearchUints(a []uint, x uint) int
- func SetEnvFile(file string) error
- func SortInt16s(a []int16)
- func SortInt32s(a []int32)
- func SortInt64s(a []int64)
- func SortInt8s(a []int8)
- func SortUint16s(a []uint16)
- func SortUint32s(a []uint32)
- func SortUint64s(a []uint64)
- func SortUint8s(a []uint8)
- func SortUints(a []uint)
- func StringsUnique(a []string) []string
- func StripSlashes(s string) string
- func Uint16sUnique(a []uint16) []uint16
- func Uint32sUnique(a []uint32) []uint32
- func Uint64sUnique(a []uint64) []uint64
- func Uint8sUnique(a []uint8) []uint8
- func UintsUnique(a []uint) []uint
- func UpdateSQL(query string, data interface{}, args ...interface{}) (string, []interface{})
- type CDATA
- type Concern
- type DBDriver
- type DBOption
- type EMail
- type EMailDialer
- type EMailOption
- type HTTPClient
- type HTTPClientOption
- func WithHTTPDefaultTimeout(d time.Duration) HTTPClientOption
- func WithHTTPDialFallbackDelay(d time.Duration) HTTPClientOption
- func WithHTTPDialKeepAlive(d time.Duration) HTTPClientOption
- func WithHTTPDialTimeout(d time.Duration) HTTPClientOption
- func WithHTTPExpectContinueTimeout(d time.Duration) HTTPClientOption
- func WithHTTPIdleConnTimeout(d time.Duration) HTTPClientOption
- func WithHTTPMaxConnsPerHost(n int) HTTPClientOption
- func WithHTTPMaxIdleConns(n int) HTTPClientOption
- func WithHTTPMaxIdleConnsPerHost(n int) HTTPClientOption
- func WithHTTPTLSConfig(c *tls.Config) HTTPClientOption
- func WithHTTPTLSHandshakeTimeout(d time.Duration) HTTPClientOption
- type HTTPRequestOption
- type Int16Slice
- type Int32Slice
- type Int64Slice
- type Int8Slice
- type LogOption
- type Mode
- type MongoOption
- func WithMongoAppName(s string) MongoOption
- func WithMongoCompressors(s ...string) MongoOption
- func WithMongoConnTimeout(d time.Duration) MongoOption
- func WithMongoDirect(b bool) MongoOption
- func WithMongoHeartbeatInterval(d time.Duration) MongoOption
- func WithMongoHosts(s ...string) MongoOption
- func WithMongoLocalThreshold(d time.Duration) MongoOption
- func WithMongoMaxConnIdleTime(d time.Duration) MongoOption
- func WithMongoMode(m Mode) MongoOption
- func WithMongoPoolSize(n int) MongoOption
- func WithMongoReadConcern(c Concern) MongoOption
- func WithMongoReplicaSet(s string) MongoOption
- func WithMongoRetryWrites(b bool) MongoOption
- func WithMongoServerSelectionTimeout(d time.Duration) MongoOption
- func WithMongoSocketTimeout(d time.Duration) MongoOption
- func WithMongoTLSConfig(c *tls.Config) MongoOption
- func WithMongoWriteConcern(c ...writeconcern.Option) MongoOption
- func WithMongoZlibLevel(l int) MongoOption
- type RedisConn
- type RedisOption
- func WithRedisConnTimeout(d time.Duration) RedisOption
- func WithRedisDatabase(n int) RedisOption
- func WithRedisIdleTimeout(d time.Duration) RedisOption
- func WithRedisPassword(s string) RedisOption
- func WithRedisPoolLimit(n int) RedisOption
- func WithRedisPoolSize(n int) RedisOption
- func WithRedisPrefillParallelism(n int) RedisOption
- func WithRedisReadTimeout(d time.Duration) RedisOption
- func WithRedisWaitTimeout(d time.Duration) RedisOption
- func WithRedisWriteTimeout(d time.Duration) RedisOption
- type RedisPoolResource
- type Uint16Slice
- type Uint32Slice
- type Uint64Slice
- type Uint8Slice
- type UintSlice
- type X
- type ZipkinHTTPClient
- type ZipkinHTTPClientOption
- type ZipkinReporterOption
- type ZipkinTracer
Constants ¶
const AsDefault = "default"
AsDefault alias for "default"
Variables ¶
var Env *env
Env enviroment
var ErrEnvNil = errors.New("yiigo: env config not found")
ErrEnvNil returned when config not found.
Functions ¶
func AESCBCDecrypt ¶
AESCBCDecrypt AES CBC decrypt with PKCS#7 unpadding
func AESCBCEncrypt ¶
AESCBCEncrypt AES CBC encrypt with PKCS#7 padding
func AddSlashes ¶
AddSlashes returns a string with backslashes added before characters that need to be escaped.
func Date ¶
Date format a local time/date and returns a string formatted according to the given format string using the given timestamp of int64. The default layout is: 2006-01-02 15:04:05.
func Float64sUnique ¶
Float64sUnique takes an input slice of float64s and returns a new slice of float64s without duplicate values.
func HMAC ¶ added in v3.2.4
HMAC Generate a keyed hash value, expects: MD5, SHA1, SHA224, SHA256, SHA384, SHA512.
func HTTPGet ¶
func HTTPGet(url string, options ...HTTPRequestOption) ([]byte, error)
HTTPGet http get request
func HTTPPost ¶
func HTTPPost(url string, body []byte, options ...HTTPRequestOption) ([]byte, error)
HTTPPost http post request
func IP2Long ¶
IP2Long converts a string containing an (IPv4) Internet Protocol dotted address into a long integer.
func InArray ¶
func InArray(x interface{}, y ...interface{}) bool
InArray checks if x exists in a slice and returns TRUE if x is found.
func InFloat64s ¶
InFloat64s checks if x exists in []float64s and returns TRUE if x is found.
func InsertSQL ¶
InsertSQL returns mysql insert sql and binds. param data expects: `struct`, `*struct`, `[]struct`, `[]*struct`, `yiigo.X`, `[]yiigo.X`.
func Int16sUnique ¶
Int16sUnique takes an input slice of int16s and returns a new slice of int16s without duplicate values.
func Int32sUnique ¶
Int32sUnique takes an input slice of int32s and returns a new slice of int32s without duplicate values.
func Int64sUnique ¶
Int64sUnique takes an input slice of int64s and returns a new slice of int64s without duplicate values.
func Int8sUnique ¶
Int8sUnique takes an input slice of int8s and returns a new slice of int8s without duplicate values.
func IntsUnique ¶
IntsUnique takes an input slice of ints and returns a new slice of ints without duplicate values.
func Long2IP ¶
Long2IP converts an long integer address into a string in (IPv4) Internet standard dotted format.
func MyTimeEncoder ¶
func MyTimeEncoder(t time.Time, e zapcore.PrimitiveArrayEncoder)
MyTimeEncoder zap time encoder.
func NewZipkinHTTPReporter ¶ added in v3.2.4
func NewZipkinHTTPReporter(url string, options ...ZipkinReporterOption) reporter.Reporter
NewZipkinHTTPReporter returns a new zipin http reporter
func PGInsertSQL ¶
PGInsertSQL returns postgres insert sql and binds. param data expects: `struct`, `*struct`, `[]struct`, `[]*struct`, `yiigo.X`, `[]yiigo.X`.
func PGUpdateSQL ¶
PGUpdateSQL returns postgres update sql and binds. param query expects eg: "UPDATE `table` SET $1 WHERE `id` = $2". param data expects: `struct`, `*struct`, `yiigo.X`.
func PKCS7Padding ¶
PKCS7Padding PKCS#7 padding
func PKCS7UnPadding ¶
PKCS7UnPadding PKCS#7 unpadding
func QuoteMeta ¶
QuoteMeta returns a version of str with a backslash character (\) before every character that is among these: . \ + * ? [ ^ ] ( $ )
func RegisterDB ¶
RegisterDB register a db, the param `dsn` eg:
MySQL: `username:password@tcp(localhost:3306)/dbname?timeout=10s&charset=utf8mb4&collation=utf8mb4_general_ci&parseTime=True&loc=Local`;
Postgres: `host=localhost port=5432 user=root password=secret dbname=test connect_timeout=10 sslmode=disable`.
The default `MaxOpenConns` is 20; The default `MaxIdleConns` is 10; The default `ConnMaxLifetime` is 60s.
func RegisterLogger ¶
RegisterLogger register logger
func RegisterMailer ¶
RegisterMailer register a mailer
func RegisterMongoDB ¶
func RegisterMongoDB(name, dsn string, options ...MongoOption) error
RegisterMongoDB register a mongodb, the param `dsn` eg: `mongodb://username:password@localhost:27017`.
The default `ConnTimeout` is 10s; The default `PoolSize` is 10; The default `MaxConnIdleTime` is 60s.
func RegisterRedis ¶
func RegisterRedis(name, addr string, options ...RedisOption)
RegisterRedis register a redis.
The default `ConnTimeout` is 10s; The default `ReadTimeout` is 10s; The default `WriteTimeout` is 10s; The default `PoolSize` is 10; The default `PoolLimit` is 20; The default `IdleTimeout` is 60s; The default `WaitTimeout` is 10s; The default `PrefillParallelism` is 0.
func RegisterZipkinTracer ¶ added in v3.2.4
RegisterZipkinTracer register a zipkin tracer
func SearchInt16s ¶
SearchInt16s searches for x in a sorted slice of int16s and returns the index as specified by Search. The return value is the index to insert x if x is not present (it could be len(a)). The slice must be sorted in ascending order.
func SearchInt32s ¶
SearchInt32s searches for x in a sorted slice of int32s and returns the index as specified by Search. The return value is the index to insert x if x is not present (it could be len(a)). The slice must be sorted in ascending order.
func SearchInt64s ¶
SearchInt64s searches for x in a sorted slice of int64s and returns the index as specified by Search. The return value is the index to insert x if x is not present (it could be len(a)). The slice must be sorted in ascending order.
func SearchInt8s ¶
SearchInt8s searches for x in a sorted slice of int8s and returns the index as specified by Search. The return value is the index to insert x if x is not present (it could be len(a)). The slice must be sorted in ascending order.
func SearchUint16s ¶
SearchUints searches for x in a sorted slice of uint16s and returns the index as specified by Search. The return value is the index to insert x if x is not present (it could be len(a)). The slice must be sorted in ascending order.
func SearchUint32s ¶
SearchUint32s searches for x in a sorted slice of uint32s and returns the index as specified by Search. The return value is the index to insert x if x is not present (it could be len(a)). The slice must be sorted in ascending order.
func SearchUint64s ¶
SearchUint64s searches for x in a sorted slice of uint64s and returns the index as specified by Search. The return value is the index to insert x if x is not present (it could be len(a)). The slice must be sorted in ascending order.
func SearchUint8s ¶
SearchUint8s searches for x in a sorted slice of uint8s and returns the index as specified by Search. The return value is the index to insert x if x is not present (it could be len(a)). The slice must be sorted in ascending order.
func SearchUints ¶
SearchUints searches for x in a sorted slice of uints and returns the index as specified by Search. The return value is the index to insert x if x is not present (it could be len(a)). The slice must be sorted in ascending order.
func SetEnvFile ¶ added in v3.3.0
SetEnvFile use `toml` config file.
func StringsUnique ¶
StringsUnique takes an input slice of strings and returns a new slice of strings without duplicate values.
func StripSlashes ¶
StripSlashes returns a string with backslashes stripped off. (\' becomes ' and so on.) Double backslashes (\\) are made into a single backslash (\).
func Uint16sUnique ¶
Uint16sUnique takes an input slice of uint16s and returns a new slice of uint16s without duplicate values.
func Uint32sUnique ¶
Uint32sUnique takes an input slice of uint32s and returns a new slice of uint32s without duplicate values.
func Uint64sUnique ¶
Uint64sUnique takes an input slice of uint64s and returns a new slice of uint64s without duplicate values.
func Uint8sUnique ¶
Uint8sUnique takes an input slice of uint8s and returns a new slice of uint8s without duplicate values.
func UintsUnique ¶
UintsUnique takes an input slice of uints and returns a new slice of uints without duplicate values.
Types ¶
type CDATA ¶
type CDATA string
CDATA XML CDATA section which is defined as blocks of text that are not parsed by the parser, but are otherwise recognized as markup.
func (CDATA) MarshalXML ¶
MarshalXML encodes the receiver as zero or more XML elements.
type Concern ¶
type Concern int
Concern for replica sets and replica set shards determines which data to return from a query.
const ( Local Concern = 1 // the query should return the instance’s most recent data. Available Concern = 2 // the query should return data from the instance with no guarantee that the data has been written to a majority of the replica set members (i.e. may be rolled back). Majority Concern = 3 // the query should return the instance’s most recent data acknowledged as having been written to a majority of members in the replica set. Linearizable Concern = 4 // that the query should return data that reflects all successful writes issued with a write concern of "majority" and acknowledged prior to the start of the read operation. Snapshot Concern = 5 // only available for operations within multi-document transactions. )
type DBOption ¶
type DBOption interface {
// contains filtered or unexported methods
}
DBOption configures how we set up the db
func WithDBConnMaxLifetime ¶
WithDBConnMaxLifetime specifies the `ConnMaxLifetime` to db. ConnMaxLifetime sets the maximum amount of time a connection may be reused.
Expired connections may be closed lazily before reuse.
If d <= 0, connections are reused forever.
func WithDBDebug ¶ added in v3.3.0
WithDBDebug specifies the `LogMod` to orm.
func WithDBMaxIdleConns ¶
WithDBMaxIdleConns specifies the `MaxIdleConns` to db. MaxIdleConns sets the maximum number of connections in the idle connection pool.
If MaxOpenConns is greater than 0 but less than the new MaxIdleConns, then the new MaxIdleConns will be reduced to match the MaxOpenConns limit.
If n <= 0, no idle connections are retained.
The default max idle connections is currently 2. This may change in a future release.
func WithDBMaxOpenConns ¶
WithDBMaxOpenConns specifies the `MaxOpenConns` to db. MaxOpenConns sets the maximum number of open connections to the database.
If MaxIdleConns is greater than 0 and the new MaxOpenConns is less than MaxIdleConns, then MaxIdleConns will be reduced to match the new MaxOpenConns limit.
If n <= 0, then there is no limit on the number of open connections. The default is 0 (unlimited).
type EMail ¶
type EMail struct { Title string Subject string From string To []string Cc []string Content string Attach []string }
EMail email
type EMailDialer ¶
type EMailDialer struct {
// contains filtered or unexported fields
}
EMailDialer email dialer
func (*EMailDialer) Send ¶
func (m *EMailDialer) Send(e *EMail, options ...EMailOption) error
Send send an email.
type EMailOption ¶
type EMailOption interface {
// contains filtered or unexported methods
}
EMailOption configures how we set up the email
func WithEMailCharset ¶
func WithEMailCharset(s string) EMailOption
WithEMailCharset specifies the `Charset` to email.
func WithEMailContentType ¶
func WithEMailContentType(s string) EMailOption
WithEMailContentType specifies the `ContentType` to email.
func WithEMailEncoding ¶
func WithEMailEncoding(e gomail.Encoding) EMailOption
WithEMailEncoding specifies the `Encoding` to email.
type HTTPClient ¶
type HTTPClient struct {
// contains filtered or unexported fields
}
HTTPClient http client
func NewHTTPClient ¶
func NewHTTPClient(options ...HTTPClientOption) *HTTPClient
NewHTTPClient returns a new http client
func (*HTTPClient) Get ¶
func (h *HTTPClient) Get(url string, options ...HTTPRequestOption) ([]byte, error)
Get http get request
func (*HTTPClient) Post ¶
func (h *HTTPClient) Post(url string, body []byte, options ...HTTPRequestOption) ([]byte, error)
Post http post request
type HTTPClientOption ¶
type HTTPClientOption interface {
// contains filtered or unexported methods
}
HTTPClientOption configures how we set up the http client
func WithHTTPDefaultTimeout ¶ added in v3.2.3
func WithHTTPDefaultTimeout(d time.Duration) HTTPClientOption
WithHTTPDefaultTimeout specifies the `DefaultTimeout` to http client.
func WithHTTPDialFallbackDelay ¶
func WithHTTPDialFallbackDelay(d time.Duration) HTTPClientOption
WithHTTPDialFallbackDelay specifies the `FallbackDelay` to net.Dialer.
func WithHTTPDialKeepAlive ¶
func WithHTTPDialKeepAlive(d time.Duration) HTTPClientOption
WithHTTPDialKeepAlive specifies the `KeepAlive` to net.Dialer.
func WithHTTPDialTimeout ¶
func WithHTTPDialTimeout(d time.Duration) HTTPClientOption
WithHTTPDialTimeout specifies the `DialTimeout` to net.Dialer.
func WithHTTPExpectContinueTimeout ¶
func WithHTTPExpectContinueTimeout(d time.Duration) HTTPClientOption
WithHTTPExpectContinueTimeout specifies the `ExpectContinueTimeout` to http client.
func WithHTTPIdleConnTimeout ¶
func WithHTTPIdleConnTimeout(d time.Duration) HTTPClientOption
WithHTTPIdleConnTimeout specifies the `IdleConnTimeout` to http client.
func WithHTTPMaxConnsPerHost ¶
func WithHTTPMaxConnsPerHost(n int) HTTPClientOption
WithHTTPMaxConnsPerHost specifies the `MaxConnsPerHost` to http client.
func WithHTTPMaxIdleConns ¶
func WithHTTPMaxIdleConns(n int) HTTPClientOption
WithHTTPMaxIdleConns specifies the `MaxIdleConns` to http client.
func WithHTTPMaxIdleConnsPerHost ¶
func WithHTTPMaxIdleConnsPerHost(n int) HTTPClientOption
WithHTTPMaxIdleConnsPerHost specifies the `MaxIdleConnsPerHost` to http client.
func WithHTTPTLSConfig ¶
func WithHTTPTLSConfig(c *tls.Config) HTTPClientOption
WithHTTPTLSConfig specifies the `TLSClientConfig` to http client.
func WithHTTPTLSHandshakeTimeout ¶
func WithHTTPTLSHandshakeTimeout(d time.Duration) HTTPClientOption
WithHTTPTLSHandshakeTimeout specifies the `TLSHandshakeTimeout` to http client.
type HTTPRequestOption ¶
type HTTPRequestOption interface {
// contains filtered or unexported methods
}
HTTPRequestOption configures how we set up the http request
func WithRequestClose ¶
func WithRequestClose(b bool) HTTPRequestOption
WithRequestClose specifies close the connection after replying to this request (for servers) or after sending this request and reading its response (for clients).
func WithRequestCookies ¶
func WithRequestCookies(cookies ...*http.Cookie) HTTPRequestOption
WithRequestCookies specifies the cookies to http request.
func WithRequestHeader ¶
func WithRequestHeader(key, value string) HTTPRequestOption
WithRequestHeader specifies the header to http request.
func WithRequestTimeout ¶
func WithRequestTimeout(d time.Duration) HTTPRequestOption
WithRequestTimeout specifies the timeout to http request.
func WithZipkinSpanTag ¶ added in v3.2.3
func WithZipkinSpanTag(key, value string) HTTPRequestOption
WithZipkinSpanTag specifies the zipkin span tag to zipkin http request.
type Int16Slice ¶
type Int16Slice []int16
Int16Slice attaches the methods of Interface to []int16, sorting a increasing order.
func (Int16Slice) Len ¶
func (p Int16Slice) Len() int
func (Int16Slice) Less ¶
func (p Int16Slice) Less(i, j int) bool
func (Int16Slice) Swap ¶
func (p Int16Slice) Swap(i, j int)
type Int32Slice ¶
type Int32Slice []int32
Int32Slice attaches the methods of Interface to []int32, sorting a increasing order.
func (Int32Slice) Len ¶
func (p Int32Slice) Len() int
func (Int32Slice) Less ¶
func (p Int32Slice) Less(i, j int) bool
func (Int32Slice) Swap ¶
func (p Int32Slice) Swap(i, j int)
type Int64Slice ¶
type Int64Slice []int64
Int64Slice attaches the methods of Interface to []int64, sorting a increasing order.
func (Int64Slice) Len ¶
func (p Int64Slice) Len() int
func (Int64Slice) Less ¶
func (p Int64Slice) Less(i, j int) bool
func (Int64Slice) Swap ¶
func (p Int64Slice) Swap(i, j int)
type Int8Slice ¶
type Int8Slice []int8
Int8Slice attaches the methods of Interface to []int8, sorting a increasing order.
type LogOption ¶
type LogOption interface {
// contains filtered or unexported methods
}
LogOption configures how we set up the logger
func WithLogCompress ¶
WithLogCompress specifies the `Compress` to logger. Compress determines if the rotated log files should be compressed using gzip.
func WithLogDebug ¶
WithLogDebug specifies the `Debug` mode to logger.
func WithLogMaxAge ¶
WithLogMaxAge specifies the `MaxAge` to logger. MaxAge is the maximum number of days to retain old log files based on the timestamp encoded in their filename. Note that a day is defined as 24 hours and may not exactly correspond to calendar days due to daylight savings, leap seconds, etc. The default is not to remove old log files based on age.
func WithLogMaxBackups ¶
WithLogMaxBackups specifies the `MaxBackups` to logger. MaxBackups is the maximum number of old log files to retain. The default is to retain all old log files (though MaxAge may still cause them to get deleted.)
func WithLogMaxSize ¶
WithLogMaxSize specifies the `MaxSize` to logger. MaxSize is the maximum size in megabytes of the log file before it gets rotated. It defaults to 100 megabytes.
type Mode ¶
type Mode int
Mode indicates the user's preference on reads.
const ( Primary Mode = 1 // Default mode. All operations read from the current replica set primary. PrimaryPreferred Mode = 2 // Read from the primary if available. Read from the secondary otherwise. Secondary Mode = 3 // Read from one of the nearest secondary members of the replica set. SecondaryPreferred Mode = 4 // Read from one of the nearest secondaries if available. Read from primary otherwise. Nearest Mode = 5 // Read from one of the nearest members, irrespective of it being primary or secondary. )
type MongoOption ¶
type MongoOption interface {
// contains filtered or unexported methods
}
MongoOption configures how we set up the mongo
func WithMongoAppName ¶
func WithMongoAppName(s string) MongoOption
WithMongoAppName specifies the `AppName` to mongo. AppName sets the client application name. This value is used by MongoDB when it logs connection information and profile information, such as slow queries.
func WithMongoCompressors ¶
func WithMongoCompressors(s ...string) MongoOption
WithMongoCompressors specifies the `Compressors` to mongo. Compressors sets the compressors that can be used when communicating with a server.
func WithMongoConnTimeout ¶
func WithMongoConnTimeout(d time.Duration) MongoOption
WithMongoConnTimeout specifies the `ConnTimeout` to mongo. ConnectTimeout sets the timeout for an initial connection to a server.
func WithMongoDirect ¶
func WithMongoDirect(b bool) MongoOption
WithMongoDirect specifies the `Direct` to mongo. Direct sets whether the driver should connect directly to the server instead of auto-discovering other servers in the cluster.
func WithMongoHeartbeatInterval ¶
func WithMongoHeartbeatInterval(d time.Duration) MongoOption
WithMongoHeartbeatInterval specifies the `HeartbeatInterval` to mongo. HeartbeatInterval sets the interval to wait between server monitoring checks.
func WithMongoHosts ¶
func WithMongoHosts(s ...string) MongoOption
WithMongoHosts specifies the `Hosts` to mongo. Hosts sets the initial list of addresses from which to discover the rest of the cluster.
func WithMongoLocalThreshold ¶
func WithMongoLocalThreshold(d time.Duration) MongoOption
WithMongoLocalThreshold specifies the `LocalThreshold` to mongo. LocalThreshold sets how far to distribute queries, beyond the server with the fastest round-trip time. If a server's roundtrip time is more than LocalThreshold slower than the the fastest, the driver will not send queries to that server.
func WithMongoMaxConnIdleTime ¶
func WithMongoMaxConnIdleTime(d time.Duration) MongoOption
WithMongoMaxConnIdleTime specifies the `MaxConnIdleTime` to mongo. MaxConnIdleTime sets the maximum number of milliseconds that a connection can remain idle in a connection pool before being removed and closed.
func WithMongoMode ¶
func WithMongoMode(m Mode) MongoOption
WithMongoMode specifies the `Mode` to mongo. Mode sets the read preference.
func WithMongoPoolSize ¶
func WithMongoPoolSize(n int) MongoOption
WithMongoPoolSize specifies the `PoolSize` to mongo. MaxPoolSize sets the max size of a server's connection pool.
func WithMongoReadConcern ¶
func WithMongoReadConcern(c Concern) MongoOption
WithMongoReadConcern specifies the `ReadConcern` to mongo. ReadConcern sets the read concern.
func WithMongoReplicaSet ¶
func WithMongoReplicaSet(s string) MongoOption
WithMongoReplicaSet specifies the `ReplicaSet` to mongo. ReplicaSet sets the name of the replica set of the cluster.
func WithMongoRetryWrites ¶
func WithMongoRetryWrites(b bool) MongoOption
WithMongoRetryWrites specifies the `RetryWrites` to mongo. RetryWrites sets whether the client has retryable writes enabled.
func WithMongoServerSelectionTimeout ¶
func WithMongoServerSelectionTimeout(d time.Duration) MongoOption
WithMongoServerSelectionTimeout specifies the `ServerSelectionTimeout` to mongo. ServerSelectionTimeout sets a timeout in milliseconds to block for server selection.
func WithMongoSocketTimeout ¶
func WithMongoSocketTimeout(d time.Duration) MongoOption
WithMongoSocketTimeout specifies the `SocketTimeout` to mongo. SocketTimeout sets the time in milliseconds to attempt to send or receive on a socket before the attempt times out.
func WithMongoTLSConfig ¶
func WithMongoTLSConfig(c *tls.Config) MongoOption
WithMongoTLSConfig specifies the `TLSConfig` to mongo. SetTLSConfig sets the tls.Config.
func WithMongoWriteConcern ¶
func WithMongoWriteConcern(c ...writeconcern.Option) MongoOption
WithMongoWriteConcern specifies the `WriteConcern` to mongo. WriteConcern sets the write concern.
func WithMongoZlibLevel ¶
func WithMongoZlibLevel(l int) MongoOption
WithMongoZlibLevel specifies the `ZlibLevel` to mongo. ZlibLevel sets the level for the zlib compressor.
type RedisOption ¶
type RedisOption interface {
// contains filtered or unexported methods
}
RedisOption configures how we set up the db
func WithRedisConnTimeout ¶
func WithRedisConnTimeout(d time.Duration) RedisOption
WithRedisConnTimeout specifies the `ConnTimeout` to redis.
func WithRedisDatabase ¶
func WithRedisDatabase(n int) RedisOption
WithRedisDatabase specifies the `Database` to redis.
func WithRedisIdleTimeout ¶
func WithRedisIdleTimeout(d time.Duration) RedisOption
WithRedisIdleTimeout specifies the `IdleTimeout` to redis.
func WithRedisPassword ¶
func WithRedisPassword(s string) RedisOption
WithRedisPassword specifies the `Password` to redis.
func WithRedisPoolLimit ¶
func WithRedisPoolLimit(n int) RedisOption
WithRedisPoolLimit specifies the `PoolLimit` to redis.
func WithRedisPoolSize ¶
func WithRedisPoolSize(n int) RedisOption
WithRedisPoolSize specifies the `PoolSize` to redis.
func WithRedisPrefillParallelism ¶ added in v3.2.2
func WithRedisPrefillParallelism(n int) RedisOption
WithRedisPrefillParallelism specifies the `PrefillParallelism` to redis. A non-zero value of prefillParallelism causes the pool to be pre-filled.
func WithRedisReadTimeout ¶
func WithRedisReadTimeout(d time.Duration) RedisOption
WithRedisReadTimeout specifies the `ReadTimeout` to redis.
func WithRedisWaitTimeout ¶ added in v3.2.2
func WithRedisWaitTimeout(d time.Duration) RedisOption
WithRedisWaitTimeout specifies the `WaitTimeout` to redis. A timeout of 0 means an indefinite wait.
func WithRedisWriteTimeout ¶
func WithRedisWriteTimeout(d time.Duration) RedisOption
WithRedisWriteTimeout specifies the `WriteTimeout` to redis.
type RedisPoolResource ¶
type RedisPoolResource struct {
// contains filtered or unexported fields
}
RedisPoolResource redis pool resource
func (*RedisPoolResource) Get ¶
func (r *RedisPoolResource) Get() (RedisConn, error)
Get get a connection resource from the pool.
func (*RedisPoolResource) Put ¶
func (r *RedisPoolResource) Put(rc RedisConn)
Put returns a connection resource to the pool.
type Uint16Slice ¶
type Uint16Slice []uint16
Uint16Slice attaches the methods of Interface to []uint16, sorting a increasing order.
func (Uint16Slice) Len ¶
func (p Uint16Slice) Len() int
func (Uint16Slice) Less ¶
func (p Uint16Slice) Less(i, j int) bool
func (Uint16Slice) Swap ¶
func (p Uint16Slice) Swap(i, j int)
type Uint32Slice ¶
type Uint32Slice []uint32
Uint32Slice attaches the methods of Interface to []uint, sorting a increasing order.
func (Uint32Slice) Len ¶
func (p Uint32Slice) Len() int
func (Uint32Slice) Less ¶
func (p Uint32Slice) Less(i, j int) bool
func (Uint32Slice) Swap ¶
func (p Uint32Slice) Swap(i, j int)
type Uint64Slice ¶
type Uint64Slice []uint64
Uint64Slice attaches the methods of Interface to []uint64, sorting a increasing order.
func (Uint64Slice) Len ¶
func (p Uint64Slice) Len() int
func (Uint64Slice) Less ¶
func (p Uint64Slice) Less(i, j int) bool
func (Uint64Slice) Swap ¶
func (p Uint64Slice) Swap(i, j int)
type Uint8Slice ¶
type Uint8Slice []uint8
Uint8Slice attaches the methods of Interface to []uint8, sorting a increasing order.
func (Uint8Slice) Len ¶
func (p Uint8Slice) Len() int
func (Uint8Slice) Less ¶
func (p Uint8Slice) Less(i, j int) bool
func (Uint8Slice) Swap ¶
func (p Uint8Slice) Swap(i, j int)
type UintSlice ¶
type UintSlice []uint
UintSlice attaches the methods of Interface to []uint, sorting a increasing order.
type ZipkinHTTPClient ¶ added in v3.2.4
type ZipkinHTTPClient struct {
// contains filtered or unexported fields
}
ZipkinHTTPClient zipkin http client
func (*ZipkinHTTPClient) Get ¶ added in v3.2.4
func (z *ZipkinHTTPClient) Get(ctx context.Context, url string, options ...HTTPRequestOption) ([]byte, error)
Get zipkin http get request
func (*ZipkinHTTPClient) Post ¶ added in v3.2.4
func (z *ZipkinHTTPClient) Post(ctx context.Context, url string, body []byte, options ...HTTPRequestOption) ([]byte, error)
Post zipkin http post request
type ZipkinHTTPClientOption ¶ added in v3.2.4
type ZipkinHTTPClientOption interface {
// contains filtered or unexported methods
}
ZipkinHTTPClientOption configures how we set up the zipkin http client
func WithZipkinClientOptions ¶ added in v3.2.4
func WithZipkinClientOptions(options ...zipkinHTTP.ClientOption) ZipkinHTTPClientOption
WithZipkinClientOptions specifies the `Options` to zipkin http client.
func WithZipkinHTTPClient ¶ added in v3.2.3
func WithZipkinHTTPClient(options ...HTTPClientOption) ZipkinHTTPClientOption
WithZipkinHTTPClient specifies the `Client` to zipkin http client.
func WithZipkinHTTPTransport ¶ added in v3.2.4
func WithZipkinHTTPTransport(options ...zipkinHTTP.TransportOption) ZipkinHTTPClientOption
WithZipkinHTTPTransport specifies the `Transport` to zipkin http client transport.
type ZipkinReporterOption ¶ added in v3.2.4
type ZipkinReporterOption interface {
// contains filtered or unexported methods
}
ZipkinReporterOption configures how we set up the zipkin reporter
func WithZipkinReporterClient ¶ added in v3.2.3
func WithZipkinReporterClient(options ...HTTPClientOption) ZipkinReporterOption
WithZipkinReporterClient specifies the `Client` to zipkin reporter.
func WithZipkinReporterOptions ¶ added in v3.2.4
func WithZipkinReporterOptions(options ...zipkinHTTPReporter.ReporterOption) ZipkinReporterOption
WithZipkinReporterOptions specifies the `Options` to zipkin reporter.
type ZipkinTracer ¶ added in v3.2.4
type ZipkinTracer struct {
// contains filtered or unexported fields
}
ZipkinTracer zipkin tracer
func ZTracer ¶ added in v3.2.4
func ZTracer(name ...string) *ZipkinTracer
ZTracer returns a zipkin tracer
func (*ZipkinTracer) HTTPClient ¶ added in v3.2.4
func (z *ZipkinTracer) HTTPClient(options ...ZipkinHTTPClientOption) (*ZipkinHTTPClient, error)
HTTPClient returns a new zipkin http client
func (*ZipkinTracer) Start ¶ added in v3.2.4
func (z *ZipkinTracer) Start(req *http.Request) zipkin.Span
Start returns a new zipkin span
use as below:
span := yiigo.ZTracer.Start(r) defer span.Finish() ctx := zipkin.NewContext(r.Context(), span)