{"action":"created","issue":{"url":"https://api.github.com/repos/google/built_collection.dart/issues/76","repository_url":"https://api.github.com/repos/google/built_collection.dart","labels_url":"https://api.github.com/repos/google/built_collection.dart/issues/76/labels{/name}","comments_url":"https://api.github.com/repos/google/built_collection.dart/issues/76/comments","events_url":"https://api.github.com/repos/google/built_collection.dart/issues/76/events","html_url":"https://github.com/google/built_collection.dart/issues/76","id":187895048,"number":76,"title":"Set/Map/Multimap: Custom equality?","user":{"login":"matanlurey","id":168174,"avatar_url":"https://avatars2.githubusercontent.com/u/168174?v=4","gravatar_id":"","url":"https://api.github.com/users/matanlurey","html_url":"https://github.com/matanlurey","followers_url":"https://api.github.com/users/matanlurey/followers","following_url":"https://api.github.com/users/matanlurey/following{/other_user}","gists_url":"https://api.github.com/users/matanlurey/gists{/gist_id}","starred_url":"https://api.github.com/users/matanlurey/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/matanlurey/subscriptions","organizations_url":"https://api.github.com/users/matanlurey/orgs","repos_url":"https://api.github.com/users/matanlurey/repos","events_url":"https://api.github.com/users/matanlurey/events{/privacy}","received_events_url":"https://api.github.com/users/matanlurey/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":7,"created_at":"2016-11-08T03:47:39Z","updated_at":"2017-11-20T16:36:35Z","closed_at":null,"author_association":"NONE","body":"Any concern about support `package:collection`'s `Equality` class, optionally?\r\n\r\nI have some use cases where I'd like to use BuiltCollection(s), but the keys I don't have control over and don't really want to write wrapper objects just to change the identity.\r\n\r\nIf you're OK, I can send PRs. :)"},"comment":{"url":"https://api.github.com/repos/google/built_collection.dart/issues/comments/345752024","html_url":"https://github.com/google/built_collection.dart/issues/76#issuecomment-345752024","issue_url":"https://api.github.com/repos/google/built_collection.dart/issues/76","id":345752024,"user":{"login":"davidmorgan","id":5536920,"avatar_url":"https://avatars3.githubusercontent.com/u/5536920?v=4","gravatar_id":"","url":"https://api.github.com/users/davidmorgan","html_url":"https://github.com/davidmorgan","followers_url":"https://api.github.com/users/davidmorgan/followers","following_url":"https://api.github.com/users/davidmorgan/following{/other_user}","gists_url":"https://api.github.com/users/davidmorgan/gists{/gist_id}","starred_url":"https://api.github.com/users/davidmorgan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/davidmorgan/subscriptions","organizations_url":"https://api.github.com/users/davidmorgan/orgs","repos_url":"https://api.github.com/users/davidmorgan/repos","events_url":"https://api.github.com/users/davidmorgan/events{/privacy}","received_events_url":"https://api.github.com/users/davidmorgan/received_events","type":"User","site_admin":false},"created_at":"2017-11-20T16:36:35Z","updated_at":"2017-11-20T16:36:35Z","author_association":"CONTRIBUTOR","body":"Thanks Philipp! The code looks good so far.\r\n\r\nRe: how to design the API; I still quite like the builder-based approach in my update from Nov 10 2016. this means we don't need a new constructor, but instead you would do\r\n\r\n```\r\nnew BuiltSet<int>.build((b) => b\r\n    ..base = () => new SplayTreeSet()\r\n    ..addAll([...]));\r\n```\r\n\r\nwe could then defer whether to add new constructors. What do you think?\r\n\r\nFor dart 2 we're going to need to add new constructors, to differentiate new BuiltSet(Iterable<E>) from new BuiltSet.from(Iterable). This will be a breaking change. So we could potentially do more breaking changes at the same time if that helps.\r\n\r\nTo your specific questions:\r\n\r\n1. I think fixed makes sense, unless we decide that using the builder to set it is a better API, in which case it will need to be settable in the builder :)\r\n2. I think it should be only changed explicitly.\r\n3. That's tough. I don't have a strong opinion from a design point of view. From an _implementation_ point of view, I don't think there's a good way to compare/hash based on the `createSet` function ... so the path of least resistance is to leave operator== as it is.\r\n4. Have to let Matan answer that one :) ... I guess the flexibility it adds is that you could conceivably return a different implementation based on the properties of the iterable; I don't really see that being a big benefit."}}
{"actor":{"display_login":"davidmorgan"}}