{"action":"closed","issue":{"url":"https://api.github.com/repos/Microsoft/bond/issues/432","repository_url":"https://api.github.com/repos/Microsoft/bond","labels_url":"https://api.github.com/repos/Microsoft/bond/issues/432/labels{/name}","comments_url":"https://api.github.com/repos/Microsoft/bond/issues/432/comments","events_url":"https://api.github.com/repos/Microsoft/bond/issues/432/events","html_url":"https://github.com/Microsoft/bond/issues/432","id":224631202,"number":432,"title":"Use IProtocolWriter methods directly","user":{"login":"grant-d","id":10214147,"avatar_url":"https://avatars2.githubusercontent.com/u/10214147?v=3","gravatar_id":"","url":"https://api.github.com/users/grant-d","html_url":"https://github.com/grant-d","followers_url":"https://api.github.com/users/grant-d/followers","following_url":"https://api.github.com/users/grant-d/following{/other_user}","gists_url":"https://api.github.com/users/grant-d/gists{/gist_id}","starred_url":"https://api.github.com/users/grant-d/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/grant-d/subscriptions","organizations_url":"https://api.github.com/users/grant-d/orgs","repos_url":"https://api.github.com/users/grant-d/repos","events_url":"https://api.github.com/users/grant-d/events{/privacy}","received_events_url":"https://api.github.com/users/grant-d/received_events","type":"User","site_admin":false},"labels":[{"id":157510445,"url":"https://api.github.com/repos/Microsoft/bond/labels/question","name":"question","color":"cc317c","default":true}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":3,"created_at":"2017-04-26T23:50:53Z","updated_at":"2017-05-09T19:39:29Z","closed_at":"2017-05-09T19:39:29Z","body":"We have a scenario where we need a rectangle of data, but the shape is only known at runtime.\r\nBy way of comparison, think of a `Bond` version of `System.Data.DataTable` (or, perhaps, `Avro`)\r\n\r\nLooking at implementation alternatives, we could either:\r\n* Come up with some `IDL` model that would generate an appropriate set of classes (maybe `vector<vector<blob>>`), along with runtime methods that blit the source data into the `blob`s (thereby losing the benefit of VarInt, etc).\r\n* And/or use runtime codegen (say, `T4`) to create concrete `Bond` decorated `C#` classes \r\n* Or use `IProtocolWriter` methods (on, say, `CompactBinaryWriter`) to read/write directly to a `stream`.\r\n\r\nIs the **latter** a supported model for using `Bond` - any obvious challenges?\r\nIn our scenario we'd likely need to use a tagged protocol.\r\nVersioning is not likely to be an issue - the data travels on the wire only (no persistence)\r\n\r\nAre there any examples of doing this?"}}
{"actor":{"display_login":"chwarr"}}