loader

package
v0.0.0-...-6d592e1 Latest Latest
Warning

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

Go to latest
Published: Nov 6, 2022 License: Apache-2.0 Imports: 4 Imported by: 1

Documentation

Overview

package loader manages loading from multiple sources

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrWatcherStopped is returned when loader watcher has been stopped
	ErrWatcherStopped = errors.New("watcher stopped")
)

Functions

This section is empty.

Types

type Loader

type Loader interface {
	// Stop the loader
	Close() error
	// Load the sources
	Load(sources ...source.Source) error
	// A Snapshot of loaded config
	Snapshot() (*Snapshot, error)
	// Force sync of sources
	Sync() error
	// Watch for changes
	Watch(path ...string) (Watcher, error)
	// Name of loader
	String() string
}

Loader manages loading sources

type Option

type Option func(o *Options)

type Options

type Options struct {
	Reader reader.Reader
	Source []source.Source

	// for alternative data
	Context context.Context

	WithWatcherDisabled bool
}

type Snapshot

type Snapshot struct {
	// The merged ChangeSet
	ChangeSet *source.ChangeSet
	// Deterministic and comparable version of the snapshot
	Version string
}

Snapshot is a merged ChangeSet

func Copy

func Copy(s *Snapshot) *Snapshot

Copy snapshot

type Watcher

type Watcher interface {
	// First call to next may return the current Snapshot
	// If you are watching a path then only the data from
	// that path is returned.
	Next() (*Snapshot, error)
	// Stop watching for changes
	Stop() error
}

Watcher lets you watch sources and returns a merged ChangeSet

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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