From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: AS4713 221.184.0.0/13 X-Spam-Status: No, score=-3.5 required=3.0 tests=AWL,BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED,SPF_HELO_NONE, SPF_PASS,T_SCC_BODY_TEXT_LINE,UNPARSEABLE_RELAY,URIBL_GREY shortcircuit=no autolearn=no autolearn_force=no version=3.4.2 Received: from neon.ruby-lang.org (neon.ruby-lang.org [221.186.184.75]) by dcvr.yhbt.net (Postfix) with ESMTP id 08BCC1F852 for ; Sat, 12 Feb 2022 21:54:14 +0000 (UTC) Received: from neon.ruby-lang.org (localhost [IPv6:::1]) by neon.ruby-lang.org (Postfix) with ESMTP id B8809120941; Sun, 13 Feb 2022 06:54:09 +0900 (JST) Received: from xtrwkhkc.outbound-mail.sendgrid.net (xtrwkhkc.outbound-mail.sendgrid.net [167.89.16.28]) by neon.ruby-lang.org (Postfix) with ESMTPS id 2A32C120941 for ; Sun, 13 Feb 2022 06:54:07 +0900 (JST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sendgrid.me; h=from:references:subject:mime-version:content-type: content-transfer-encoding:list-id:to; s=smtpapi; bh=7flKJJ5b/vTbXGCP1vHN6HKiL1O2DFc5DN1YLwI9gWc=; b=tXR9S8ywdcMcylbICjpgxJhVm152Fc6uXZp2ilEGT73o6V4KbSjFmAY70aFBdZzkyWDZ 15AikCTTa3uRkGW7BXmvsoMsaTfcJMxfH5E3OLvt4gFJDKDchJRPjR9RNtFypD7LYqojR8 EnbJP31/n9KOWya3DU5ZVA58Nj9byDVtQ= Received: by filterdrecv-7bf5c69d5-xcfvn with SMTP id filterdrecv-7bf5c69d5-xcfvn-1-62082C7B-16 2022-02-12 21:54:03.726534436 +0000 UTC m=+14167989.414157652 Received: from herokuapp.com (unknown) by geopod-ismtpd-3-3 (SG) with ESMTP id ARmaMCuoQoWRpuqaaOZZrg for ; Sat, 12 Feb 2022 21:54:03.588 +0000 (UTC) Date: Sat, 12 Feb 2022 21:54:03 +0000 (UTC) From: "dsisnero (Dominic Sisneros)" Message-ID: References: Mime-Version: 1.0 X-Redmine-Project: ruby-master X-Redmine-Issue-Tracker: Feature X-Redmine-Issue-Id: 16122 X-Redmine-Issue-Author: zverok X-Redmine-Sender: dsisnero X-Mailer: Redmine X-Redmine-Host: bugs.ruby-lang.org X-Redmine-Site: Ruby Issue Tracking System X-Auto-Response-Suppress: All Auto-Submitted: auto-generated X-Redmine-MailingListIntegration-Message-Ids: 83894 X-SG-EID: =?us-ascii?Q?YTcC4pXzR8TlXBEvbkWPFxrbHrGC47VouOLAPTnELdlhE7HjgFkPV2ccU1B8Hk?= =?us-ascii?Q?6z+rJhRSCEidTWhBvZpihH3y0+v296Y6NP=2FuhGl?= =?us-ascii?Q?GhnVcQLVCqoQ1W8eRujbuSfS5F4HAOX6hMa53xn?= =?us-ascii?Q?wfCBFQELsJxUw7QzWLLZFHQxLFrdyrlQ7WVwu3s?= =?us-ascii?Q?4cfjq5sdfqnLzWk7I8+Zd=2F3o+=2Fvi6aFF9o5C+Hi?= =?us-ascii?Q?Vqn1ShCuHq7RfKO4JZTLbdAJA4HmqqVGtxbL3YT?= =?us-ascii?Q?CIZyA6Jgzsm3BEq8qZ1wA=3D=3D?= To: ruby-core@ruby-lang.org X-Entity-ID: b/2+PoftWZ6GuOu3b0IycA== X-ML-Name: ruby-core X-Mail-Count: 107566 Subject: [ruby-core:107566] [Ruby master Feature#16122] Struct::Value: simple immutable value object X-BeenThere: ruby-core@ruby-lang.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Ruby developers List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Reply-To: Ruby developers Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: ruby-core-bounces@ruby-lang.org Sender: "ruby-core" SXNzdWUgIzE2MTIyIGhhcyBiZWVuIHVwZGF0ZWQgYnkgZHNpc25lcm8gKERvbWluaWMgU2lzbmVy b3MpLgoKCisxIC0gCkFsc28sIGlzIHRoZXJlIHBsYW5zIHRvIGhhdmUgYSBmbGFnIGluIEMgb3Ig YSBkaWZmZXJlbnQgc2hhcGUgc28gdGhhdCB0aGUgVk0ncyBjYW4gbWFrZSB0aGlzIGZhc3QgIAoK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpGZWF0dXJlICMxNjEyMjog U3RydWN0OjpWYWx1ZTogc2ltcGxlIGltbXV0YWJsZSB2YWx1ZSBvYmplY3QKaHR0cHM6Ly9idWdz LnJ1YnktbGFuZy5vcmcvaXNzdWVzLzE2MTIyI2NoYW5nZS05NjQ3OQoKKiBBdXRob3I6IHp2ZXJv ayAoVmljdG9yIFNoZXBlbGV2KQoqIFN0YXR1czogRmVlZGJhY2sKKiBQcmlvcml0eTogTm9ybWFs Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKipWYWx1ZSBPYmplY3Qq KiBpcyBhIHVzZWZ1bCBjb25jZXB0LCBpbnRyb2R1Y2VkIGJ5IE1hcnRpbiBGb3dsZXIgKFtoaXMg cG9zdF0oaHR0cHM6Ly9tYXJ0aW5mb3dsZXIuY29tL2JsaWtpL1ZhbHVlT2JqZWN0Lmh0bWwpLCBb V2lraXBlZGlhIEVudHJ5XShodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9WYWx1ZV9vYmpl Y3QpKSB3aXRoIHRoZSBmb2xsb3dpbmcgcHJvcGVydGllcyAoc2ltcGxpZnlpbmcgdGhlIGlkZWEp OgoKKiByZXByZXNlbnRpbmcgc29tZSByZWxhdGl2ZWx5IHNpbXBsZSBkYXRhOwoqIGltbXV0YWJs ZTsKKiBjb21wYXJlZCBieSB0eXBlICYgdmFsdWU7CiogbmljZWx5IHJlcHJlc2VudGVkLgoKVmFs dWUgb2JqZWN0cyBhcmUgc3VwZXItdXNlZnVsIGVzcGVjaWFsbHkgZm9yIGRlZmluaW5nIEFQSXMs IHRoZWlyIGlucHV0L3JldHVybiB2YWx1ZXMuIFJlY2VudGx5LCB0aGVyZSB3ZXJlIHNvbWUgbW92 ZW1lbnQgdG93YXJkcyB1c2luZyBtb3JlIGltbXV0YWJpbGl0eS1mcmllbmRseSBhcHByb2FjaCBp biBSdWJ5IHByb2dyYW1taW5nLCBsZWFkaW5nIHRvIGNyZWF0aW5nIHNldmVyYWwgZGlzY3Vzc2lv bnMvbGlicmFyaWVzIHdpdGggdmFsdWUgb2JqZWN0cy4gRm9yIGV4YW1wbGUsIFtUb20gRGFsbGlu ZydzIGdlbV0oaHR0cHM6Ly9naXRodWIuY29tL3RvbWRhbGxpbmcvdmFsdWVfc2VtYW50aWNzKSwg W0dvb2QgUnVieSBWYWx1ZSBvYmplY3QgY29udmVudGlvbl0oaHR0cHM6Ly9naXRodWIuY29tL3p2 ZXJvay9nb29kLXZhbHVlLW9iamVjdCkgKGRpc2NsYWltZXI6IHRoZSBsYXR0ZXIgaXMgbWFpbnRh aW5lZCBieSB5b3VycyB0cnVseSkuCgpJIHByb3Bvc2UgdG8gaW50cm9kdWNlICoqbmF0aXZlIHZh bHVlIG9iamVjdHMqKiB0byBSdWJ5IGFzIGEgY29yZSBjbGFzcy4KCioqV2h5IG5vdCBhIGdlbT8q KgoKKiBJIGJlbGlldmUgdGhhdCBjb25jZXB0IGlzIHRoYXQgc2ltcGxlLCB0aGF0IG5vYm9keSAq d2lsbCBldmVuIHRyeSogdG8gdXNlIGEgZ2VtIGZvciByZXByZXNlbnRpbmcgaXQgd2l0aCwgdW5s ZXNzIHRoZSBmcmFtZXdvcmsvbGlicmFyeSB1c2VkIGFscmVhZHkgcHJvdmlkZXMgb25lLgoqIFBv dGVudGlhbGx5LCBhIGxvdCBvZiBzdGFuZGFyZCBsaWJyYXJ5IChhbmQgcHJvYmFibHkgZXZlbiBj b3JlKSBBUElzIGNvdWxkIGJlbmVmaXQgZnJvbSB0aGUgY29uY2VwdC4KCioqV2h5IGBTdHJ1Y3Rg IGlzIG5vdCBlbm91Z2gqKgoKQ29yZSBgU3RydWN0YCBjbGFzcyBpcyAic29tZXdoYXQgYWxpa2Ui IHZhbHVlLW9iamVjdCwgYW5kIGZyZXF1ZW50bHkgdXNlZCBpbnN0ZWFkIG9mIG9uZTogaXQgaXMg Y29tcGFyZWQgYnkgdmFsdWUgYW5kIGNvbnNpc3RzIG9mIHNpbXBsZSBhdHRyaWJ1dGVzLiBPbiB0 aGUgb3RoZXIgaGFuZCwgYFN0cnVjdGAgaXM6CiogbXV0YWJsZTsKKiBjb2xsZWN0aW9uLWFsaWtl IChkZWZpbmVzIGB0b19hYCBhbmQgaXMgYEVudW1lcmFibGVgKTsKKiBkaWN0aW9uYXJ5LWFsaWtl IChoYXMgYFtdYCBhbmQgYC52YWx1ZXNgIG1ldGhvZHMpLgoKVGhlIGFib3ZlIHRyYWl0cyBzb21l aG93IGVyb2RlcyB0aGUgc2VtYW50aWNzLCBtYWtpbmcgY29kZSBsZXNzIGNsZWFyLCBlc3BlY2lh bGx5IHdoZW4gZHVjay10eXBpbmcgaXMgdXNlZC4KCkZvciBleGFtcGxlLCB0aGlzIGNvZGUgc25p cHBldCBzaG93cyB3aHkgYHRvX2FgIGlzIHByb2JsZW1hdGljOgoKYGBgcnVieQpSZXN1bHQgPSBT dHJ1Y3QubmV3KDpzdWNjZXNzLCA6Y29udGVudCkKCiMgTm93LCBpbWFnaW5lIHRoYXQgb3RoZXIg Y29kZSBhc3N1bWVzIGBkYXRhYCBjb3VsZCBiZSBlaXRoZXIgUmVzdWx0LCBvciBbUmVzdWx0LCBS ZXN1bHQsIFJlc3VsdF0KIyBTbywgLi4uCgpkYXRhID0gUmVzdWx0Lm5ldyh0cnVlLCAnaXQgaXMg YXdlc29tZScpCgpBcnJheShkYXRhKSAjID0+IGV4cGVjdGVkIFtSZXN1bHQodHJ1ZSwgJ2l0IGlz IGF3ZXNvbWUnKV0sIGdvdCBbdHJ1ZSwgJ2l0IGlzIGF3ZXNvbWUnXQoKIyBvci4uLgpkZWYgZm9v KGFyZzEsIGFyZzIgPSBuaWwpCnAgYXJnMSwgYXJnMgplbmQKCmZvbygqZGF0YSkgIyA9PiBleHBl Y3RlZCBbUmVzdWx0KHRydWUsICdpdCBpcyBhd2Vzb21lJyksIG5pbF0sIGdvdCBbdHJ1ZSwgJ2l0 IGlzIGF3ZXNvbWUnXQpgYGAKCkhhdmluZyBgW11gIGFuZCBgZWFjaGAgZGVmaW5lZCBvbiBzb21l dGhpbmcgdGhhdCBpcyB0aG91Z2h0IGFzICJqdXN0IHZhbHVlIiBjYW4gYWxzbyBsZWFkIHRvIHN1 YnRsZSBidWdzLCB3aGVuIHNvbWUgbWV0aG9kIGNoZWNrcyAiaWYgdGhlIHJlY2VpdmVkIGFyZ3Vt ZW50IGlzIGNvbGxlY3Rpb24tYWxpa2UiLCBhbmQgdmFsdWUgb2JqZWN0J3MgYXV0aG9yIGRvZXNu J3QgdGhvdWdodCBvZiBpdCBhcyBhIGNvbGxlY3Rpb24uCgoqKkNvbmNyZXRlIHByb3Bvc2FsKioK CiogQ2xhc3MgbmFtZTogYFN0cnVjdDo6VmFsdWVgOiBsb3Qgb2YgUnVieWlzdHMgYXJlIHVzZWQg dG8gaGF2ZSBgU3RydWN0YCBhcyBhIHF1aWNrICJzb21ldGhpbmctbGlrZS12YWx1ZSIgZHJvcC1p biwgc28gYWx0ZXJuYXRpdmUsIG1vcmUgc3RyaWN0IGltcGxlbWVudGF0aW9uLCBiZWluZyBwYXJ0 IG9mIGBTdHJ1Y3RgIEFQSSwgd2lsbCBiZSBxdWl0ZSBkaXNjb3ZlcmFibGU7ICphbHRlcm5hdGl2 ZToganVzdCBgVmFsdWVgKgoqIENsYXNzIEFQSSBpcyBjb3B5aW5nIGBTdHJ1Y3RgcyBvbmUgKG1v c3Qgb2YgdGhlIHRpbWUgLS0gZXZlbiByZXVzZXMgdGhlIGltcGxlbWVudGF0aW9uKSwgd2l0aCB0 aGUgZm9sbG93aW5nIGV4Y2VwdGlvbnMgKihub3RlOiB0aGUgaW1tdXRhYmlsaXR5IGlzICoqbm90 KiogdGhlIG9ubHkgZGlmZmVyZW5jZSkqOgogICogTm90IGBFbnVtZXJhYmxlYDsKICAqIEltbXV0 YWJsZTsKICAqIERvZXNuJ3QgdGhpbmsgb2YgaXRzZWxmIGFzICJhbG1vc3QgaGFzaCIgKGRvZXNu J3QgaGF2ZSBgdG9fYWAsIGB2YWx1ZXNgIGFuZCBgW11gIG1ldGhvZHMpOwogICogQ2FuIGhhdmUg ZW1wdHkgbWVtYmVycyBsaXN0IChmdW4gZmFjdDogYFN0cnVjdC5uZXcoJ0ZvbycpYCBjcmVhdGlu ZyBtZW1iZXItbGVzcyBgU3RydWN0OjpGb29gLCBpcyBhbGxvd2VkLCBidXQgYFN0cnVjdC5uZXco KWAgaXMgbm90KSB0byBhbGxvdyB1c2FnZSBwYXR0ZXJucyBsaWtlOgoKYGBgcnVieQpjbGFzcyBN eVNlcnZpY2UKICBTdWNjZXNzID0gU3RydWN0OjpWYWx1ZS5uZXcoOnJlc3VsdHMpCiAgTm90Rm91 bmQgPSBTdHJ1Y3Q6OlZhbHVlLm5ldwplbmQKYGBgCgpgTm90Rm91bmRgIGhlcmUsIHVubGlrZSwg c2F5LCBgT2JqZWN0Lm5ldy5mcmVlemVgIChhbm90aGVyIHBhdHRlcm4gZm9yIGNyZWF0aW5nICJl bXB0eSB0eXBlZCB2YWx1ZSBvYmplY3QiKSwgaGFzIG5pY2UgaW5zcGVjdCBgIzx2YWx1ZSBOb3RG b3VuZD5gLCBhbmQgY3JlYXRlZCBjb25zaXN0ZW50bHkgd2l0aCB0aGUgYFN1Y2Nlc3NgLCBtYWtp bmcgdGhlIGNvZGUgbW9yZSByZWFkYWJsZS4gQW5kIGlmIGl0IHdpbGwgZXZvbHZlIHRvIGhhdmUg c29tZSBhdHRyaWJ1dGVzLCB0aGUgY29kZSBjaGFuZ2Ugd291bGQgYmUgZWFzeS4KCioqUGF0Y2gg aXMgcHJvdmlkZWQqKgoKW1NhbXBsZSByZW5kZXJlZCBSRG9jIGRvY3VtZW50YXRpb25dKGh0dHBz Oi8venZlcm9rLmdpdGh1Yi5pby9ydWJ5LXJkb2MvU3RydWN0LVZhbHVlLmh0bWwpCgotLS1GaWxl cy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnN0cnVjdF92YWx1ZS5wYXRjaCAoMTgu NiBLQikKCgotLSAKaHR0cHM6Ly9idWdzLnJ1YnktbGFuZy5vcmcvCg==