{"action":"closed","issue":{"url":"https://api.github.com/repos/randomPoison/amethyst-editor-sync/issues/4","repository_url":"https://api.github.com/repos/randomPoison/amethyst-editor-sync","labels_url":"https://api.github.com/repos/randomPoison/amethyst-editor-sync/issues/4/labels{/name}","comments_url":"https://api.github.com/repos/randomPoison/amethyst-editor-sync/issues/4/comments","events_url":"https://api.github.com/repos/randomPoison/amethyst-editor-sync/issues/4/events","html_url":"https://github.com/randomPoison/amethyst-editor-sync/issues/4","id":358687671,"node_id":"MDU6SXNzdWUzNTg2ODc2NzE=","number":4,"title":"Setup bundle for easier, more configurable initialization","user":{"login":"randomPoison","id":1900829,"node_id":"MDQ6VXNlcjE5MDA4Mjk=","avatar_url":"https://avatars0.githubusercontent.com/u/1900829?v=4","gravatar_id":"","url":"https://api.github.com/users/randomPoison","html_url":"https://github.com/randomPoison","followers_url":"https://api.github.com/users/randomPoison/followers","following_url":"https://api.github.com/users/randomPoison/following{/other_user}","gists_url":"https://api.github.com/users/randomPoison/gists{/gist_id}","starred_url":"https://api.github.com/users/randomPoison/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/randomPoison/subscriptions","organizations_url":"https://api.github.com/users/randomPoison/orgs","repos_url":"https://api.github.com/users/randomPoison/repos","events_url":"https://api.github.com/users/randomPoison/events{/privacy}","received_events_url":"https://api.github.com/users/randomPoison/received_events","type":"User","site_admin":false},"labels":[{"id":1047035681,"node_id":"MDU6TGFiZWwxMDQ3MDM1Njgx","url":"https://api.github.com/repos/randomPoison/amethyst-editor-sync/labels/enhancement","name":"enhancement","color":"a2eeef","default":true},{"id":1047035683,"node_id":"MDU6TGFiZWwxMDQ3MDM1Njgz","url":"https://api.github.com/repos/randomPoison/amethyst-editor-sync/labels/good%20first%20issue","name":"good first issue","color":"7057ff","default":true},{"id":1047035682,"node_id":"MDU6TGFiZWwxMDQ3MDM1Njgy","url":"https://api.github.com/repos/randomPoison/amethyst-editor-sync/labels/help%20wanted","name":"help wanted","color":"008672","default":true}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2018-09-10T15:56:58Z","updated_at":"2018-09-17T03:12:13Z","closed_at":"2018-09-17T03:12:13Z","author_association":"OWNER","body":"#3 made setup for editor support easier by allowing users to register their component and resource types with `EditorSyncSystem` directly, removing the need manually register a separate system for each component/resource type. Unfortunately this change removed the ability to run serialization in parallel for each data type being serialized, so it would be good if we could take an alternate approach that allowed us to still register a separate system for each type while keeping the ergonomic improvements that #3 added.\r\n\r\nInstead of registering the types directly with `EditorSyncSystem`, we should instead setup a bundle builder. Users would build the bundle similar to how they currently register their types with `EditorSyncSystem`, and then the bundle can register all the systems with `GameDataBuilder`. This approach would still be ergonomic for the user, but would allow us to regain the ability to serialize the game state in parallel.\r\n\r\n## Notes\r\n\r\nOne ergonomic drawback is that users will also need to specify a system name for each type that they register. The signature for [`GameDataBuilder::with`](https://www.amethyst.rs/doc/master/doc/amethyst/struct.GameDataBuilder.html#method.with) requires a `&str` be used as the system name, which means we can't have the bundle generate a unique name for each system at runtime (which would be the preferred solution). As a first pass we can have users manually specify a name for each system, but later we should make a PR to amethyst to use a `Cow<'a, str>` for system names so that it can support runtime-generated `String` values for names."}}
{"actor":{"display_login":"randomPoison"}}