resource

package
v0.1.0-preview.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 11, 2026 License: Apache-2.0 Imports: 9 Imported by: 0

Documentation

Overview

Package resource provides instance-owned, rooted access to explicitly mounted Go filesystems. It performs no network access or package scanning.

Index

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

func NewLoader

func NewLoader(mounts ...Mount) (*Loader, error)

NewLoader validates and freezes explicit filesystem mounts.

func (*Loader) Mounts

func (loader *Loader) Mounts() []string

Mounts returns mounted names in lexical order.

func (*Loader) Resolve

func (loader *Loader) Resolve(location string) (Resource, error)

Resolve validates one canonical location without opening it.

type Mount

type Mount struct {
	Name string
	FS   fs.FS
}

Mount binds one stable name to one caller-owned filesystem.

type Resource

type Resource struct {
	// contains filtered or unexported fields
}

Resource is one resolved filesystem entry. It retains no open handle.

func (Resource) Location

func (resource Resource) Location() string

Location returns the canonical resource location.

func (Resource) Mount

func (resource Resource) Mount() string

Mount returns the configured filesystem mount name.

func (Resource) Open

func (resource Resource) Open(ctx context.Context) (fs.File, error)

Open opens a fresh caller-owned handle after checking cancellation.

func (Resource) Path

func (resource Resource) Path() string

Path returns the slash-separated fs.ValidPath within the mount.

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.

func (Resource) Stat

func (resource Resource) Stat(ctx context.Context) (fs.FileInfo, error)

Stat returns current resource metadata without retaining an open handle.

func (Resource) Sub

func (resource Resource) Sub(ctx context.Context) (fs.FS, error)

Sub returns a filesystem rooted at a directory resource.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL