{"id":24083340,"url":"https://github.com/mitranim/gord","last_synced_at":"2025-02-27T01:17:19.783Z","repository":{"id":57564080,"uuid":"334677951","full_name":"mitranim/gord","owner":"mitranim","description":"Simple ordered sets for Go.","archived":false,"fork":false,"pushed_at":"2021-10-13T16:34:33.000Z","size":12,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-24T06:44:38.641Z","etag":null,"topics":["golang","ordered-set"],"latest_commit_sha":null,"homepage":"https://pkg.go.dev/github.com/mitranim/gord","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mitranim.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-01-31T14:42:51.000Z","updated_at":"2023-08-01T09:09:35.000Z","dependencies_parsed_at":"2022-09-16T13:30:49.161Z","dependency_job_id":null,"html_url":"https://github.com/mitranim/gord","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mitranim%2Fgord","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mitranim%2Fgord/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mitranim%2Fgord/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mitranim%2Fgord/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mitranim","download_url":"https://codeload.github.com/mitranim/gord/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240959115,"owners_count":19884911,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["golang","ordered-set"],"created_at":"2025-01-09T23:56:25.643Z","updated_at":"2025-02-27T01:17:19.766Z","avatar_url":"https://github.com/mitranim.png","language":"Go","readme":"## Overview\n\n**Go** **ord**ered sets.\n\nFeatures:\n\n* `LinkedSet`: ordered set with near-constant-time (O(1)) performance for inserting, deleting, and moving elements. Backed by a map and a doubly-linked list.\n\n* `SyncLinkedSet`: concurrency-safe `LinkedSet`, slightly slower.\n\n* `SliceSet`: slice-backed ordered set. Simpler and faster for small sets, extreme performance degradation for large sets.\n\n* All implementations share a common interface.\n\n* Small with no dependencies.\n\nSee the documentation at https://godoc.org/github.com/mitranim/gord.\n\nExample:\n\n```go\nimport \"github.com/mitranim/gord\"\n\nset := gord.NewOrdSet()\n\n// Note the order.\nset.Add(20)\nset.Add(10)\nset.Add(30)\n\n// Redundant and doesn't change the order.\nset.Add(30)\nset.Add(10)\nset.Add(20)\n\nset.Has(10)    // true\nset.Has(40)    // false\nset.Values()   // []interface{}{20, 10, 30}\n\nset.PopFirst() // 20\nset.PopLast()  // 30\nset.Values()   // []interface{}{10}\n```\n\n## Known Limitations\n\n* Has room for performance optimizations.\n\n* `LinkedSet` and `SyncLinkedSet` don't expose a way to iterate over elements without allocating a slice via `.Values()`. Can be rectified on demand.\n\n## License\n\nhttps://unlicense.org\n\n## Misc\n\nI'm receptive to suggestions. If this library _almost_ satisfies you but needs changes, open an issue or chat me up. Contacts: https://mitranim.com/#contacts\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmitranim%2Fgord","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmitranim%2Fgord","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmitranim%2Fgord/lists"}