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
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
func (b SimpleViewBuilder) BuildViews( ctx context.Context, dbPath string, col *ingitdb.CollectionDef, def *ingitdb.Definition, ) (*ingitdb.MaterializeResult, error)
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.