diff --git a/pkg/object/type.go b/pkg/object/type.go new file mode 100644 index 00000000..afcbdf28 --- /dev/null +++ b/pkg/object/type.go @@ -0,0 +1,35 @@ +package object + +import ( + "github.com/nspcc-dev/neofs-api-go/v2/object" +) + +type Type uint8 + +const ( + TypeRegular Type = iota + TypeTombstone + TypeStorageGroup +) + +func (t Type) ToV2() object.Type { + switch t { + case TypeTombstone: + return object.TypeTombstone + case TypeStorageGroup: + return object.TypeStorageGroup + default: + return object.TypeRegular + } +} + +func TypeFromV2(t object.Type) Type { + switch t { + case object.TypeTombstone: + return TypeTombstone + case object.TypeStorageGroup: + return TypeStorageGroup + default: + return TypeRegular + } +} diff --git a/pkg/object/type_test.go b/pkg/object/type_test.go new file mode 100644 index 00000000..82f8bf22 --- /dev/null +++ b/pkg/object/type_test.go @@ -0,0 +1,36 @@ +package object + +import ( + "testing" + + "github.com/nspcc-dev/neofs-api-go/v2/object" + "github.com/stretchr/testify/require" +) + +func TestType_ToV2(t *testing.T) { + typs := []struct { + t Type + t2 object.Type + }{ + { + t: TypeRegular, + t2: object.TypeRegular, + }, + { + t: TypeTombstone, + t2: object.TypeTombstone, + }, + { + t: TypeStorageGroup, + t2: object.TypeStorageGroup, + }, + } + + for _, item := range typs { + t2 := item.t.ToV2() + + require.Equal(t, item.t2, t2) + + require.Equal(t, item.t, TypeFromV2(item.t2)) + } +}