{"action":"created","issue":{"url":"https://api.github.com/repos/rust-rfcs/unsafe-code-guidelines/issues/11","repository_url":"https://api.github.com/repos/rust-rfcs/unsafe-code-guidelines","labels_url":"https://api.github.com/repos/rust-rfcs/unsafe-code-guidelines/issues/11/labels{/name}","comments_url":"https://api.github.com/repos/rust-rfcs/unsafe-code-guidelines/issues/11/comments","events_url":"https://api.github.com/repos/rust-rfcs/unsafe-code-guidelines/issues/11/events","html_url":"https://github.com/rust-rfcs/unsafe-code-guidelines/issues/11","id":355678006,"node_id":"MDU6SXNzdWUzNTU2NzgwMDY=","number":11,"title":" Representation of structs","user":{"login":"nikomatsakis","id":155238,"node_id":"MDQ6VXNlcjE1NTIzOA==","avatar_url":"https://avatars0.githubusercontent.com/u/155238?v=4","gravatar_id":"","url":"https://api.github.com/users/nikomatsakis","html_url":"https://github.com/nikomatsakis","followers_url":"https://api.github.com/users/nikomatsakis/followers","following_url":"https://api.github.com/users/nikomatsakis/following{/other_user}","gists_url":"https://api.github.com/users/nikomatsakis/gists{/gist_id}","starred_url":"https://api.github.com/users/nikomatsakis/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nikomatsakis/subscriptions","organizations_url":"https://api.github.com/users/nikomatsakis/orgs","repos_url":"https://api.github.com/users/nikomatsakis/repos","events_url":"https://api.github.com/users/nikomatsakis/events{/privacy}","received_events_url":"https://api.github.com/users/nikomatsakis/received_events","type":"User","site_admin":false},"labels":[{"id":1040963513,"node_id":"MDU6TGFiZWwxMDQwOTYzNTEz","url":"https://api.github.com/repos/rust-rfcs/unsafe-code-guidelines/labels/active%20discussion%20topic","name":"active discussion topic","color":"000000","default":false},{"id":1034410309,"node_id":"MDU6TGFiZWwxMDM0NDEwMzA5","url":"https://api.github.com/repos/rust-rfcs/unsafe-code-guidelines/labels/topic-repr","name":"topic-repr","color":"dbb51e","default":false},{"id":1056189491,"node_id":"MDU6TGFiZWwxMDU2MTg5NDkx","url":"https://api.github.com/repos/rust-rfcs/unsafe-code-guidelines/labels/writeup-assigned","name":"writeup-assigned","color":"3188bf","default":false}],"state":"open","locked":false,"assignee":{"login":"nikomatsakis","id":155238,"node_id":"MDQ6VXNlcjE1NTIzOA==","avatar_url":"https://avatars0.githubusercontent.com/u/155238?v=4","gravatar_id":"","url":"https://api.github.com/users/nikomatsakis","html_url":"https://github.com/nikomatsakis","followers_url":"https://api.github.com/users/nikomatsakis/followers","following_url":"https://api.github.com/users/nikomatsakis/following{/other_user}","gists_url":"https://api.github.com/users/nikomatsakis/gists{/gist_id}","starred_url":"https://api.github.com/users/nikomatsakis/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nikomatsakis/subscriptions","organizations_url":"https://api.github.com/users/nikomatsakis/orgs","repos_url":"https://api.github.com/users/nikomatsakis/repos","events_url":"https://api.github.com/users/nikomatsakis/events{/privacy}","received_events_url":"https://api.github.com/users/nikomatsakis/received_events","type":"User","site_admin":false},"assignees":[{"login":"nikomatsakis","id":155238,"node_id":"MDQ6VXNlcjE1NTIzOA==","avatar_url":"https://avatars0.githubusercontent.com/u/155238?v=4","gravatar_id":"","url":"https://api.github.com/users/nikomatsakis","html_url":"https://github.com/nikomatsakis","followers_url":"https://api.github.com/users/nikomatsakis/followers","following_url":"https://api.github.com/users/nikomatsakis/following{/other_user}","gists_url":"https://api.github.com/users/nikomatsakis/gists{/gist_id}","starred_url":"https://api.github.com/users/nikomatsakis/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nikomatsakis/subscriptions","organizations_url":"https://api.github.com/users/nikomatsakis/orgs","repos_url":"https://api.github.com/users/nikomatsakis/repos","events_url":"https://api.github.com/users/nikomatsakis/events{/privacy}","received_events_url":"https://api.github.com/users/nikomatsakis/received_events","type":"User","site_admin":false}],"milestone":null,"comments":43,"created_at":"2018-08-30T17:14:58Z","updated_at":"2018-10-03T19:33:46Z","closed_at":null,"author_association":"COLLABORATOR","body":"Discussion topic about how structs are represented in Rust. Some things to work out:\r\n\r\n- Do we ever say *anything* about how a `#[repr(rust)]` struct is laid out\r\n      (and/or treated by the ABI)?\r\n      - e.g., what about different structs with same definition\r\n      - across executions of the same program?\r\n- For example, [rkruppe writes](https://github.com/rust-rfcs/unsafe-code-guidelines/pull/5#discussion_r212776247) that we might \"want to guarantee (some subset of) newtype  unpacking and relegate `#[repr(transparent)]` to being the way to guarantee to other crates that a type with private fields is and will remain a newtype?\"\r\n- When is interop with `#[rust(C)]` guaranteed and what can we say there?\r\n"},"comment":{"url":"https://api.github.com/repos/rust-rfcs/unsafe-code-guidelines/issues/comments/426769512","html_url":"https://github.com/rust-rfcs/unsafe-code-guidelines/issues/11#issuecomment-426769512","issue_url":"https://api.github.com/repos/rust-rfcs/unsafe-code-guidelines/issues/11","id":426769512,"node_id":"MDEyOklzc3VlQ29tbWVudDQyNjc2OTUxMg==","user":{"login":"the8472","id":1065730,"node_id":"MDQ6VXNlcjEwNjU3MzA=","avatar_url":"https://avatars1.githubusercontent.com/u/1065730?v=4","gravatar_id":"","url":"https://api.github.com/users/the8472","html_url":"https://github.com/the8472","followers_url":"https://api.github.com/users/the8472/followers","following_url":"https://api.github.com/users/the8472/following{/other_user}","gists_url":"https://api.github.com/users/the8472/gists{/gist_id}","starred_url":"https://api.github.com/users/the8472/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/the8472/subscriptions","organizations_url":"https://api.github.com/users/the8472/orgs","repos_url":"https://api.github.com/users/the8472/repos","events_url":"https://api.github.com/users/the8472/events{/privacy}","received_events_url":"https://api.github.com/users/the8472/received_events","type":"User","site_admin":false},"created_at":"2018-10-03T19:33:46Z","updated_at":"2018-10-03T19:33:46Z","author_association":"NONE","body":"The intended effect would be the same. You would just be telling the compiler that layout should behave *as if* C were set to a fixed value and thus all instances of `Value<T, C>` collapse to `Value<T>`, but again, only for layout purposes.\r\n\r\nThis would basically be a special case of the `as()` constraint where `as` points to an anonymous generic type with one less generic parameter that contains all the same fields except `_marker: ()`."}}
{"actor":{"display_login":"the8472"}}