func NewManifest() Manifest {
	return &manifest{
		Entries: make(map[string]*entry),
	}
}
NewManifest creates a new Manifest struct and returns a pointer to it.
package simple
import (
	"encoding"
	"encoding/json"
	"errors"
	"fmt"
	"strings"
	"sync"
)
var (
	ErrNotFound  = errors.New("not found")
	ErrEmptyPath = errors.New("empty path")
)
type Manifest interface {
	Add(string, string, map[string]string) error
	Remove(string) error
	Lookup(string) (Entry, error)
	HasPrefix(string) bool
	Length() int
	WalkEntry(string, WalkEntryFunc) error
	encoding.BinaryMarshaler
	encoding.BinaryUnmarshaler
}
type manifest struct {
	Entries map[string]*entry `json:"entries,omitempty"`
	mu sync.RWMutex  
}