Go Standards Recommendations
Go Standards Recommendations
go get github.com/gookit/gsr
Std Logger
package main
import (
"github.com/gookit/gsr"
)
type MyApp struct {
logger gsr.StdLogger // std logger
}
func (ma *MyApp) SetLogger(logger gsr.StdLogger) {
ma.logger = logger
}
Full Logger
package main
import (
"github.com/gookit/gsr"
)
type MyApp struct {
logger gsr.Logger // full logger
}
func (ma *MyApp) SetLogger(logger gsr.Logger) {
ma.logger = logger
}
Simple Cache
package main
import (
"github.com/gookit/gsr"
)
type MyApp struct {
cacher gsr.SimpleCacher
}
func (ma *MyApp) SetCacher(cacher gsr.SimpleCacher) {
ma.cacher = cacher
}
// Serializer interface definition
type Serializer interface {
Serialize(v any) ([]byte, error)
Deserialize(data []byte, v any) error
}
// GoSerializer interface definition
type GoSerializer interface {
Marshal(v any) ([]byte, error)
Unmarshal(v []byte, ptr any) error
}
// Codec interface definition
type Codec interface {
Decode(blob []byte, v any) (err error)
Encode(v any) (out []byte, err error)
}