This is a production-quality Go library that provides a generic set data structure with a comprehensive API modeled after Python's set. It offers two implementations: a thread-unsafe (fast) version backed by a `map[T]struct{}` and a thread-safe version that wraps the unsafe one with a `sync.RWMutex`. The library supports all standard set operations (add, remove, contains, union, intersection, difference, symmetric difference, subset/superset, equality, clone, pop, filter, iteration) and includes JSON and BSON serialization. It uses Go generics (requires Go 1.18+) and provides build-tag-based optimizations for Go 1.21+ (e.g., `maps.Clone`, `Sorted` function). The codebase is clean, well-tested, and benchmarked, with active maintenance and a strong user base including Ethereum, Docker, and 1Password. The architecture is simple and modular: the `Set` interface defines the contract, `threadUnsafeSet` is the core implementation, and `threadSafeSet` adds concurrency safety. The `Iterator` type provides a cancellable channel-based iteration pattern. The `Elements` function offers a Go 1.23-style iterator. The library is a drop-in replacement for any Go project needing a set collection.
This repository is a comprehensive collection of iOS demonstration projects covering design patterns, data structures, Swift language features, iOS frameworks, and software engineering principles. Each demo is a self-contained Xcode project or Swift playground that illustrates a specific concept through working code. The collection serves as an educational resource for iOS developers learning various aspects of iOS development, from basic Swift syntax to advanced frameworks like Core Animation and Combine. While individual demos vary in complexity and polish, they collectively provide valuable reference implementations of common iOS development patterns.
This repository is a comprehensive collection of C++ solutions to LeetCode and competitive programming problems, organized by data structure and algorithm topic (e.g., Arrays, DP, Graph, Tree, Sliding Window, etc.). It serves as a study resource for interview preparation and algorithm practice. The codebase consists of standalone solution files, each solving a specific problem, with no shared library or build system. While the solutions are functional and cover a wide range of topics, they are tightly coupled to individual problem statements and lack modularity or test coverage, limiting reusability as independent components. The repository is actively maintained with frequent additions of new solutions.