forked from TrueCloudLab/frostfs-sdk-go
[#139] object: Implement function to init object creation
All NeoFS object must have at least container and owner identifiers. Add `InitCreation` function which write all required fields to the object instance. Extend `Object` type docs with all the constructors. Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
This commit is contained in:
parent
1c161956c8
commit
df5c69eea5
2 changed files with 48 additions and 3 deletions
|
@ -12,11 +12,32 @@ import (
|
|||
"github.com/nspcc-dev/neofs-sdk-go/version"
|
||||
)
|
||||
|
||||
// Object represents v2-compatible NeoFS object that provides
|
||||
// a convenient interface for working in isolation
|
||||
// from the internal structure of an object.
|
||||
// Object represents in-memory structure of the NeoFS object.
|
||||
// Type is compatible with NeoFS API V2 protocol.
|
||||
//
|
||||
// Instance can be created depending on scenario:
|
||||
// * InitCreation (an object to be placed in container);
|
||||
// * New (blank instance, usually needed for decoding);
|
||||
// * NewFromV2 (when working under NeoFS API V2 protocol).
|
||||
type Object object.Object
|
||||
|
||||
// RequiredFields contains the minimum set of object data that must be set
|
||||
// by the NeoFS user at the stage of creation.
|
||||
type RequiredFields struct {
|
||||
// Identifier of the NeoFS container associated with the object.
|
||||
Container cid.ID
|
||||
|
||||
// Object owner ID in the NeoFS system.
|
||||
Owner owner.ID
|
||||
}
|
||||
|
||||
// InitCreation initializes the object instance with minimum set of required fields.
|
||||
// Object is expected (but not required) to be blank. Object must not be nil.
|
||||
func InitCreation(dst *Object, rf RequiredFields) {
|
||||
dst.SetContainerID(&rf.Container)
|
||||
dst.SetOwnerID(&rf.Owner)
|
||||
}
|
||||
|
||||
// NewFromV2 wraps v2 Object message to Object.
|
||||
func NewFromV2(oV2 *object.Object) *Object {
|
||||
return (*Object)(oV2)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue