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

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

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions