[#189] sdk/netmap: Refactor PlacementPolicy type

Replace alias to v2 type PlacementPolicy with v2-compatible implementation.

Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
This commit is contained in:
Leonard Lyubich 2020-11-05 14:08:19 +03:00 committed by Alex Vanin
parent 6a29d9c360
commit 9f19139999
5 changed files with 209 additions and 13 deletions

View file

@ -196,11 +196,7 @@ func (f *Filter) SetOperation(op Operation) {
SetOp(op.ToV2())
}
// InnerFilters returns list of inner filters.
func (f *Filter) InnerFilters() []*Filter {
fs := (*netmap.Filter)(f).
GetFilters()
func filtersFromV2(fs []*netmap.Filter) []*Filter {
res := make([]*Filter, 0, len(fs))
for i := range fs {
@ -210,14 +206,26 @@ func (f *Filter) InnerFilters() []*Filter {
return res
}
// SetInnerFilters sets list of inner filters.
func (f *Filter) SetInnerFilters(fs ...*Filter) {
// InnerFilters returns list of inner filters.
func (f *Filter) InnerFilters() []*Filter {
return filtersFromV2(
(*netmap.Filter)(f).
GetFilters(),
)
}
func filtersToV2(fs []*Filter) []*netmap.Filter {
fsV2 := make([]*netmap.Filter, 0, len(fs))
for i := range fs {
fsV2 = append(fsV2, fs[i].ToV2())
}
(*netmap.Filter)(f).
SetFilters(fsV2)
return fsV2
}
// SetInnerFilters sets list of inner filters.
func (f *Filter) SetInnerFilters(fs ...*Filter) {
(*netmap.Filter)(f).
SetFilters(filtersToV2(fs))
}