forked from TrueCloudLab/frostfs-api-go
[#198] sdk: Implement XHeader type
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
This commit is contained in:
parent
5f5e5ac5dd
commit
5452554b58
2 changed files with 72 additions and 0 deletions
47
pkg/xheader.go
Normal file
47
pkg/xheader.go
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
package pkg
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/nspcc-dev/neofs-api-go/v2/session"
|
||||||
|
)
|
||||||
|
|
||||||
|
// XHeader represents v2-compatible XHeader.
|
||||||
|
type XHeader session.XHeader
|
||||||
|
|
||||||
|
// NewXHeaderFromV2 wraps v2 XHeader message to XHeader.
|
||||||
|
func NewXHeaderFromV2(v *session.XHeader) *XHeader {
|
||||||
|
return (*XHeader)(v)
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewXHeader creates, initializes and returns blank XHeader instance.
|
||||||
|
func NewXHeader() *XHeader {
|
||||||
|
return NewXHeaderFromV2(new(session.XHeader))
|
||||||
|
}
|
||||||
|
|
||||||
|
// ToV2 converts XHeader to v2 XHeader message.
|
||||||
|
func (x *XHeader) ToV2() *session.XHeader {
|
||||||
|
return (*session.XHeader)(x)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Key returns key to X-Header.
|
||||||
|
func (x *XHeader) Key() string {
|
||||||
|
return (*session.XHeader)(x).
|
||||||
|
GetKey()
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetKey sets key to X-Header.
|
||||||
|
func (x *XHeader) SetKey(k string) {
|
||||||
|
(*session.XHeader)(x).
|
||||||
|
SetKey(k)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Value returns value of X-Header.
|
||||||
|
func (x *XHeader) Value() string {
|
||||||
|
return (*session.XHeader)(x).
|
||||||
|
GetValue()
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetValue sets value of X-Header.
|
||||||
|
func (x *XHeader) SetValue(k string) {
|
||||||
|
(*session.XHeader)(x).
|
||||||
|
SetValue(k)
|
||||||
|
}
|
25
pkg/xheader_test.go
Normal file
25
pkg/xheader_test.go
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
package pkg
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"github.com/stretchr/testify/require"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestXHeader(t *testing.T) {
|
||||||
|
x := NewXHeader()
|
||||||
|
|
||||||
|
key := "some key"
|
||||||
|
val := "some value"
|
||||||
|
|
||||||
|
x.SetKey(key)
|
||||||
|
x.SetValue(val)
|
||||||
|
|
||||||
|
require.Equal(t, key, x.Key())
|
||||||
|
require.Equal(t, val, x.Value())
|
||||||
|
|
||||||
|
xV2 := x.ToV2()
|
||||||
|
|
||||||
|
require.Equal(t, key, xV2.GetKey())
|
||||||
|
require.Equal(t, val, xV2.GetValue())
|
||||||
|
}
|
Loading…
Reference in a new issue