Skip to content
This repository was archived by the owner on Dec 27, 2024. It is now read-only.
This repository was archived by the owner on Dec 27, 2024. It is now read-only.

Add CopyTo method #432

@smallhive

Description

@smallhive

Is your feature request related to a problem? Please describe.

In SDK we have task to add CopyTo method for some structures. The method makes a deep copy of the structure.

SDK wraps many api-go structures inside it and modifies them directly. Sometimes we have such situation

// "github.com/nspcc-dev/neofs-api-go/v2/container"
type Container struct {
	v2 container.Container
}

or even such one

// "github.com/nspcc-dev/neofs-api-go/v2/object"
type Object object.Object

Object type is just a synonym for api-go type, but has a lot of methods. Making a deep copy of this type is possible. Although having such CopyTo method in the original api-go type would be very helpful.

Fortunately for this type all internal fields are available via getters/setters and making CopyTo in SDK is just a question of time.

Describe the solution you'd like

Implement CopyTo method directly in api-go repo. Right now in SDK implemented deep copy for the next strcutures:

github.com/nspcc-dev/neofs-api-go/v2/refs

  • refs.ObjectID
  • refs.Signature
  • refs.ContainerID
  • refs.Checksum

github.com/nspcc-dev/neofs-api-go/v2/session

  • session.Token

github.com/nspcc-dev/neofs-api-go/v2/object

  • object.SplitHeader
  • object.Header

github.com/nspcc-dev/neofs-api-go/v2/netmap

  • netmap.Filter
  • netmap.Selector
  • netmap.Replica

Additional context

SDK doesn't mind to share/give/move existing code from it to neo-go repo

Metadata

Metadata

Assignees

No one assigned

    Labels

    I2Regular impactS3Minimally significantU4Nothing urgentenhancementImproving existing functionality

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions