{"push_id":967967316,"size":3,"distinct_size":3,"ref":"refs/heads/master","head":"cec1e1fe7cd1e493efff9f3b2e9442f542da3d80","before":"b8591671eb2f93d3c7f94bab31d7a0602666111a","commits":[{"sha":"39dc3930f3c7129850f37e2f2294c72eed91bdbf","author":{"email":"ea3cd978650417470535f3a4725b6b5042a6ab59@rcorre.net","name":"Ryan Roden-Corrent"},"message":"[DEV] implement components!C as a range.\n\nInstead of implementing opApply, components!C returns a range.\nIn addition to supporting foreach, the result of components!C can now\nbe passed through range-processing functions like so:\n\n---\nauto closestHit = entityManager.components!Collider\n    .map!(x => x.intersect(player))\n    .filter!(x => x.hit)\n    .minPos!((a,b) => dist(a.pos, player) < dist(b.pos, player));\n---","distinct":true,"url":"https://api.github.com/repos/claudemr/entitysysd/commits/39dc3930f3c7129850f37e2f2294c72eed91bdbf"},{"sha":"f78588f4b62e9e4d0f8647ae7d2cc5297325f1a7","author":{"email":"ea3cd978650417470535f3a4725b6b5042a6ab59@rcorre.net","name":"Ryan Roden-Corrent"},"message":"[DEVMINOR] Implement components!C using ranges.\n\nRather than implementing a custom range for components!C, chain a few\nstandard range functions to iterate through components of type C.\n\nThe resulting implementation is much simpler and cleaner, but does\nallocate a closure (to capture the pool and entity manager).","distinct":true,"url":"https://api.github.com/repos/claudemr/entitysysd/commits/f78588f4b62e9e4d0f8647ae7d2cc5297325f1a7"},{"sha":"cec1e1fe7cd1e493efff9f3b2e9442f542da3d80","author":{"email":"b325e2f8883576b992fc5f97dafb2a2d74d94d9a@live.fr","name":"claudemr"},"message":"Merge pull request #4 from rcorre/master\n\nImplement components!C as a range","distinct":true,"url":"https://api.github.com/repos/claudemr/entitysysd/commits/cec1e1fe7cd1e493efff9f3b2e9442f542da3d80"}]}