func (f *Pkger) Info(p string) (here.Info, error) {
	info, ok := f.infos.Load(p)
	if ok {
		return info, nil
	}
	info, err := here.Package(p)
	if err != nil {
		return info, err
	}
	f.infos.Store(p, info)
	return info, nil
}
Info returns the here.Info of the here.Path
package stdos
import (
	"fmt"
	"os"
	"path/filepath"
	"strings"
	"github.com/markbates/pkger/here"
	"github.com/markbates/pkger/internal/maps"
	"github.com/markbates/pkger/pkging"
)
var _ pkging.Pkger = &Pkger{}
type Pkger struct {
	Here  here.Info
	infos *maps.Infos
}
func New(her here.Info) (*Pkger, error) {
	p := &Pkger{
		infos: &maps.Infos{},
		Here:  her,
	}
	p.infos.Store(her.ImportPath, her)
	return p, nil
}
func (fx *Pkger) Create(name string) (pkging.File, error) {
	pt, err := fx.Parse(name)
	if err != nil {
		return nil, err
	}
	her, err := fx.Info(pt.Pkg)
	if err != nil {
		return nil, err
	}
	name = filepath.Join(her.Dir, pt.Name)
	f, err := os.Create(name)
	if err != nil {
		return nil, err
	}
	nf := &File{
		File:   f,
		her:    her,
		path:   pt,
		pkging: fx,
	}
	info, err := f.Stat()
	if err != nil {
		return nil, err
	}
	nf.info = pkging.NewFileInfo(info)
	return nf, nil
}
func (f *Pkger) Current() (here.Info, error) {
	return f.Here, nil
}