[ruby-core:122848] [Ruby Feature#21520] Feature Proposal: Enumerator::Lazy#peek
From:
"nuzair46 (Nuzair Rasheed) via ruby-core" <ruby-core@...>
Date:
2025-07-24 02:47:52 UTC
List:
ruby-core #122848
SXNzdWUgIzIxNTIwIGhhcyBiZWVuIHVwZGF0ZWQgYnkgbnV6YWlyNDYgKE51emFpciBSYXNoZWVk KS4NCg0KDQojIEFic3RyYWN0DQpBZGQgYSAjcGVlayBtZXRob2QgdG8gRW51bWVyYXRvcjo6TGF6 eSB0aGF0IGFsbG93cyBvYnNlcnZpbmcgZWFjaCBlbGVtZW50IGluIGEgbGF6eSBlbnVtZXJhdGlv biBwaXBlbGluZSB3aXRob3V0IG1vZGlmeWluZyBvciBjb25zdW1pbmcgdGhlIHN0cmVhbS4NCg0K IyBCYWNrZ3JvdW5kDQpSdWJ5IHByb3ZpZGVzIEVudW1lcmF0b3I6OkxhenkgZm9yIGVmZmljaWVu dCBsYXp5IHN0cmVhbSBwcm9jZXNzaW5nLiBIb3dldmVyLCB1bmxpa2UgbGFuZ3VhZ2VzIHN1Y2gg YXMgSmF2YSwgaXQgbGFja3MgYSBjbGVhbiB3YXkgdG8gaW5zcGVjdCBpbnRlcm1lZGlhdGUgZWxl bWVudHMgZHVyaW5nIGxhenkgZXZhbHVhdGlvbi4NCg0KQ3VycmVudGx5LCBkZXZlbG9wZXJzIG11 c3QgbWlzdXNlIC5tYXAgZm9yIHNpZGUgZWZmZWN0cywgZXhhbXBsZToNCmBgYHJiDQooMS4uKS5s YXp5Lm1hcCB7IHx4fCBwdXRzIHg7IHggfS5zZWxlY3QoJjpldmVuPykuZmlyc3QoMykNCmBgYA0K VGhpcyBpcyBzZW1hbnRpY2FsbHkgaW5jb3JyZWN0IGFuZCBjb25mdXNpbmcsIHNpbmNlIC5tYXAg aW1wbGllcyB0cmFuc2Zvcm1hdGlvbiwgbm90IG9ic2VydmF0aW9uLg0KDQojIFByb3Bvc2FsDQpJ bnRyb2R1Y2UgRW51bWVyYXRvcjo6TGF6eSNwZWVrLCB3aGljaCB5aWVsZHMgZWFjaCBpdGVtIHRv IGEgYmxvY2sgYW5kIHJldHVybnMgdGhlIGl0ZW0gdW5tb2RpZmllZCwgc2ltaWxhciB0byBPYmpl Y3QjdGFwLCBidXQgaW4gYSBsYXp5IHN0cmVhbToNCmBgYHJiDQooMS4uKS5sYXp5DQogICAgIC5w ZWVrIHsgfHh8IHB1dHMgInNhdzogI3t4fSIgfQ0KICAgICAuc2VsZWN0KCY6ZXZlbj8pDQogICAg IC5maXJzdCgzKQ0KYGBgDQpUaGlzIHdvdWxkIGJlIGVxdWl2YWxlbnQgdG86DQpgYGByYg0KbGF6 eS5tYXAgeyB8eHwgYmxvY2suY2FsbCh4KTsgeCB9DQpgYGANCmJ1dCB3aXRoIGltcHJvdmVkIHNl bWFudGljIGNsYXJpdHkuDQoNCiMgVXNlIGNhc2VzDQrigKIgRGVidWdnaW5nIGxhenkgZW51bWVy YXRvcnMgd2l0aG91dCBicmVha2luZyB0aGUgY2hhaW4NCuKAoiBMb2dnaW5nIG9yIGluc3RydW1l bnRhdGlvbiBpbiBwaXBlbGluZXMNCuKAoiBFZHVjYXRpb25hbCAvIGRlbW8gdXNlIGZvciBzaG93 aW5nIGxhenkgZXZhbHVhdGlvbiBzdGVwLWJ5LXN0ZXANCuKAoiBDbGVhbmVyIHJlcGxhY2VtZW50 IGZvciBtYXAgeyBwdXRzIHg7IHggfSBoYWNrcw0KDQpFeGFtcGxlOg0KYGBgcmINCmRhdGEgPSAo MS4uKS5sYXp5DQogICAgICAgICAgICAucGVlayB7IHx4fCBwdXRzICJnb3QgI3t4fSIgfQ0KICAg ICAgICAgICAgLnNlbGVjdCgmOmV2ZW4/KQ0KICAgICAgICAgICAgLmZpcnN0KDUpDQpgYGANCnJl c3VsdDoNCmBgYHJiDQpnb3QgMQ0KZ290IDINCmdvdCAzDQpnb3QgNA0KZ290IDUNCi4uLg0KZ290 IDEwDQpgYGANCkFuZCByZXR1cm4gWzIsIDQsIDYsIDgsIDEwXQ0KDQojIERpc2N1c3Npb24NCiNw ZWVrIGlzIGEgbWluaW1hbCwgbm9uLWJyZWFraW5nIGFkZGl0aW9uIHRoYXQgaW1wcm92ZXMgY2xh cml0eSBhbmQgaWRpb21hdGljIHVzYWdlIG9mIEVudW1lcmF0b3I6OkxhenkuIEl0IGF2b2lkcyBh YnVzaW5nIC5tYXAgZm9yIG9ic2VydmF0aW9uIGFuZCBpcyBmYW1pbGlhciB0byBkZXZlbG9wZXJz IGZyb20gb3RoZXIgbGFuZ3VhZ2VzLiAjcGVlayBpcyBhbHNvIG5vdCBuZWVkZWQgZm9yIG90aGVy IGVudW1lcmF0b3JzIHdoZXJlIC50YXAgb3IgLmVhY2ggY2FuIGRvIHRoZSBqb2IuDQoNCkl0IG1p cnJvcnMgSmF2YeKAmXMgLnN0cmVhbSgpLnBlZWsoLi4uKSBhbmQgbWFrZXMgUnVieeKAmXMgbGF6 eSBlbnVtZXJhdGlvbiBtb3JlIGV4cHJlc3NpdmUgYW5kIHJlYWRhYmxlLg0KDQojIFNlZSBhbHNv DQrigKIgW0phdmEgU3RyZWFtLnBlZWtdKGh0dHBzOi8vZG9jcy5vcmFjbGUuY29tL2phdmFzZS84 L2RvY3MvYXBpL2phdmEvdXRpbC9zdHJlYW0vU3RyZWFtLmh0bWwjcGVlay1qYXZhLnV0aWwuZnVu Y3Rpb24uQ29uc3VtZXItKQ0KDQpJIHdvdWxkIGJlIGdsYWQgdG8gd29yayBvbiB0aGlzIGFuZCBt YWtlIGEgUFIuIFRoYW5rIHlvdS4NCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQ0KRmVhdHVyZSAjMjE1MjA6IEZlYXR1cmUgUHJvcG9zYWw6IEVudW1lcmF0b3I6Okxh enkjcGVlaw0KaHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcvaXNzdWVzLzIxNTIwI2NoYW5nZS0x MTQxMzcNCg0KKiBBdXRob3I6IG51emFpcjQ2IChOdXphaXIgUmFzaGVlZCkNCiogU3RhdHVzOiBP cGVuDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIEFic3RyYWN0 DQoNCkFkZCBhICNwZWVrIG1ldGhvZCB0byBFbnVtZXJhdG9yOjpMYXp5IHRoYXQgYWxsb3dzIG9i c2VydmluZyBlYWNoIGVsZW1lbnQgaW4gYSBsYXp5IGVudW1lcmF0aW9uIHBpcGVsaW5lIHdpdGhv dXQgbW9kaWZ5aW5nIG9yIGNvbnN1bWluZyB0aGUgc3RyZWFtLg0KDQojIEJhY2tncm91bmQNCg0K UnVieSBwcm92aWRlcyBFbnVtZXJhdG9yOjpMYXp5IGZvciBlZmZpY2llbnQgbGF6eSBzdHJlYW0g cHJvY2Vzc2luZy4gSG93ZXZlciwgdW5saWtlIGxhbmd1YWdlcyBzdWNoIGFzIEphdmEsIGl0IGxh Y2tzIGEgY2xlYW4gd2F5IHRvIGluc3BlY3QgaW50ZXJtZWRpYXRlIGVsZW1lbnRzIGR1cmluZyBs YXp5IGV2YWx1YXRpb24uDQoNCkN1cnJlbnRseSwgZGV2ZWxvcGVycyBtdXN0IG1pc3VzZSAubWFw IGZvciBzaWRlIGVmZmVjdHMsIGV4YW1wbGU6DQpgYGByYg0KKDEuLikubGF6eS5tYXAgeyB8eHwg cHV0cyB4OyB4IH0uc2VsZWN0KCY6ZXZlbj8pLmZpcnN0KDMpDQpgYGANClRoaXMgaXMgc2VtYW50 aWNhbGx5IGluY29ycmVjdCBhbmQgY29uZnVzaW5nLCBzaW5jZSAubWFwIGltcGxpZXMgdHJhbnNm b3JtYXRpb24sIG5vdCBvYnNlcnZhdGlvbi4NCg0KIyBQcm9wb3NhbA0KDQpJbnRyb2R1Y2UgRW51 bWVyYXRvcjo6TGF6eSNwZWVrLCB3aGljaCB5aWVsZHMgZWFjaCBpdGVtIHRvIGEgYmxvY2sgYW5k IHJldHVybnMgdGhlIGl0ZW0gdW5tb2RpZmllZCwgc2ltaWxhciB0byBPYmplY3QjdGFwLCBidXQg aW4gYSBsYXp5IHN0cmVhbToNCmBgYHJiDQooMS4uKS5sYXp5DQogICAgIC5wZWVrIHsgfHh8IHB1 dHMgInNhdzogI3t4fSIgfQ0KICAgICAuc2VsZWN0KCY6ZXZlbj8pDQogICAgIC5maXJzdCgzKQ0K YGBgDQoNClRoaXMgd291bGQgYmUgZXF1aXZhbGVudCB0bzoNCmBgYHJiDQpsYXp5Lm1hcCB7IHx4 fCBibG9jay5jYWxsKHgpOyB4IH0NCmBgYA0KYnV0IHdpdGggaW1wcm92ZWQgc2VtYW50aWMgY2xh cml0eS4NCg0KIyBVc2UgY2FzZXMNCg0K4oCiIERlYnVnZ2luZyBsYXp5IGVudW1lcmF0b3JzIHdp dGhvdXQgYnJlYWtpbmcgdGhlIGNoYWluDQrigKIgTG9nZ2luZyBvciBpbnN0cnVtZW50YXRpb24g aW4gcGlwZWxpbmVzDQrigKIgRWR1Y2F0aW9uYWwgLyBkZW1vIHVzZSBmb3Igc2hvd2luZyBsYXp5 IGV2YWx1YXRpb24gc3RlcC1ieS1zdGVwDQrigKIgQ2xlYW5lciByZXBsYWNlbWVudCBmb3IgbWFw IHsgcHV0cyB4OyB4IH0gaGFja3MNCg0KRXhhbXBsZToNCg0KYGBgcmINCmRhdGEgPSAoMS4uKS5s YXp5DQogICAgICAgICAgICAucGVlayB7IHx4fCBwdXRzICJnb3QgI3t4fSIgfQ0KICAgICAgICAg ICAgLnNlbGVjdCgmOmV2ZW4/KQ0KICAgICAgICAgICAgLmZpcnN0KDUpDQpgYGANCnJlc3VsdDoN CmBgYHJiDQpnb3QgMQ0KZ290IDINCmdvdCAzDQpnb3QgNA0KZ290IDUNCmBgYA0KQW5kIHJldHVy biBbMiwgNCwgNiwgOCwgMTBdDQoNCiMgRGlzY3Vzc2lvbg0KDQojcGVlayBpcyBhIG1pbmltYWws IG5vbi1icmVha2luZyBhZGRpdGlvbiB0aGF0IGltcHJvdmVzIGNsYXJpdHkgYW5kIGlkaW9tYXRp YyB1c2FnZSBvZiBFbnVtZXJhdG9yOjpMYXp5LiBJdCBhdm9pZHMgYWJ1c2luZyAubWFwIGZvciBv YnNlcnZhdGlvbiBhbmQgaXMgZmFtaWxpYXIgdG8gZGV2ZWxvcGVycyBmcm9tIG90aGVyIGxhbmd1 YWdlcy4gI3BlZWsgaXMgYWxzbyBub3QgbmVlZGVkIGZvciBvdGhlciBlbnVtZXJhdG9ycyB3aGVy ZSAudGFwIG9yIC5lYWNoIGNhbiBkbyB0aGUgam9iLg0KDQpJdCBtaXJyb3JzIEphdmHigJlzIC5z dHJlYW0oKS5wZWVrKC4uLikgYW5kIG1ha2VzIFJ1YnnigJlzIGxhenkgZW51bWVyYXRpb24gbW9y ZSBleHByZXNzaXZlIGFuZCByZWFkYWJsZS4NCg0KIyBTZWUgYWxzbw0K4oCiIFtKYXZhIFN0cmVh bS5wZWVrXShodHRwczovL2RvY3Mub3JhY2xlLmNvbS9qYXZhc2UvOC9kb2NzL2FwaS9qYXZhL3V0 aWwvc3RyZWFtL1N0cmVhbS5odG1sI3BlZWstamF2YS51dGlsLmZ1bmN0aW9uLkNvbnN1bWVyLSkN Cg0KSSB3b3VsZCBiZSBnbGFkIHRvIHdvcmsgb24gdGhpcyBhbmQgbWFrZSBhIFBSLiBUaGFuayB5 b3UuDQoNCg0KDQoNCi0tIA0KaHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcvDQpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCiBydWJ5LWNvcmUgbWFpbGluZyBs aXN0IC0tIHJ1YnktY29yZUBtbC5ydWJ5LWxhbmcub3JnCiBUbyB1bnN1YnNjcmliZSBzZW5kIGFu IGVtYWlsIHRvIHJ1YnktY29yZS1sZWF2ZUBtbC5ydWJ5LWxhbmcub3JnCiBydWJ5LWNvcmUgaW5m byAtLSBodHRwczovL21sLnJ1YnktbGFuZy5vcmcvbWFpbG1hbjMvbGlzdHMvcnVieS1jb3JlLm1s LnJ1YnktbGFuZy5vcmcvCg==