84 lines
1.4 KiB
Go
84 lines
1.4 KiB
Go
package packd
|
|
|
|
import (
|
|
"fmt"
|
|
"io"
|
|
"net/http"
|
|
"os"
|
|
)
|
|
|
|
type WalkFunc func(string, File) error
|
|
|
|
// Box represents the entirety of the necessary
|
|
// interfaces to form a "full" box.
|
|
// github.com/gobuffalo/packr#Box is an example of this interface.
|
|
type Box interface {
|
|
HTTPBox
|
|
Lister
|
|
Addable
|
|
Finder
|
|
Walkable
|
|
Haser
|
|
}
|
|
|
|
type Haser interface {
|
|
Has(string) bool
|
|
}
|
|
|
|
type Walker interface {
|
|
Walk(wf WalkFunc) error
|
|
}
|
|
|
|
type Walkable interface {
|
|
Walker
|
|
WalkPrefix(prefix string, wf WalkFunc) error
|
|
}
|
|
|
|
type Finder interface {
|
|
Find(string) ([]byte, error)
|
|
FindString(name string) (string, error)
|
|
}
|
|
|
|
type HTTPBox interface {
|
|
Open(name string) (http.File, error)
|
|
}
|
|
|
|
type Lister interface {
|
|
List() []string
|
|
}
|
|
|
|
type Addable interface {
|
|
AddString(path string, t string) error
|
|
AddBytes(path string, t []byte) error
|
|
}
|
|
|
|
type SimpleFile interface {
|
|
fmt.Stringer
|
|
io.Reader
|
|
io.Writer
|
|
Name() string
|
|
}
|
|
|
|
type HTTPFile interface {
|
|
SimpleFile
|
|
io.Closer
|
|
io.Seeker
|
|
Readdir(count int) ([]os.FileInfo, error)
|
|
Stat() (os.FileInfo, error)
|
|
}
|
|
|
|
type File interface {
|
|
HTTPFile
|
|
FileInfo() (os.FileInfo, error)
|
|
}
|
|
|
|
// LegacyBox represents deprecated methods
|
|
// that older Box implementations might have had.
|
|
// github.com/gobuffalo/packr v1 is an example of a LegacyBox.
|
|
type LegacyBox interface {
|
|
String(name string) string
|
|
MustString(name string) (string, error)
|
|
Bytes(name string) []byte
|
|
MustBytes(name string) ([]byte, error)
|
|
}
|