{"action":"opened","issue":{"url":"https://api.github.com/repos/rust-qt/cpp_to_rust/issues/29","repository_url":"https://api.github.com/repos/rust-qt/cpp_to_rust","labels_url":"https://api.github.com/repos/rust-qt/cpp_to_rust/issues/29/labels{/name}","comments_url":"https://api.github.com/repos/rust-qt/cpp_to_rust/issues/29/comments","events_url":"https://api.github.com/repos/rust-qt/cpp_to_rust/issues/29/events","html_url":"https://github.com/rust-qt/cpp_to_rust/issues/29","id":180898012,"number":29,"title":"Allocation place preference","user":{"login":"Riateche","id":1740713,"avatar_url":"https://avatars.githubusercontent.com/u/1740713?v=3","gravatar_id":"","url":"https://api.github.com/users/Riateche","html_url":"https://github.com/Riateche","followers_url":"https://api.github.com/users/Riateche/followers","following_url":"https://api.github.com/users/Riateche/following{/other_user}","gists_url":"https://api.github.com/users/Riateche/gists{/gist_id}","starred_url":"https://api.github.com/users/Riateche/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Riateche/subscriptions","organizations_url":"https://api.github.com/users/Riateche/orgs","repos_url":"https://api.github.com/users/Riateche/repos","events_url":"https://api.github.com/users/Riateche/events{/privacy}","received_events_url":"https://api.github.com/users/Riateche/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/rust-qt/cpp_to_rust/labels/type:%20feature","name":"type: feature","color":"c2e0c6"}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/rust-qt/cpp_to_rust/milestones/2","html_url":"https://github.com/rust-qt/cpp_to_rust/milestones/Milestone%202","labels_url":"https://api.github.com/repos/rust-qt/cpp_to_rust/milestones/2/labels","id":2026181,"number":2,"title":"Milestone 2","description":"","creator":{"login":"Riateche","id":1740713,"avatar_url":"https://avatars.githubusercontent.com/u/1740713?v=3","gravatar_id":"","url":"https://api.github.com/users/Riateche","html_url":"https://github.com/Riateche","followers_url":"https://api.github.com/users/Riateche/followers","following_url":"https://api.github.com/users/Riateche/following{/other_user}","gists_url":"https://api.github.com/users/Riateche/gists{/gist_id}","starred_url":"https://api.github.com/users/Riateche/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Riateche/subscriptions","organizations_url":"https://api.github.com/users/Riateche/orgs","repos_url":"https://api.github.com/users/Riateche/repos","events_url":"https://api.github.com/users/Riateche/events{/privacy}","received_events_url":"https://api.github.com/users/Riateche/received_events","type":"User","site_admin":false},"open_issues":8,"closed_issues":1,"state":"open","created_at":"2016-09-24T17:55:20Z","updated_at":"2016-10-04T13:47:42Z","due_on":null,"closed_at":null},"comments":0,"created_at":"2016-10-04T13:47:42Z","updated_at":"2016-10-04T13:47:42Z","closed_at":null,"body":"Current state: class types can be allocated as Rust structs (`AsStruct` marker) or as boxed C++ pointers (`AsBox`). Allocation place can be selected by passing a marker as an argument to a method.\r\n\r\nPlanned changes:\r\n\r\nSome types may have one of allocation places blocked (`AsStruct` because it's unsafe or `AsBox` because it's useless). These types don't accept the markers as arguments at all. \r\n\r\nMost of other types should have a preferred allocation place. Default behavior can be accessed without a marker. For example, if `AsBox` method is preferred for a type, passing no marker results in `AsBox` placement, and passing `AsStruct` marker overrides it.\r\n\r\nThese preferences should be automatically detected based on C++ API. Lib spec should be able to override automatic detection for any type."}}
{"actor":{"display_login":"Riateche"}}