// Code generated by gen-set I64 int64; DO NOT EDIT. // Copyright (C) 2015-2018 Nexedi SA and Contributors. // Kirill Smelkov <kirr@nexedi.com> // // This program is free software: you can Use, Study, Modify and Redistribute // it under the terms of the GNU General Public License version 3, or (at your // option) any later version, as published by the Free Software Foundation. // // You can also Link and Combine this program with other software covered by // the terms of any of the Free Software licenses or any of the Open Source // Initiative approved licenses and Convey the resulting work. Corresponding // source of such a combination shall include the source code for all other // software used. // // This program is distributed WITHOUT ANY WARRANTY; without even the implied // warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. // // See COPYING file for full licensing terms. // See https://www.nexedi.com/licensing for rationale and options. package main // SetI64 is a set of int64. type SetI64 map[int64]struct{} // Add adds v to the set. func (s SetI64) Add(v int64) { s[v] = struct{}{} } // Has checks whether the set contains v. func (s SetI64) Has(v int64) bool { _, ok := s[v] return ok } // Update adds t values to s. func (s SetI64) Update(t SetI64) { for v := range t { s.Add(v) } } // Elements returns all elements of set as slice. func (s SetI64) Elements() []int64 { ev := make([]int64, len(s)) i := 0 for e := range s { ev[i] = e i++ } return ev }