Documentation
¶
Overview ¶
Package differ provides functionality for comparing catalogs and detecting changes.
Index ¶
- type AuthorChangeset
- type AuthorUpdate
- type ChangeType
- type Changeset
- type ChangesetSummary
- type Differ
- func (diff *Differ) Authors(existing, updated []catalogs.Author) *AuthorChangeset
- func (diff *Differ) Catalogs(existing, updated catalogs.Reader) *Changeset
- func (diff *Differ) Models(existing, updated []*catalogs.Model) *ModelChangeset
- func (diff *Differ) Providers(existing, updated []catalogs.Provider) *ProviderChangeset
- type FieldChange
- type ModelChange
- type ModelChangeset
- type ModelUpdate
- type Option
- type ProviderChangeset
- type ProviderUpdate
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AuthorChangeset ¶
type AuthorChangeset struct {
Added []catalogs.Author // New authors
Updated []AuthorUpdate // Updated authors
Removed []catalogs.Author // Removed authors
}
AuthorChangeset represents changes to authors.
func (*AuthorChangeset) HasChanges ¶
func (a *AuthorChangeset) HasChanges() bool
HasChanges returns true if the author changeset contains any changes.
func (*AuthorChangeset) Print ¶
func (a *AuthorChangeset) Print()
Print outputs author changes in a human-readable format.
type AuthorUpdate ¶
type AuthorUpdate struct {
ID catalogs.AuthorID
Existing catalogs.Author // Current author
New catalogs.Author // New author
Changes []FieldChange // Detailed list of field changes
}
AuthorUpdate represents an update to an existing author.
type ChangeType ¶
type ChangeType string
ChangeType represents the type of change.
const ( // ChangeTypeAdd introduces a catalog value. ChangeTypeAdd ChangeType = "add" // ChangeTypeUpdate modifies a catalog value. ChangeTypeUpdate ChangeType = "update" // ChangeTypeRemove deletes a catalog value. ChangeTypeRemove ChangeType = "remove" )
type Changeset ¶
type Changeset struct {
Models *ModelChangeset // Model changes
Providers *ProviderChangeset // Provider changes
Authors *AuthorChangeset // Author changes
Summary ChangesetSummary // Summary statistics
}
Changeset represents all changes between two catalogs.
func (*Changeset) HasChanges ¶
HasChanges returns true if the changeset contains any changes.
type ChangesetSummary ¶
type ChangesetSummary struct {
ModelsAdded int
ModelsUpdated int
ModelsRemoved int
ProvidersAdded int
ProvidersUpdated int
ProvidersRemoved int
AuthorsAdded int
AuthorsUpdated int
AuthorsRemoved int
TotalChanges int
}
ChangesetSummary provides summary statistics for a changeset.
type Differ ¶
type Differ struct {
// contains filtered or unexported fields
}
Differ detects changes between catalog resources.
Differ is concrete because the package has one implementation. Its algorithm inputs remain the narrow catalogs.Reader interface where substitutability is useful.
func (*Differ) Authors ¶
func (diff *Differ) Authors(existing, updated []catalogs.Author) *AuthorChangeset
Authors compares two sets of authors and returns changes.
func (*Differ) Catalogs ¶
Catalogs compares two complete catalogs Both catalogs only need to be readable.
type FieldChange ¶
type FieldChange struct {
Path string // Field path (e.g., "pricing.input")
OldValue string // Previous value (string representation)
NewValue string // New value (string representation)
Type ChangeType // Type of change
Source sources.ID // Source that caused the change (for provenance)
}
FieldChange represents a change to a specific field.
type ModelChange ¶ added in v0.1.0
type ModelChange struct {
ProviderID catalogs.ProviderID // Provider scope for this model change, when known
Model catalogs.Model // Added or removed model
}
ModelChange represents a provider-scoped model add or remove.
type ModelChangeset ¶
type ModelChangeset struct {
Added []catalogs.Model // New models
AddedScoped []ModelChange // Provider-scoped new models, when available
Updated []ModelUpdate // Updated models
Removed []catalogs.Model // Removed models
RemovedScoped []ModelChange // Provider-scoped removed models, when available
}
ModelChangeset represents changes to models.
func (*ModelChangeset) HasChanges ¶
func (m *ModelChangeset) HasChanges() bool
HasChanges returns true if the model changeset contains any changes.
func (*ModelChangeset) Print ¶
func (m *ModelChangeset) Print()
Print outputs model changes in a human-readable format.
type ModelUpdate ¶
type ModelUpdate struct {
ID string
ProviderID catalogs.ProviderID // Provider scope for this model update, when known
Existing catalogs.Model // Current model
New catalogs.Model // New model
Changes []FieldChange // Detailed list of field changes
}
ModelUpdate represents an update to an existing model.
type Option ¶
type Option func(*Differ)
Option is a functional option for configuring Differ.
func WithDeepComparison ¶
WithDeepComparison enables/disables deep structural comparison.
func WithIgnoredFields ¶
WithIgnoredFields sets fields to ignore during comparison.
func WithTracking ¶
WithTracking enables provenance tracking in diffs.
type ProviderChangeset ¶
type ProviderChangeset struct {
Added []catalogs.Provider // New providers
Updated []ProviderUpdate // Updated providers
Removed []catalogs.Provider // Removed providers
}
ProviderChangeset represents changes to providers.
func (*ProviderChangeset) HasChanges ¶
func (p *ProviderChangeset) HasChanges() bool
HasChanges returns true if the provider changeset contains any changes.
func (*ProviderChangeset) Print ¶
func (p *ProviderChangeset) Print()
Print outputs provider changes in a human-readable format.
type ProviderUpdate ¶
type ProviderUpdate struct {
ID catalogs.ProviderID
Existing catalogs.Provider // Current provider
New catalogs.Provider // New provider
Changes []FieldChange // Detailed list of field changes
}
ProviderUpdate represents an update to an existing provider.