package putsvc import ( "context" "git.frostfs.info/TrueCloudLab/frostfs-node/pkg/core/client" "git.frostfs.info/TrueCloudLab/frostfs-node/pkg/services/object/util" "git.frostfs.info/TrueCloudLab/frostfs-node/pkg/services/object_manager/placement" containerSDK "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/container" objectSDK "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/object" ) type PutInitPrm struct { common *util.CommonPrm hdr *objectSDK.Object cnr containerSDK.Container traverseOpts []placement.Option relay func(context.Context, client.NodeInfo, client.MultiAddressClient) error } type PutChunkPrm struct { chunk []byte } func (p *PutInitPrm) WithCommonPrm(v *util.CommonPrm) *PutInitPrm { if p != nil { p.common = v } return p } func (p *PutInitPrm) WithObject(v *objectSDK.Object) *PutInitPrm { if p != nil { p.hdr = v } return p } func (p *PutInitPrm) WithCopyNumbers(v []uint32) *PutInitPrm { if p != nil && len(v) > 0 { p.traverseOpts = append(p.traverseOpts, placement.WithCopyNumbers(v)) } return p } func (p *PutInitPrm) WithRelay(f func(context.Context, client.NodeInfo, client.MultiAddressClient) error) *PutInitPrm { if p != nil { p.relay = f } return p } func (p *PutChunkPrm) WithChunk(v []byte) *PutChunkPrm { if p != nil { p.chunk = v } return p }