[#30] core/object: Implement raw object

Define RawObject type that inherits RawObject from NeoFS SDK. Implement
converters.

Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
This commit is contained in:
Leonard Lyubich 2020-09-16 15:03:57 +03:00 committed by Alex Vanin
parent 9c1c023f05
commit 8366c146d7

54
pkg/core/object/raw.go Normal file
View file

@ -0,0 +1,54 @@
package object
import (
"github.com/nspcc-dev/neofs-api-go/pkg/object"
objectV2 "github.com/nspcc-dev/neofs-api-go/v2/object"
)
// RawObject represents the raw NeoFS object.
//
// RawObject inherits RawObject type from NeoFS SDK.
// It is used to implement some useful methods and functions
// for convenient processing of a raw object by a node.
type RawObject struct {
*object.RawObject
}
// NewRawFromV2 constructs RawObject instance from v2 Object message.
func NewRawFromV2(obj *objectV2.Object) *RawObject {
return &RawObject{
RawObject: object.NewRawFromV2(obj),
}
}
// NewRawFrom constructs RawObject instance from NeoFS SDK RawObject.
func NewRawFrom(obj *object.RawObject) *RawObject {
return &RawObject{
RawObject: obj,
}
}
// NewRaw constructs blank RawObject instance.
func NewRaw() *RawObject {
return NewRawFrom(object.NewRaw())
}
// SDK converts RawObject to NeoFS SDK RawObject instance.
func (o *RawObject) SDK() *object.RawObject {
if o != nil {
return o.RawObject
}
return nil
}
// Object converts RawObject to read-only Object instance.
func (o *RawObject) Object() *Object {
if o != nil {
return &Object{
Object: o.RawObject.Object(),
}
}
return nil
}