Help us shape the future of Go! Take the 2026 Go Developer Survey

inmemory

package
v0.30.0 Latest Latest
Warning

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

Go to latest
Published: Jul 31, 2026 License: AGPL-3.0 Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Driver

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

Driver implements Storer using an in-memory map.

func NewDriver

func NewDriver() *Driver

NewDriver creates a new in-memory storer.

func (*Driver) Ancestry

func (s *Driver) Ancestry(ctx context.Context, hash string) ([]*merkle.Node, error)

Ancestry returns the path from a node back to its root (node first, root last). See AncestryChain for a variant that also signals when the walk stopped at a missing parent.

func (*Driver) AncestryChain added in v0.4.0

func (s *Driver) AncestryChain(ctx context.Context, hash string) (*storage.Chain, error)

AncestryChain walks the parent chain starting at hash and returns a Chain describing whether the walk reached a real root, stopped at a parent that is not present in this store, or was guarded out of a cycle.

func (*Driver) AncestryChains added in v0.4.0

func (s *Driver) AncestryChains(ctx context.Context, hashes []string) (map[string]*storage.Chain, error)

AncestryChains walks each input hash's ancestry and returns a Chain per starting hash. The in-memory driver has O(1) Get, so the batched ent fast path offers no benefit here — this is a straightforward loop over AncestryChain.

func (*Driver) Close

func (s *Driver) Close() error

Close is a no-op for the in-memory storer.

func (*Driver) Get

func (s *Driver) Get(_ context.Context, hash string) (*merkle.Node, error)

Get retrieves a node by its hash.

func (*Driver) GetByParent

func (s *Driver) GetByParent(_ context.Context, parentHash *string) ([]*merkle.Node, error)

GetByParent retrieves all nodes that have the provided parent. This is useful for determining where branching occurs.

func (*Driver) List

func (s *Driver) List(_ context.Context) ([]*merkle.Node, error)

List returns all nodes in the store.

func (*Driver) LoadDag added in v0.5.0

func (s *Driver) LoadDag(ctx context.Context, hash string) (*merkle.Dag, error)

LoadDag takes a node hash and returns the branch containing that node: its ancestry up to the root and all descendants reachable from that node.

func (*Driver) Open added in v0.5.0

func (s *Driver) Open(_ context.Context) error

Open is a no-op for the in-memory storer.

func (*Driver) Put

func (s *Driver) Put(_ context.Context, node *merkle.Node) (bool, error)

Put stores a node. Returns true if the node was newly inserted, false if it already existed (no-op due to content-addressing).

Put stores a copy of the node so that storage-managed metadata (currently CreatedAt) can be assigned without mutating the caller.

Jump to

Keyboard shortcuts

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