Documentation
¶
Overview ¶
Package resource provides instance-owned, rooted access to explicitly mounted Go filesystems. It performs no network access or package scanning.
Index ¶
- type Loader
- type Mount
- type Resource
- func (resource Resource) Location() string
- func (resource Resource) Mount() string
- func (resource Resource) Open(ctx context.Context) (fs.File, error)
- func (resource Resource) Path() string
- func (resource Resource) ReadAll(ctx context.Context, limit int64) (result []byte, resultErr error)
- func (resource Resource) Stat(ctx context.Context) (fs.FileInfo, error)
- func (resource Resource) Sub(ctx context.Context) (fs.FS, error)
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Loader ¶
type Loader struct {
// contains filtered or unexported fields
}
Loader resolves canonical spice://<mount>/<path> resource locations. Loader is immutable after construction and safe for concurrent use when its mounted filesystems are safe for concurrent use.
Example ¶
loader, err := NewLoader(Mount{
Name: "assets",
FS: fstest.MapFS{
"messages/welcome.txt": {Data: []byte("Welcome to Spice")},
},
})
if err != nil {
fmt.Println("resource loader unavailable")
return
}
welcome, err := loader.Resolve(
"spice://assets/messages/welcome.txt",
)
if err != nil {
fmt.Println("resource unavailable")
return
}
content, err := welcome.ReadAll(context.Background(), 1024)
if err != nil {
fmt.Println("resource read failed")
return
}
fmt.Println(string(content))
Output: Welcome to Spice
type Resource ¶
type Resource struct {
// contains filtered or unexported fields
}
Resource is one resolved filesystem entry. It retains no open handle.
func (Resource) ReadAll ¶
func (resource Resource) ReadAll( ctx context.Context, limit int64, ) (result []byte, resultErr error)
ReadAll reads a non-directory resource with an explicit byte limit.
Click to show internal directories.
Click to hide internal directories.