Don't export *log.Logger in Scanner

By introducing a lowercase type alias 'logger' for *log.Logger we can
now embed 'logger' in Scanner and not export it:

 % go doc Scanner
package symbolyze // import "."

type Scanner struct {
	// Has unexported fields.
}
This commit is contained in:
Özgür Kesim 2020-01-15 23:50:09 +01:00
parent 7af1728eed
commit 32981d6a55

View File

@ -28,7 +28,7 @@ type Scanner struct {
cache map[string]uint64 // Contains (pathname, offset)
observers []Observer // Callbacks
*log.Logger // Embedded logger
logger // Embedded logger
// Instead of using a boolean to indicate debugging, we use function
// members. This way we can populate them with noop-functions in the
@ -39,6 +39,10 @@ type Scanner struct {
err error // error state of the scanner.
}
// We use a lowercase type alias for *log.Logger so that we can embedd it in
// Scanner without exporting it.
type logger = *log.Logger
// An Observer is a callback that can be registerd with Scanner.OnFound. It
// will be called with a pid and an offset. Observers are called concurrently.
// They have to be thread-safe.
@ -54,7 +58,7 @@ func New(symbol, pathglob string) *Scanner {
pathglob: pathglob,
cache: map[string]uint64{},
Logger: log.New(os.Stderr, "[symbolyze] ", log.Ltime|log.Lmicroseconds),
logger: log.New(os.Stderr, "[symbolyze] ", log.Ltime|log.Lmicroseconds),
// debugging is off per default.
debugf: func(string, ...interface{}) {},