mirror of
https://github.com/kopia/kopia.git
synced 2026-05-18 11:44:36 -04:00
This is useful when backing up directories that have giant files aligned at MiB boundary, such as VM disk backups, etc.
27 lines
787 B
Go
27 lines
787 B
Go
package policy
|
|
|
|
import (
|
|
"github.com/kopia/kopia/fs"
|
|
"github.com/kopia/kopia/snapshot"
|
|
)
|
|
|
|
// SplitterPolicy specifies compression policy.
|
|
type SplitterPolicy struct {
|
|
Algorithm string `json:"algorithm,omitempty"`
|
|
}
|
|
|
|
// SplitterPolicyDefinition specifies which policy definition provided the value of a particular field.
|
|
type SplitterPolicyDefinition struct {
|
|
Algorithm snapshot.SourceInfo `json:"algorithm,omitempty"`
|
|
}
|
|
|
|
// SplitterForFile returns splitter algorithm.
|
|
func (p *SplitterPolicy) SplitterForFile(_ fs.Entry) string {
|
|
return p.Algorithm
|
|
}
|
|
|
|
// Merge applies default values from the provided policy.
|
|
func (p *SplitterPolicy) Merge(src SplitterPolicy, def *SplitterPolicyDefinition, si snapshot.SourceInfo) {
|
|
mergeString(&p.Algorithm, src.Algorithm, &def.Algorithm, si)
|
|
}
|