{"@context":"https://w3id.org/codemeta/3.0","@type":"SoftwareSourceCode","identifier":"pkg:golang/github.com/mcvoid/sets","name":"github.com/mcvoid/sets","description":"A simple library for managing slices and maps as sets.\n\nAll OrderedX functions (eg: OrderedUnion) work with slices\nor any type based on a slice as long as the slice elements are\ncomparable. These slices are treated as ordered sets.\n\nFor slices, all operations here automatically remove duplicates and\npreserve the order of the elements in the original slice.\nWhenever possible, they also seek to avoid allocations.\nSo they preserve nilness, they don't make a new set out of a slice\nwhich already adheres to the set property, etc. All operations are\nvariadic and applied left-to-right (index 0 and up).\n\nIt's \"naive\" in that it has no tricks to speed up performance.\nIt will deliberately sacrifice cycles to favor avoiding\nan allocation, for example.\n\nAll UnorderedX functions (eg: UnorderedUnion) work with maps and\nany type based on a map. Since all map keys are already comparable,\nthere is no restriction to their use. These maps are treated as unordered\nsets.\n\nFor maps, no order is preserved and the operations are faster.\nAllocations are still avoided. Map keys are treated as the set elements,\nnot their values. As such, values found in duplicate keys will be clobbered.\nThis mimics the conventional use of maps as ad-hoc sets, so they should\nwork in the same way. Whenever possible, the values for the first given\nset will be in the output.\n\nAs \"nil\" is common nomenclature for the empty set ({}, or 0), nil\nis accepted as input to mean an empty slice or empty map, and\nempty set results such as the intersection of disjoint sets are\nsimilarly returned as nil.\n\nAll sets are treated as if immutable - no modifications will occur\non any of these operations, and instead copies will be returned.","version":"v1.1.0","softwareVersion":"v1.1.0","license":"https://spdx.org/licenses/MIT","codeRepository":"https://github.com/mcvoid/sets","issueTracker":"https://github.com/mcvoid/sets/issues","url":"https://github.com/mcvoid/sets","programmingLanguage":{"@type":"ComputerLanguage","name":"Go"},"dateCreated":"2025-11-01","dateModified":"2025-11-01","datePublished":"2025-11-01","copyrightYear":2025,"downloadUrl":"https://proxy.golang.org/github.com/mcvoid/sets/@v/v1.1.0.zip","softwareHelp":{"@type":"WebSite","url":"https://pkg.go.dev/github.com/mcvoid/sets#section-documentation"},"applicationCategory":"go","runtimePlatform":"go","developmentStatus":"active","sameAs":["https://pkg.go.dev/github.com/mcvoid/sets"]}