Source File
monikernames.go
Belonging Package
go.pact.im/x/names/monikernames
// Package monikernames provides a names.Namer implementation that uses the
// github.com/technosophos/moniker package.
package monikernames
import (
)
var (
_ names.NamerBuilder = (*Builder)(nil)
_ names.Namer = (*Namer)(nil)
)
// Builder constructs Namer instances for moniker package that are safe for
// concurrent use.
type Builder struct{}
// New returns a new NamerBuilder that constructs Namer instances for the
// moniker package.
func () *Builder {
return (*Builder)(nil)
}
// Build implements the names.NamerBuilder interface.
func ( *Builder) () names.Namer {
return NewNamer(moniker.New())
}
// Namer is an adapter for moniker’s Namer type that is safe for concurrent
// use.
type Namer struct {
mu sync.Mutex
n moniker.Namer
}
// NewNamer returns a new names.Namer adapter for the given Namer.
func ( moniker.Namer) *Namer {
return &Namer{
n: ,
}
}
// Name implements the names.Namer interface.
func ( *Namer) ( context.Context) (string, error) {
.mu.Lock()
defer .mu.Unlock()
return .n.Name(), nil
}
The pages are generated with Golds v0.4.9. (GOOS=linux GOARCH=amd64)