affixed

package
v0.4.2 Latest Latest
Warning

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

Go to latest
Published: May 8, 2024 License: Apache-2.0 Imports: 3 Imported by: 1

Documentation

Overview

Package affixed implements a blob.Store interface that delegates to another Store, with keys namespaced by a fixed prefix and/or suffix concatenated with each key.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type CAS

type CAS struct {
	Store
	// contains filtered or unexported fields
}

CAS implements a prefixed wrapper around a blob.CAS instance.

func NewCAS

func NewCAS(cas blob.CAS) CAS

NewCAS creates a new prefixed Store associated with the specified cas. Prefixes do not nest: If cas is already a prefixed.CAS, it is returned as.is.

func (CAS) Base

func (c CAS) Base() blob.CAS

Base returns the underlying store associated with c.

func (CAS) CASKey

func (c CAS) CASKey(ctx context.Context, opts blob.CASPutOptions) (string, error)

CASKey implements part of the blob.CAS interface.

func (CAS) CASPut

func (c CAS) CASPut(ctx context.Context, opts blob.CASPutOptions) (string, error)

CASPut implements part of the blob.CAS interface.

func (CAS) Derive

func (c CAS) Derive(prefix, suffix string) CAS

Derive creates a clone of c that delegates to the same underlying store, but using a different prefix and suffix. If prefix == suffix == "", Derive returns a store that is equivalent to the original base store.

func (CAS) WithPrefix

func (c CAS) WithPrefix(prefix string) CAS

WithPrefix creates a clone of c that delegates to the same underlying store, but using a different prefix. The suffix, if any, is unchanged.

func (CAS) WithSuffix

func (c CAS) WithSuffix(suffix string) CAS

WithSuffix creates a clone of c that delegates to the same underlying store, but using a different suffix. The prefix, if any, is unchanged.

type Store

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

Store implements the blob.Store interface by delegating to an underlying store, but with each key prefixed and/or suffixed by fixed non-empty strings. This allows multiple consumers to share non-overlapping namespaces within a single storage backend.

func New

func New(s blob.Store) Store

New creates a Store associated with the specified s. The initial store is exactly equivalent to the underlying store; use Derive to create clones that use a different prefix.

Affixes do not nest: If s is already an affixed.Store, it is returned as-is.

func (Store) Base

func (s Store) Base() blob.Store

Base returns the underlying store associated with s.

func (Store) Close

func (s Store) Close(ctx context.Context) error

Close implements the optional blob.Closer interface. It delegates to the underlying store if possible.

func (Store) Delete

func (s Store) Delete(ctx context.Context, key string) error

Delete implements part of blob.Store by delegation.

func (Store) Derive

func (s Store) Derive(prefix, suffix string) Store

Derive creates a clone of s that delegates to the same underlying store, but using a different prefix and suffix. If prefix == suffix == "", Derive returns a store that is equivalent to the original base store.

func (Store) Get

func (s Store) Get(ctx context.Context, key string) ([]byte, error)

Get implements part of blob.Store by delegation.

func (Store) Len

func (s Store) Len(ctx context.Context) (int64, error)

Len implements part of blob.Store by delegation. It reports only the number of keys matching the current prefix.

func (Store) List

func (s Store) List(ctx context.Context, start string, f func(string) error) error

List implements part of blob.Store by delegation. It filters the underlying list results to include only keys prefixed for this store.

func (Store) Prefix

func (s Store) Prefix() string

Prefix returns the key prefix associated with s.

func (Store) Put

func (s Store) Put(ctx context.Context, opts blob.PutOptions) error

Put implements part of blob.Store by delegation.

func (Store) Suffix

func (s Store) Suffix() string

Suffix returns the key suffix associated with s.

func (Store) UnwrapKey added in v0.4.1

func (s Store) UnwrapKey(key string) string

UnwrapKey returns the unwrapped version of key with the current prefix and suffix removed (if present).

func (Store) WithPrefix

func (s Store) WithPrefix(prefix string) Store

WithPrefix creates a clone of s that delegates to the same underlying store, but using a different prefix. The suffix, if any, is unchanged.

func (Store) WithSuffix

func (s Store) WithSuffix(suffix string) Store

WithSuffix creates a clone of s that delegates to the same underlying store, but using a different suffix. The prefix, if any, is unchanged.

func (Store) WrapKey added in v0.4.1

func (s Store) WrapKey(key string) string

WrapKey returns the wrapped version of key as it would be stored into the base store with the current prefix and suffix attached.

Jump to

Keyboard shortcuts

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