Anton Nikiforov
112a7c690f
All checks were successful
DCO action / DCO (pull_request) Successful in 1m44s
Vulncheck / Vulncheck (pull_request) Successful in 3m3s
Build / Build Components (1.21) (pull_request) Successful in 4m0s
Build / Build Components (1.22) (pull_request) Successful in 3m57s
Tests and linters / Staticcheck (pull_request) Successful in 4m46s
Tests and linters / gopls check (pull_request) Successful in 4m48s
Tests and linters / Lint (pull_request) Successful in 5m45s
Tests and linters / Tests (1.21) (pull_request) Successful in 8m57s
Tests and linters / Tests with -race (pull_request) Successful in 9m10s
Tests and linters / Tests (1.22) (pull_request) Successful in 9m20s
Signed-off-by: Anton Nikiforov <an.nikiforov@yadro.com>
25 lines
527 B
Go
25 lines
527 B
Go
package util
|
|
|
|
import (
|
|
"bytes"
|
|
|
|
objectSDK "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/object"
|
|
)
|
|
|
|
// MergeECInfo ignores conflicts and rewrites `to` with non empty values
|
|
// from `from`.
|
|
func MergeECInfo(from, to *objectSDK.ECInfo) *objectSDK.ECInfo {
|
|
for _, fchunk := range from.Chunks {
|
|
add := true
|
|
for _, tchunk := range to.Chunks {
|
|
if bytes.Equal(tchunk.ID.GetValue(), fchunk.ID.GetValue()) {
|
|
add = false
|
|
break
|
|
}
|
|
}
|
|
if add {
|
|
to.AddChunk(*objectSDK.NewECChunkFromV2(&fchunk))
|
|
}
|
|
}
|
|
return to
|
|
}
|