cinodefs

package
v0.0.8 Latest Latest
Warning

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

Go to latest
Published: Dec 10, 2023 License: Apache-2.0 Imports: 20 Imported by: 2

Documentation

Index

Constants

View Source
const (
	CinodeDirMimeType = "application/cinode-dir"
)
View Source
const (
	DefaultMaxLinksRedirects = 10
)

Variables

View Source
var (
	ErrInvalidBE                 = errors.New("invalid BE argument")
	ErrCantOpenDir               = errors.New("can not open directory")
	ErrCantOpenDirDuplicateEntry = fmt.Errorf("%w: duplicate entry", ErrCantOpenDir)
	ErrCantOpenLink              = errors.New("can not open link")
	ErrTooManyRedirects          = errors.New("too many link redirects")
	ErrCantComputeBlobKey        = errors.New("can not compute blob keys")
	ErrModifiedDirectory         = errors.New("can not get entrypoint for a directory, unsaved content")
	ErrCantDeleteRoot            = errors.New("can not delete root object")
	ErrNotADirectory             = errors.New("entry is not a directory")
	ErrNotALink                  = errors.New("entry is not a link")
	ErrNilEntrypoint             = errors.New("nil entrypoint")
	ErrEmptyName                 = errors.New("entry name can not be empty")
	ErrEntryNotFound             = errors.New("entry not found")
	ErrIsADirectory              = errors.New("entry is a directory")
	ErrInvalidDirectoryData      = errors.New("invalid directory data")
	ErrCantWriteDirectory        = errors.New("can not write directory")
	ErrMissingRootInfo           = errors.New("root info not specified")
)
View Source
var (
	ErrNegativeMaxLinksRedirects = errors.New("negative value of maximum links redirects")
	ErrInvalidNilTimeFunc        = errors.New("nil time function")
	ErrInvalidNilRandSource      = errors.New("nil random source")
)
View Source
var (
	ErrMissingKeyInfo    = errors.New("missing key info")
	ErrMissingWriterInfo = errors.New("missing writer info")
)
View Source
var (
	ErrInvalidEntrypointData             = errors.New("invalid entrypoint data")
	ErrInvalidEntrypointDataParse        = fmt.Errorf("%w: protobuf parse error", ErrInvalidEntrypointData)
	ErrInvalidEntrypointDataLinkMimetype = fmt.Errorf("%w: link can not have mimetype set", ErrInvalidEntrypointData)
	ErrInvalidEntrypointDataNil          = fmt.Errorf("%w: nil data", ErrInvalidEntrypointData)
	ErrInvalidEntrypointTime             = errors.New("time validation failed")
	ErrExpired                           = fmt.Errorf("%w: entry expired", ErrInvalidEntrypointTime)
	ErrNotYetValid                       = fmt.Errorf("%w: entry not yet valid", ErrInvalidEntrypointTime)
)
View Source
var (
	ErrInvalidWriterInfoData      = errors.New("invalid writer info data")
	ErrInvalidWriterInfoDataParse = fmt.Errorf("%w: protobuf parse error", ErrInvalidWriterInfoData)
)

Functions

This section is empty.

Types

type Entrypoint

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

func EntrypointFromBlobNameAndKey

func EntrypointFromBlobNameAndKey(bn *common.BlobName, key *common.BlobKey) *Entrypoint

func EntrypointFromBytes

func EntrypointFromBytes(b []byte) (*Entrypoint, error)

func EntrypointFromString

func EntrypointFromString(s string) (*Entrypoint, error)

func (*Entrypoint) BlobName

func (e *Entrypoint) BlobName() *common.BlobName

func (*Entrypoint) Bytes

func (e *Entrypoint) Bytes() []byte

func (*Entrypoint) IsDir

func (e *Entrypoint) IsDir() bool
func (e *Entrypoint) IsLink() bool

func (*Entrypoint) MimeType

func (e *Entrypoint) MimeType() string

func (*Entrypoint) String

func (e *Entrypoint) String() string

type EntrypointOption

type EntrypointOption interface {
	// contains filtered or unexported methods
}

func SetMimeType

func SetMimeType(mimeType string) EntrypointOption

type FS

type FS interface {
	SetEntryFile(
		ctx context.Context,
		path []string,
		data io.Reader,
		opts ...EntrypointOption,
	) (*Entrypoint, error)

	CreateFileEntrypoint(
		ctx context.Context,
		data io.Reader,
		opts ...EntrypointOption,
	) (*Entrypoint, error)

	SetEntry(
		ctx context.Context,
		path []string,
		ep *Entrypoint,
	) error

	ResetDir(
		ctx context.Context,
		path []string,
	) error

	Flush(
		ctx context.Context,
	) error

	FindEntry(
		ctx context.Context,
		path []string,
	) (*Entrypoint, error)

	DeleteEntry(
		ctx context.Context,
		path []string,
	) error

	InjectDynamicLink(
		ctx context.Context,
		path []string,
	) (
		*WriterInfo,
		error,
	)

	OpenEntryData(
		ctx context.Context,
		path []string,
	) (io.ReadCloser, error)

	OpenEntrypointData(
		ctx context.Context,
		ep *Entrypoint,
	) (io.ReadCloser, error)

	RootEntrypoint() (*Entrypoint, error)

	EntrypointWriterInfo(
		ctx context.Context,
		ep *Entrypoint,
	) (*WriterInfo, error)

	RootWriterInfo(
		ctx context.Context,
	) (*WriterInfo, error)
}

func New

func New(
	ctx context.Context,
	be blenc.BE,
	options ...Option,
) (FS, error)

type Option

type Option interface {
	// contains filtered or unexported methods
}

func MaxLinkRedirects

func MaxLinkRedirects(maxLinkRedirects int) Option
func NewRootDynamicLink() Option

NewRootDynamicLink option can be used to create completely new, random dynamic link as the root

func NewRootStaticDirectory

func NewRootStaticDirectory() Option

NewRootDynamicLink option can be used to create completely new, random dynamic link as the root

func RandSource

func RandSource(r io.Reader) Option

func RootEntrypoint

func RootEntrypoint(ep *Entrypoint) Option

func RootEntrypointString

func RootEntrypointString(eps string) Option

func RootWriterInfo

func RootWriterInfo(wi *WriterInfo) Option

func RootWriterInfoString

func RootWriterInfoString(wis string) Option

func TimeFunc

func TimeFunc(f func() time.Time) Option

type WriterInfo

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

func WriterInfoFromBytes

func WriterInfoFromBytes(b []byte) (*WriterInfo, error)

func WriterInfoFromString

func WriterInfoFromString(s string) (*WriterInfo, error)

func (*WriterInfo) Bytes

func (wi *WriterInfo) Bytes() []byte

func (*WriterInfo) String

func (wi *WriterInfo) String() string

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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