materializer

package
v0.21.4 Latest Latest
Warning

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

Go to latest
Published: Feb 23, 2026 License: MIT Imports: 13 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type FileRecordsReader added in v0.13.1

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

FileRecordsReader loads records from collection files on disk.

func NewFileRecordsReader added in v0.13.1

func NewFileRecordsReader() FileRecordsReader

func (FileRecordsReader) ReadRecords added in v0.13.1

func (r FileRecordsReader) ReadRecords(
	ctx context.Context,
	dbPath string,
	col *ingitdb.CollectionDef,
	yield func(ingitdb.RecordEntry) error,
) error

type FileViewDefReader added in v0.13.1

type FileViewDefReader struct{}

FileViewDefReader reads view definitions from .ingitdb-view.*.yaml files.

func (FileViewDefReader) ReadViewDefs added in v0.13.1

func (FileViewDefReader) ReadViewDefs(colDirPath string) (map[string]*ingitdb.ViewDef, error)

type FileViewWriter added in v0.13.1

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

FileViewWriter renders a view template and writes it to a file.

func NewFileViewWriter added in v0.13.1

func NewFileViewWriter() FileViewWriter

func (FileViewWriter) WriteView added in v0.13.1

func (w FileViewWriter) WriteView(
	ctx context.Context,
	col *ingitdb.CollectionDef,
	view *ingitdb.ViewDef,
	records []ingitdb.RecordEntry,
	outPath string,
) (bool, error)

type IncrementalMaterializer

type IncrementalMaterializer interface {
	UpdateViews(
		ctx context.Context,
		dbPath string,
		def *ingitdb.Definition,
		affected []datavalidator.AffectedRecord,
	) (*ingitdb.MaterializeResult, error)
}

IncrementalMaterializer rebuilds only views affected by specific changed records.

type SimpleViewBuilder added in v0.13.1

type SimpleViewBuilder struct {
	DefReader     ViewDefReader
	RecordsReader ingitdb.RecordsReader
	Writer        ViewWriter
}

SimpleViewBuilder materializes view outputs using injected dependencies.

func NewViewBuilder added in v0.13.1

func NewViewBuilder(recordsReader ingitdb.RecordsReader) SimpleViewBuilder

NewViewBuilder wires default view definition reader and file writer.

func (SimpleViewBuilder) BuildViews added in v0.13.1

type ViewAffectedChecker

type ViewAffectedChecker interface {
	IsAffected(col *ingitdb.CollectionDef, view *ingitdb.ViewDef, changed []datavalidator.AffectedRecord) bool
}

ViewAffectedChecker determines whether a view needs rebuilding given changed records.

type ViewBuilder

type ViewBuilder interface {
	BuildViews(
		ctx context.Context,
		dbPath string,
		col *ingitdb.CollectionDef,
		def *ingitdb.Definition,
	) (*ingitdb.MaterializeResult, error)
}

ViewBuilder orchestrates full materialisation of all views for one collection.

type ViewDefReader

type ViewDefReader interface {
	ReadViewDefs(colDirPath string) (map[string]*ingitdb.ViewDef, error)
}

ViewDefReader discovers and parses .ingitdb-view.*.yaml files.

type ViewRenderer

type ViewRenderer interface {
	RenderView(
		ctx context.Context,
		col *ingitdb.CollectionDef,
		view *ingitdb.ViewDef,
		reader ingitdb.RecordsReader,
		dbPath string,
	) (map[string][]byte, error) // key = format string ("md", "json")
}

ViewRenderer transforms records into rendered bytes per output format. Pure function; goroutine-safe.

type ViewWriter

type ViewWriter interface {
	WriteView(
		ctx context.Context,
		col *ingitdb.CollectionDef,
		view *ingitdb.ViewDef,
		records []ingitdb.RecordEntry,
		outPath string,
	) (bool, error)
}

ViewWriter renders a view and writes content to the file system. Separate from ViewBuilder so tests can capture output without I/O.

Jump to

Keyboard shortcuts

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