{"action":"created","issue":{"url":"https://api.github.com/repos/rust-datetime/datetime/issues/9","labels_url":"https://api.github.com/repos/rust-datetime/datetime/issues/9/labels{/name}","comments_url":"https://api.github.com/repos/rust-datetime/datetime/issues/9/comments","events_url":"https://api.github.com/repos/rust-datetime/datetime/issues/9/events","html_url":"https://github.com/rust-datetime/datetime/pull/9","id":114266427,"number":9,"title":"Feature/nom parser","user":{"login":"hoodie","id":260370,"avatar_url":"https://avatars.githubusercontent.com/u/260370?v=3","gravatar_id":"","url":"https://api.github.com/users/hoodie","html_url":"https://github.com/hoodie","followers_url":"https://api.github.com/users/hoodie/followers","following_url":"https://api.github.com/users/hoodie/following{/other_user}","gists_url":"https://api.github.com/users/hoodie/gists{/gist_id}","starred_url":"https://api.github.com/users/hoodie/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hoodie/subscriptions","organizations_url":"https://api.github.com/users/hoodie/orgs","repos_url":"https://api.github.com/users/hoodie/repos","events_url":"https://api.github.com/users/hoodie/events{/privacy}","received_events_url":"https://api.github.com/users/hoodie/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":3,"created_at":"2015-10-30T13:11:03Z","updated_at":"2015-11-01T14:30:49Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/rust-datetime/datetime/pulls/9","html_url":"https://github.com/rust-datetime/datetime/pull/9","diff_url":"https://github.com/rust-datetime/datetime/pull/9.diff","patch_url":"https://github.com/rust-datetime/datetime/pull/9.patch"},"body":"Hi there,\r\nI'm working on replacing the parsing implementation with nom.\r\n\r\n[this blog article](https://fnordig.de/2015/07/16/omnomnom-parsing-iso8601-dates-using-nom/) has layed the groundwork.\r\nI [compared](https://github.com/hoodie/dateparser_benchmarks) the performance of datetime, chrono and this. After switching from regex to nom the results of datetime are significantly [better](https://github.com/hoodie/dateparser_benchmarks/tree/nightly_datetime#benchmark-of-each-implementation).\r\nBonus: with this datetime seems to also have a more complete implementation of the ISO8601 standard.\r\n\r\nThis is not mergeworthy yet, milliseconds are not supported yet, I just wanted to let you know."},"comment":{"url":"https://api.github.com/repos/rust-datetime/datetime/issues/comments/152829819","html_url":"https://github.com/rust-datetime/datetime/pull/9#issuecomment-152829819","issue_url":"https://api.github.com/repos/rust-datetime/datetime/issues/9","id":152829819,"user":{"login":"hoodie","id":260370,"avatar_url":"https://avatars.githubusercontent.com/u/260370?v=3","gravatar_id":"","url":"https://api.github.com/users/hoodie","html_url":"https://github.com/hoodie","followers_url":"https://api.github.com/users/hoodie/followers","following_url":"https://api.github.com/users/hoodie/following{/other_user}","gists_url":"https://api.github.com/users/hoodie/gists{/gist_id}","starred_url":"https://api.github.com/users/hoodie/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hoodie/subscriptions","organizations_url":"https://api.github.com/users/hoodie/orgs","repos_url":"https://api.github.com/users/hoodie/repos","events_url":"https://api.github.com/users/hoodie/events{/privacy}","received_events_url":"https://api.github.com/users/hoodie/received_events","type":"User","site_admin":false},"created_at":"2015-11-01T14:30:49Z","updated_at":"2015-11-01T14:30:49Z","body":"hey, that nom iso8601 came out shortly after you merged my regex version - but I didn't think anything of it at the time.\r\nWhat I didn't notice when I started trying to adjust it to fit rust-datetime was how incomplete it is.\r\nRight now I'm both contributing to the nom-parser and here trying to mix and match both implementations. My goal is to make iso8601 (the crate) a self sufficient crate that does nothing but what it is supposed to and meanwhile remove all parsing logic from datetime. Since parsing a date and validating it are two different jobs entirely and datetime is suited much better for telling whether a year as a Feb29 or not than a set of parsers :D Right now I'm still struggling a bit with noms macro-DSL and giving it a nicer api than it currently has. Afterwards I'll carve out the remains of my regex implementation and plugin the nom parser as an external dependency.\r\n\r\nThe thing about my Regex implementation is not that it is that much slower. I never took any time to optimize it, but as you can tell from the PR I received, what slows it down is not the application of the regex, but the initialization. After that it is only about 2x-3x slower. The nom version also gets slower as I implement more of the standard. Still my hope is, at the end of this integration rust-datetime will have a more complete implementation of the iso8601 standard than chrono and still parse strings faster."}}