frostfs-api-go/pkg/object/range.go
Pavel Karpy 4e40f195bc [#302] pkg/object: Convert nil Range to nil message
Document that `Range.ToV2` method return `nil`
when called on `nil`. Document that `NewRangeFromV2`
function return `nil` when called on `nil`. Write
corresponding unit tests.

Signed-off-by: Pavel Karpy <carpawell@nspcc.ru>
2021-06-09 17:23:35 +03:00

51 lines
1.1 KiB
Go

package object
import (
"github.com/nspcc-dev/neofs-api-go/v2/object"
)
// Range represents v2-compatible object payload range.
type Range object.Range
// NewRangeFromV2 wraps v2 Range message to Range.
//
// Nil object.Range converts to nil.
func NewRangeFromV2(rV2 *object.Range) *Range {
return (*Range)(rV2)
}
// NewRange creates and initializes blank Range.
func NewRange() *Range {
return NewRangeFromV2(new(object.Range))
}
// ToV2 converts Range to v2 Range message.
//
// Nil Range converts to nil.
func (r *Range) ToV2() *object.Range {
return (*object.Range)(r)
}
// GetLength returns payload range size.
func (r *Range) GetLength() uint64 {
return (*object.Range)(r).
GetLength()
}
// SetLength sets payload range size.
func (r *Range) SetLength(v uint64) {
(*object.Range)(r).
SetLength(v)
}
// GetOffset sets payload range offset from start.
func (r *Range) GetOffset() uint64 {
return (*object.Range)(r).
GetOffset()
}
// SetOffset gets payload range offset from start.
func (r *Range) SetOffset(v uint64) {
(*object.Range)(r).
SetOffset(v)
}