{"action":"created","issue":{"url":"https://api.github.com/repos/sandstorm-io/capnproto/issues/258","labels_url":"https://api.github.com/repos/sandstorm-io/capnproto/issues/258/labels{/name}","comments_url":"https://api.github.com/repos/sandstorm-io/capnproto/issues/258/comments","events_url":"https://api.github.com/repos/sandstorm-io/capnproto/issues/258/events","html_url":"https://github.com/sandstorm-io/capnproto/pull/258","id":115210176,"number":258,"title":"Implement most of JsonCodec::decodeRaw","user":{"login":"kamalmarhubi","id":50936,"avatar_url":"https://avatars.githubusercontent.com/u/50936?v=3","gravatar_id":"","url":"https://api.github.com/users/kamalmarhubi","html_url":"https://github.com/kamalmarhubi","followers_url":"https://api.github.com/users/kamalmarhubi/followers","following_url":"https://api.github.com/users/kamalmarhubi/following{/other_user}","gists_url":"https://api.github.com/users/kamalmarhubi/gists{/gist_id}","starred_url":"https://api.github.com/users/kamalmarhubi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kamalmarhubi/subscriptions","organizations_url":"https://api.github.com/users/kamalmarhubi/orgs","repos_url":"https://api.github.com/users/kamalmarhubi/repos","events_url":"https://api.github.com/users/kamalmarhubi/events{/privacy}","received_events_url":"https://api.github.com/users/kamalmarhubi/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":5,"created_at":"2015-11-05T05:00:27Z","updated_at":"2015-11-06T23:13:23Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/sandstorm-io/capnproto/pulls/258","html_url":"https://github.com/sandstorm-io/capnproto/pull/258","diff_url":"https://github.com/sandstorm-io/capnproto/pull/258.diff","patch_url":"https://github.com/sandstorm-io/capnproto/pull/258.patch"},"body":"This is the first step towards JSON decoding, implementing the basic\r\nfunctionality of JsonCodec::decodeRaw. The main outstanding issues are:\r\n\r\n- it allows trailing commas in arrays and objects\r\n- it is too liberal in number syntax, eg allowing a leading +\r\n- it does rejects non-ASCII characters in \\u escapes\r\n\r\nRefs https://github.com/sandstorm-io/capnproto/issues/255"},"comment":{"url":"https://api.github.com/repos/sandstorm-io/capnproto/issues/comments/154572624","html_url":"https://github.com/sandstorm-io/capnproto/pull/258#issuecomment-154572624","issue_url":"https://api.github.com/repos/sandstorm-io/capnproto/issues/258","id":154572624,"user":{"login":"kentonv","id":4001805,"avatar_url":"https://avatars.githubusercontent.com/u/4001805?v=3","gravatar_id":"","url":"https://api.github.com/users/kentonv","html_url":"https://github.com/kentonv","followers_url":"https://api.github.com/users/kentonv/followers","following_url":"https://api.github.com/users/kentonv/following{/other_user}","gists_url":"https://api.github.com/users/kentonv/gists{/gist_id}","starred_url":"https://api.github.com/users/kentonv/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kentonv/subscriptions","organizations_url":"https://api.github.com/users/kentonv/orgs","repos_url":"https://api.github.com/users/kentonv/repos","events_url":"https://api.github.com/users/kentonv/events{/privacy}","received_events_url":"https://api.github.com/users/kentonv/received_events","type":"User","site_admin":false},"created_at":"2015-11-06T23:13:23Z","updated_at":"2015-11-06T23:13:23Z","body":"In general this is pretty great -- the code is clean and easy to read. Thanks!\r\n\r\nOn a procedural note, when you address the issues above, please make a new commit without squashing -- that way I can review the diffs separately from the code I've already read.\r\n\r\n> Oh and also: should there be a nesting depth limit? This could be a DoS issue...\r\n\r\nYeah, that's probably a good idea. 64 has always worked well for me. Of course you can make it configurable via a method on `JsonCodec`.\r\n\r\n> Ideally I'd like to support surrogate pairs so that people can escape their emoji. However that can't be done inside of std without using <locale>. (Other chars can be covered by using wonderfully named c16rtomb.)\r\n\r\nIt seems to me it should only take a few lines of code to handle surrogate pairs correctly without a library."}}