package netmap import ( "github.com/nspcc-dev/neofs-api-go/v2/netmap" ) // Clause is an enumeration of selector modifiers // that shows how the node set will be formed. type Clause uint32 const ( ClauseUnspecified Clause = iota // ClauseSame is a selector modifier to select only nodes having the same value of bucket attribute. ClauseSame // ClauseDistinct is a selector modifier to select nodes having different values of bucket attribute. ClauseDistinct ) // ClauseFromV2 converts v2 Clause to Clause. func ClauseFromV2(c netmap.Clause) Clause { switch c { default: return ClauseUnspecified case netmap.Same: return ClauseSame case netmap.Distinct: return ClauseDistinct } } // ToV2 converts Clause to v2 Clause. func (c Clause) ToV2() netmap.Clause { switch c { default: return netmap.UnspecifiedClause case ClauseDistinct: return netmap.Distinct case ClauseSame: return netmap.Same } } // String returns string representation of Clause. // // String mapping: // * ClauseDistinct: DISTINCT; // * ClauseSame: SAME; // * ClauseUnspecified, default: CLAUSE_UNSPECIFIED. func (c Clause) String() string { return c.ToV2().String() } // FromString parses Clause from a string representation. // It is a reverse action to String(). // // Returns true if s was parsed successfully. func (c *Clause) FromString(s string) bool { var g netmap.Clause ok := g.FromString(s) if ok { *c = ClauseFromV2(g) } return ok }