Documentation
¶
Overview ¶
Package store provides storage implementations for indexed Kubernetes resources.
This package offers two store types: - Memory store: Fast in-memory storage with complete resources - Cached store: Memory-efficient storage with API-backed retrieval and caching
Index ¶
- Constants
- type BranchChange
- type CachedStore
- func (s *CachedStore) AcquireSnapshotCommitFence(ctx context.Context) (func(), error)
- func (s *CachedStore) Add(resource any, keys []string) error
- func (s *CachedStore) ChangesSince(sequence uint64) (uint64, []stores.RevisionChange, bool)
- func (s *CachedStore) Clear() error
- func (s *CachedStore) Delete(namespace, name string, keys []string) error
- func (s *CachedStore) ExactRevisionJournalSource() stores.RevisionSource
- func (s *CachedStore) Get(keys ...string) ([]any, error)
- func (s *CachedStore) GetContext(ctx context.Context, keys ...string) ([]any, error)
- func (s *CachedStore) GetIdentity(namespace, name string) (item any, found bool, err error)
- func (s *CachedStore) GetRevision(keys ...string) stores.Revision
- func (s *CachedStore) GetSnapshot(keys ...string) (items []any, revision stores.Revision, sequence uint64, err error)
- func (s *CachedStore) IdentityRevision(namespace, name string) stores.Revision
- func (s *CachedStore) IdentitySnapshot(namespace, name string) (item any, found bool, revision stores.Revision, sequence uint64, err error)
- func (s *CachedStore) List() ([]any, error)
- func (s *CachedStore) ListCached() ([]any, error)
- func (s *CachedStore) ListContext(ctx context.Context) ([]any, error)
- func (s *CachedStore) ListRevision() stores.Revision
- func (s *CachedStore) ListSnapshot() (items []any, sequence uint64, err error)
- func (s *CachedStore) Pin() (stores.ReadSnapshot, error)
- func (s *CachedStore) RevisionSource() stores.RevisionSource
- func (s *CachedStore) Size() int
- func (s *CachedStore) Update(resource any, keys []string) error
- type CachedStoreConfig
- type ImmutableResource
- func (r *ImmutableResource) ExtractKeys(idx *indexer.Indexer) ([]string, error)
- func (r *ImmutableResource) GetName() string
- func (r *ImmutableResource) GetNamespace() string
- func (r *ImmutableResource) GetObjectMeta() metav1.Object
- func (r *ImmutableResource) GetResourceVersion() string
- func (r *ImmutableResource) Matches(matcher *indexer.FieldSelectorMatcher) (bool, error)
- func (r *ImmutableResource) ShareUnchanged(previous *ImmutableResource) *ImmutableResource
- type ImmutableSnapshotProjection
- type MemoryStore
- func (s *MemoryStore) AcquireSnapshotCommitFence(ctx context.Context) (func(), error)
- func (s *MemoryStore) Add(resource any, keys []string) error
- func (s *MemoryStore) ChangesSince(sequence uint64) (uint64, []stores.RevisionChange, bool)
- func (s *MemoryStore) Clear() error
- func (s *MemoryStore) Delete(namespace, name string, keys []string) error
- func (s *MemoryStore) ExactRevisionJournalSource() stores.RevisionSource
- func (s *MemoryStore) Get(keys ...string) ([]any, error)
- func (s *MemoryStore) GetIdentity(namespace, name string) (item any, found bool, err error)
- func (s *MemoryStore) GetRevision(keys ...string) stores.Revision
- func (s *MemoryStore) GetSnapshot(keys ...string) (items []any, revision stores.Revision, sequence uint64, err error)
- func (s *MemoryStore) IdentityRevision(namespace, name string) stores.Revision
- func (s *MemoryStore) IdentitySnapshot(namespace, name string) (item any, found bool, revision stores.Revision, sequence uint64, err error)
- func (s *MemoryStore) List() ([]any, error)
- func (s *MemoryStore) ListRevision() stores.Revision
- func (s *MemoryStore) ListSnapshot() (items []any, sequence uint64, err error)
- func (s *MemoryStore) Pin() (stores.ReadSnapshot, error)
- func (s *MemoryStore) RevisionSource() stores.RevisionSource
- func (s *MemoryStore) Size() int
- func (s *MemoryStore) Update(resource any, keys []string) error
- type SnapshotBranch
- func (b *SnapshotBranch) AcquireSnapshotCommitFence(ctx context.Context) (func(), error)
- func (b *SnapshotBranch) Add(any, []string) error
- func (b *SnapshotBranch) Apply(changes []BranchChange) *SnapshotBranch
- func (b *SnapshotBranch) Changes(ctx context.Context, snapshot stores.ReadSnapshot, indexBy []string) ([]BranchChange, error)
- func (b *SnapshotBranch) ChangesBetween(from, through uint64) ([]stores.RevisionChange, bool)
- func (b *SnapshotBranch) ChangesFrom(ctx context.Context, previous stores.ReadSnapshot) ([]stores.RevisionChange, bool, error)
- func (b *SnapshotBranch) ChangesSince(sequence uint64) (uint64, []stores.RevisionChange, bool)
- func (b *SnapshotBranch) Clear() error
- func (b *SnapshotBranch) Delete(string, string, []string) error
- func (b *SnapshotBranch) ExactRevisionJournalSource() stores.RevisionSource
- func (b *SnapshotBranch) Get(keys ...string) ([]any, error)
- func (b *SnapshotBranch) GetContext(ctx context.Context, keys ...string) ([]any, error)
- func (b *SnapshotBranch) GetIdentity(namespace, name string) (item any, found bool, err error)
- func (b *SnapshotBranch) GetIdentityContext(ctx context.Context, namespace, name string) (item any, found bool, err error)
- func (b *SnapshotBranch) GetRevision(keys ...string) stores.Revision
- func (b *SnapshotBranch) GetSnapshot(keys ...string) (items []any, revision stores.Revision, sequence uint64, err error)
- func (b *SnapshotBranch) IdentityOrderSource() stores.RevisionSource
- func (b *SnapshotBranch) IdentityRevision(namespace, name string) stores.Revision
- func (b *SnapshotBranch) IdentitySnapshot(namespace, name string) (item any, found bool, revision stores.Revision, sequence uint64, err error)
- func (b *SnapshotBranch) List() ([]any, error)
- func (b *SnapshotBranch) ListContext(ctx context.Context) ([]any, error)
- func (b *SnapshotBranch) ListRevision() stores.Revision
- func (b *SnapshotBranch) ListSnapshot() (items []any, sequence uint64, err error)
- func (b *SnapshotBranch) Pin() (stores.ReadSnapshot, error)
- func (b *SnapshotBranch) RevisionSource() stores.RevisionSource
- func (b *SnapshotBranch) Sequence() uint64
- func (b *SnapshotBranch) Update(any, []string) error
- type StoreError
Constants ¶
const DefaultMaxCacheSize = 256
DefaultMaxCacheSize is the default maximum number of entries in the LRU cache.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type BranchChange ¶
type BranchChange struct {
// contains filtered or unexported fields
}
BranchChange identifies an exact replacement or deletion captured from a snapshot.
func (BranchChange) Deleted ¶
func (c BranchChange) Deleted() bool
Deleted reports whether the observed resource no longer exists.
func (BranchChange) Namespace ¶
func (c BranchChange) Namespace() string
Namespace returns the resource namespace.
func (BranchChange) Revision ¶
func (c BranchChange) Revision() stores.Revision
Revision identifies the captured observed revision; deletion has no value revision.
type CachedStore ¶
type CachedStore struct {
// contains filtered or unexported fields
}
CachedStore stores only resource references in memory and fetches resources from the Kubernetes API on access. Fetched resources are cached with a TTL.
This reduces memory usage for large resources (e.g., Secrets) at the cost of API latency on cache misses.
Supports non-unique index keys by storing multiple resource references per composite key.
Thread-safe for concurrent access.
func NewCachedStore ¶
func NewCachedStore(cfg *CachedStoreConfig) (*CachedStore, error)
NewCachedStore creates a new API-backed store with caching.
func (*CachedStore) AcquireSnapshotCommitFence ¶
func (s *CachedStore) AcquireSnapshotCommitFence(ctx context.Context) (func(), error)
func (*CachedStore) Add ¶
func (s *CachedStore) Add(resource any, keys []string) error
Add inserts a resource reference, replacing the same identity if present.
func (*CachedStore) ChangesSince ¶
func (s *CachedStore) ChangesSince(sequence uint64) (uint64, []stores.RevisionChange, bool)
func (*CachedStore) Clear ¶
func (s *CachedStore) Clear() error
Clear removes all resources from the store.
func (*CachedStore) Delete ¶
func (s *CachedStore) Delete(namespace, name string, keys []string) error
Delete removes the single resource identified by namespace/name from its recorded bucket, leaving any siblings in place. The keys validate shape. Deleting a resource that is not present is a no-op.
Only the deleted resource's cache entry is evicted. Purging the whole bucket's entries would drop warm bodies still referenced elsewhere, forcing a live API GET on the next render.
func (*CachedStore) ExactRevisionJournalSource ¶
func (s *CachedStore) ExactRevisionJournalSource() stores.RevisionSource
func (*CachedStore) Get ¶
func (s *CachedStore) Get(keys ...string) ([]any, error)
Get retrieves all resources matching the provided index keys.
func (*CachedStore) GetContext ¶
GetContext retrieves matching resources and cancels in-flight API fetches with ctx.
func (*CachedStore) GetIdentity ¶
func (s *CachedStore) GetIdentity(namespace, name string) (item any, found bool, err error)
GetIdentity returns one resource through the namespace/name location index.
func (*CachedStore) GetRevision ¶
func (s *CachedStore) GetRevision(keys ...string) stores.Revision
func (*CachedStore) GetSnapshot ¶
func (*CachedStore) IdentityRevision ¶
func (s *CachedStore) IdentityRevision(namespace, name string) stores.Revision
func (*CachedStore) IdentitySnapshot ¶
func (*CachedStore) List ¶
func (s *CachedStore) List() ([]any, error)
List returns all resources in the store.
func (*CachedStore) ListCached ¶
func (s *CachedStore) ListCached() ([]any, error)
ListCached returns only resources currently warm in the LRU cache — no API fetches. Used by callers that want to prime a per-render snapshot with whatever's free, without paying for the full store-wide List() fan-out. The slice may be a small subset of what's in the cluster (the LRU is `MaxCacheSize` entries; unaccessed references contribute nothing). Expired entries are skipped.
Callers that need cluster-wide iteration should still call List(), accepting the WARN and per-reference API fetch cost.
func (*CachedStore) ListContext ¶
func (s *CachedStore) ListContext(ctx context.Context) ([]any, error)
ListContext returns all resources and cancels in-flight API fetches with ctx.
func (*CachedStore) ListRevision ¶
func (s *CachedStore) ListRevision() stores.Revision
func (*CachedStore) ListSnapshot ¶
func (s *CachedStore) ListSnapshot() (items []any, sequence uint64, err error)
func (*CachedStore) Pin ¶
func (s *CachedStore) Pin() (stores.ReadSnapshot, error)
func (*CachedStore) RevisionSource ¶
func (s *CachedStore) RevisionSource() stores.RevisionSource
func (*CachedStore) Size ¶
func (s *CachedStore) Size() int
Size returns the number of tracked resources in the store.
type CachedStoreConfig ¶
type CachedStoreConfig struct {
// NumKeys is the number of index keys (must match indexer configuration)
NumKeys int
// CacheTTL is the cache entry time-to-live
CacheTTL time.Duration
// MaxCacheSize is the maximum number of entries in the LRU cache.
// When exceeded, the least recently used entry is evicted.
// Default: 256
MaxCacheSize int
// Client is the Kubernetes dynamic client for fetching resources
Client dynamic.Interface
// GVR identifies the resource type to fetch
GVR schema.GroupVersionResource
// Indexer processes fetched resources (field filtering)
Indexer *indexer.Indexer
// Logger for debug and warning messages (optional, uses slog.Default if nil)
Logger *slog.Logger
// Projected indicates the informer feeding this store delivers
// body-stripped (projected) objects — only identity, indexBy, and
// fieldSelector fields survive (see pkg/k8s/watcher projection, ADR-0012).
//
// In projected mode the store must NOT cache the projected body on
// Add/Update (a warm render read would otherwise be served a husk).
// Instead the value cache is populated only by the live API GET in
// fetchResourceByRef (full body), and Update/Delete invalidate any stale
// cached body so the next read re-fetches. Off by default; on only for
// `store: on-demand` (CachedStore) watchers.
Projected bool
}
CachedStoreConfig configures a CachedStore.
type ImmutableResource ¶
type ImmutableResource struct {
// contains filtered or unexported fields
}
ImmutableResource owns a resource graph shared by informer and store snapshots.
func NewImmutableResource ¶
func NewImmutableResource(resource map[string]any) (*ImmutableResource, error)
NewImmutableResource detaches the caller's graph before allowing shared ownership.
func (*ImmutableResource) ExtractKeys ¶
func (r *ImmutableResource) ExtractKeys(idx *indexer.Indexer) ([]string, error)
ExtractKeys evaluates configured index expressions without exposing the graph.
func (*ImmutableResource) GetName ¶
func (r *ImmutableResource) GetName() string
GetName returns the resource's name.
func (*ImmutableResource) GetNamespace ¶
func (r *ImmutableResource) GetNamespace() string
GetNamespace returns the resource's namespace.
func (*ImmutableResource) GetObjectMeta ¶
func (r *ImmutableResource) GetObjectMeta() metav1.Object
GetObjectMeta gives client-go detached metadata for indexing and version checks.
func (*ImmutableResource) GetResourceVersion ¶
func (r *ImmutableResource) GetResourceVersion() string
GetResourceVersion returns the resource's watch version.
func (*ImmutableResource) Matches ¶
func (r *ImmutableResource) Matches(matcher *indexer.FieldSelectorMatcher) (bool, error)
Matches evaluates a configured field selector without exposing the graph.
func (*ImmutableResource) ShareUnchanged ¶
func (r *ImmutableResource) ShareUnchanged(previous *ImmutableResource) *ImmutableResource
ShareUnchanged reuses the previous value or its body, preserving this watch version.
type ImmutableSnapshotProjection ¶
type ImmutableSnapshotProjection struct {
// contains filtered or unexported fields
}
ImmutableSnapshotProjection exposes only detached projections of a built-in snapshot read.
func ProjectImmutableSnapshotGet ¶
func ProjectImmutableSnapshotGet( ctx context.Context, snapshot stores.ReadSnapshot, keys ...string, ) (*ImmutableSnapshotProjection, bool, error)
ProjectImmutableSnapshotGet prepares a built-in keyed read without exposing its owned graph.
func ProjectImmutableSnapshotList ¶
func ProjectImmutableSnapshotList( ctx context.Context, snapshot stores.ReadSnapshot, ) (*ImmutableSnapshotProjection, bool, error)
ProjectImmutableSnapshotList prepares a built-in snapshot list without exposing its owned graph.
func (*ImmutableSnapshotProjection) Encode ¶
func (p *ImmutableSnapshotProjection) Encode() ([]byte, error)
Encode returns the exact JSON value without exposing the owned resource graph.
func (*ImmutableSnapshotProjection) Len ¶
func (p *ImmutableSnapshotProjection) Len() int
Len returns the number of resources in the exact projection.
func (*ImmutableSnapshotProjection) ProjectItems ¶
func (p *ImmutableSnapshotProjection) ProjectItems(elementType reflect.Type) ([]reflect.Value, error)
ProjectItems returns fresh typed values, or detached untyped values when elementType is nil.
type MemoryStore ¶
type MemoryStore struct {
// contains filtered or unexported fields
}
MemoryStore stores complete Kubernetes resources in memory using nested maps.
This provides O(1) lookup performance at the cost of higher memory usage. Resources are stored with their full specification after field filtering.
Supports non-unique index keys by storing multiple resources per composite key.
Thread-safe for concurrent access.
Resource values are owned by the store and detached before public reads.
func NewMemoryStore ¶
func NewMemoryStore(numKeys int) *MemoryStore
NewMemoryStore creates a new memory-backed store.
Parameters:
- numKeys: Number of index keys (must match indexer configuration)
func (*MemoryStore) AcquireSnapshotCommitFence ¶
func (s *MemoryStore) AcquireSnapshotCommitFence(ctx context.Context) (func(), error)
func (*MemoryStore) Add ¶
func (s *MemoryStore) Add(resource any, keys []string) error
Add inserts a resource, replacing the same namespace/name if already present. Distinct resources with the same index keys share the bucket. The slice is kept sorted by namespace/name for deterministic Get() results.
func (*MemoryStore) ChangesSince ¶
func (s *MemoryStore) ChangesSince(sequence uint64) (uint64, []stores.RevisionChange, bool)
ChangesSince returns retained mutations after sequence.
func (*MemoryStore) Clear ¶
func (s *MemoryStore) Clear() error
Clear removes all resources from the store.
func (*MemoryStore) Delete ¶
func (s *MemoryStore) Delete(namespace, name string, keys []string) error
Delete removes the single resource identified by namespace/name from its recorded bucket, leaving any siblings in place. The keys validate shape. Deleting a resource that is not present is a no-op.
The bucket's map entry is removed once its last resource is deleted — leaving an empty slice behind would leak a map key per churned bucket and still be walked by the prefix scan in Get.
func (*MemoryStore) ExactRevisionJournalSource ¶
func (s *MemoryStore) ExactRevisionJournalSource() stores.RevisionSource
func (*MemoryStore) Get ¶
func (s *MemoryStore) Get(keys ...string) ([]any, error)
Get retrieves all resources matching the provided index keys.
Returned resources are detached from store-owned values.
func (*MemoryStore) GetIdentity ¶
func (s *MemoryStore) GetIdentity(namespace, name string) (item any, found bool, err error)
GetIdentity returns one resource through the namespace/name location index.
func (*MemoryStore) GetRevision ¶
func (s *MemoryStore) GetRevision(keys ...string) stores.Revision
GetRevision returns the revision for one exact or prefix Get result.
func (*MemoryStore) GetSnapshot ¶
func (s *MemoryStore) GetSnapshot( keys ...string, ) (items []any, revision stores.Revision, sequence uint64, err error)
GetSnapshot binds a keyed result to its revision and journal sequence.
func (*MemoryStore) IdentityRevision ¶
func (s *MemoryStore) IdentityRevision(namespace, name string) stores.Revision
IdentityRevision returns the revision for one namespace/name identity.
func (*MemoryStore) IdentitySnapshot ¶
func (s *MemoryStore) IdentitySnapshot( namespace, name string, ) (item any, found bool, revision stores.Revision, sequence uint64, err error)
IdentitySnapshot binds an identity result to its revision and journal sequence.
func (*MemoryStore) List ¶
func (s *MemoryStore) List() ([]any, error)
List returns all resources in the store. Returns a fresh copy of all resources to avoid race conditions.
func (*MemoryStore) ListRevision ¶
func (s *MemoryStore) ListRevision() stores.Revision
ListRevision returns the revision for List results.
func (*MemoryStore) ListSnapshot ¶
func (s *MemoryStore) ListSnapshot() (items []any, sequence uint64, err error)
ListSnapshot returns a detached List result and its pinned journal sequence.
func (*MemoryStore) Pin ¶
func (s *MemoryStore) Pin() (stores.ReadSnapshot, error)
Pin returns the current immutable store root in constant time.
func (*MemoryStore) RevisionSource ¶
func (s *MemoryStore) RevisionSource() stores.RevisionSource
RevisionSource returns the store's stable cache identity.
func (*MemoryStore) Size ¶
func (s *MemoryStore) Size() int
Size returns the number of resources in the store.
func (*MemoryStore) Update ¶
func (s *MemoryStore) Update(resource any, keys []string) error
Update modifies an existing resource or adds it if it doesn't exist. A changed index key moves the namespace/name identity between buckets. The slice is kept sorted by namespace/name for deterministic Get() results.
type SnapshotBranch ¶
type SnapshotBranch struct {
// contains filtered or unexported fields
}
SnapshotBranch is an immutable selection of resource revisions from watched snapshots.
func NewSnapshotBranch ¶
func NewSnapshotBranch(numKeys int) *SnapshotBranch
NewSnapshotBranch creates an empty branch with an independent revision journal.
func (*SnapshotBranch) AcquireSnapshotCommitFence ¶
func (b *SnapshotBranch) AcquireSnapshotCommitFence(ctx context.Context) (func(), error)
AcquireSnapshotCommitFence needs no lock because a branch never changes.
func (*SnapshotBranch) Add ¶
func (b *SnapshotBranch) Add(any, []string) error
Add refuses in-place mutations.
func (*SnapshotBranch) Apply ¶
func (b *SnapshotBranch) Apply(changes []BranchChange) *SnapshotBranch
Apply creates a branch containing exactly the supplied changes.
func (*SnapshotBranch) Changes ¶
func (b *SnapshotBranch) Changes(ctx context.Context, snapshot stores.ReadSnapshot, indexBy []string) ([]BranchChange, error)
Changes captures replacements without fetching on-demand resource bodies.
func (*SnapshotBranch) ChangesBetween ¶
func (b *SnapshotBranch) ChangesBetween(from, through uint64) ([]stores.RevisionChange, bool)
ChangesBetween proves ancestry without treating sibling revisions as mutations.
func (*SnapshotBranch) ChangesFrom ¶
func (b *SnapshotBranch) ChangesFrom(ctx context.Context, previous stores.ReadSnapshot) ([]stores.RevisionChange, bool, error)
ChangesFrom compares selected roots without reading lazy resource bodies.
func (*SnapshotBranch) ChangesSince ¶
func (b *SnapshotBranch) ChangesSince(sequence uint64) (uint64, []stores.RevisionChange, bool)
ChangesSince returns exact changes only when sequence is an ancestor of this root.
func (*SnapshotBranch) Clear ¶
func (b *SnapshotBranch) Clear() error
Clear refuses in-place mutations.
func (*SnapshotBranch) Delete ¶
func (b *SnapshotBranch) Delete(string, string, []string) error
Delete refuses in-place mutations.
func (*SnapshotBranch) ExactRevisionJournalSource ¶
func (b *SnapshotBranch) ExactRevisionJournalSource() stores.RevisionSource
ExactRevisionJournalSource certifies the journal's source.
func (*SnapshotBranch) Get ¶
func (b *SnapshotBranch) Get(keys ...string) ([]any, error)
Get returns detached resources matching the configured index keys.
func (*SnapshotBranch) GetContext ¶
GetContext performs a cancellation-aware index lookup.
func (*SnapshotBranch) GetIdentity ¶
func (b *SnapshotBranch) GetIdentity(namespace, name string) (item any, found bool, err error)
GetIdentity returns a detached resource by namespace/name.
func (*SnapshotBranch) GetIdentityContext ¶
func (b *SnapshotBranch) GetIdentityContext(ctx context.Context, namespace, name string) (item any, found bool, err error)
GetIdentityContext performs a cancellation-aware identity lookup.
func (*SnapshotBranch) GetRevision ¶
func (b *SnapshotBranch) GetRevision(keys ...string) stores.Revision
GetRevision identifies a configured index lookup.
func (*SnapshotBranch) GetSnapshot ¶
func (b *SnapshotBranch) GetSnapshot(keys ...string) (items []any, revision stores.Revision, sequence uint64, err error)
GetSnapshot returns a detached lookup and its exact revision.
func (*SnapshotBranch) IdentityOrderSource ¶
func (b *SnapshotBranch) IdentityOrderSource() stores.RevisionSource
IdentityOrderSource certifies namespace/name ordering.
func (*SnapshotBranch) IdentityRevision ¶
func (b *SnapshotBranch) IdentityRevision(namespace, name string) stores.Revision
IdentityRevision identifies a namespace/name lookup, including absence.
func (*SnapshotBranch) IdentitySnapshot ¶
func (b *SnapshotBranch) IdentitySnapshot(namespace, name string) (item any, found bool, revision stores.Revision, sequence uint64, err error)
IdentitySnapshot returns a detached identity lookup and its exact revision.
func (*SnapshotBranch) List ¶
func (b *SnapshotBranch) List() ([]any, error)
List returns detached resources in namespace/name order.
func (*SnapshotBranch) ListContext ¶
func (b *SnapshotBranch) ListContext(ctx context.Context) ([]any, error)
ListContext performs a cancellation-aware collection read.
func (*SnapshotBranch) ListRevision ¶
func (b *SnapshotBranch) ListRevision() stores.Revision
ListRevision identifies this root's membership and values.
func (*SnapshotBranch) ListSnapshot ¶
func (b *SnapshotBranch) ListSnapshot() (items []any, sequence uint64, err error)
ListSnapshot returns a detached collection and its immutable watermark.
func (*SnapshotBranch) Pin ¶
func (b *SnapshotBranch) Pin() (stores.ReadSnapshot, error)
Pin returns this immutable root.
func (*SnapshotBranch) RevisionSource ¶
func (b *SnapshotBranch) RevisionSource() stores.RevisionSource
RevisionSource identifies this branch family.
func (*SnapshotBranch) Sequence ¶
func (b *SnapshotBranch) Sequence() uint64
Sequence returns this root's immutable watermark.
type StoreError ¶
StoreError represents a generic store operation error.
func (*StoreError) Error ¶
func (e *StoreError) Error() string
func (*StoreError) Unwrap ¶
func (e *StoreError) Unwrap() error