google-protobuf 3.17.3 → 3.19.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of google-protobuf might be problematic. Click here for more details.
- checksums.yaml +4 -4
 - data/ext/google/protobuf_c/convert.c +4 -5
 - data/ext/google/protobuf_c/defs.c +26 -1326
 - data/ext/google/protobuf_c/extconf.rb +0 -1
 - data/ext/google/protobuf_c/map.c +3 -0
 - data/ext/google/protobuf_c/message.c +3 -3
 - data/ext/google/protobuf_c/repeated_field.c +1 -1
 - data/ext/google/protobuf_c/ruby-upb.c +604 -291
 - data/ext/google/protobuf_c/ruby-upb.h +420 -127
 - data/lib/google/protobuf/api_pb.rb +1 -0
 - data/lib/google/protobuf/descriptor_dsl.rb +458 -0
 - data/lib/google/protobuf/descriptor_pb.rb +268 -0
 - data/lib/google/protobuf/type_pb.rb +1 -0
 - data/lib/google/protobuf/well_known_types.rb +5 -0
 - data/lib/google/protobuf.rb +1 -69
 - data/tests/basic.rb +38 -1
 - data/tests/stress.rb +1 -1
 - metadata +8 -27
 - data/ext/google/protobuf_c/third_party/wyhash/wyhash.h +0 -145
 
| 
         @@ -0,0 +1,268 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # Generated by the protocol buffer compiler.  DO NOT EDIT!
         
     | 
| 
      
 2 
     | 
    
         
            +
            # source: google/protobuf/descriptor.proto
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            require 'google/protobuf'
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
            descriptor_data = File.binread(__FILE__).split("\n__END__\n", 2)[1]
         
     | 
| 
      
 7 
     | 
    
         
            +
            Google::Protobuf::DescriptorPool.generated_pool.add_serialized_file(descriptor_data)
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
            module Google
         
     | 
| 
      
 10 
     | 
    
         
            +
              module Protobuf
         
     | 
| 
      
 11 
     | 
    
         
            +
                FileDescriptorSet = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.FileDescriptorSet").msgclass
         
     | 
| 
      
 12 
     | 
    
         
            +
                FileDescriptorProto = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.FileDescriptorProto").msgclass
         
     | 
| 
      
 13 
     | 
    
         
            +
                DescriptorProto = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.DescriptorProto").msgclass
         
     | 
| 
      
 14 
     | 
    
         
            +
                DescriptorProto::ExtensionRange = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.DescriptorProto.ExtensionRange").msgclass
         
     | 
| 
      
 15 
     | 
    
         
            +
                DescriptorProto::ReservedRange = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.DescriptorProto.ReservedRange").msgclass
         
     | 
| 
      
 16 
     | 
    
         
            +
                ExtensionRangeOptions = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.ExtensionRangeOptions").msgclass
         
     | 
| 
      
 17 
     | 
    
         
            +
                FieldDescriptorProto = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.FieldDescriptorProto").msgclass
         
     | 
| 
      
 18 
     | 
    
         
            +
                FieldDescriptorProto::Type = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.FieldDescriptorProto.Type").enummodule
         
     | 
| 
      
 19 
     | 
    
         
            +
                FieldDescriptorProto::Label = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.FieldDescriptorProto.Label").enummodule
         
     | 
| 
      
 20 
     | 
    
         
            +
                OneofDescriptorProto = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.OneofDescriptorProto").msgclass
         
     | 
| 
      
 21 
     | 
    
         
            +
                EnumDescriptorProto = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.EnumDescriptorProto").msgclass
         
     | 
| 
      
 22 
     | 
    
         
            +
                EnumDescriptorProto::EnumReservedRange = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.EnumDescriptorProto.EnumReservedRange").msgclass
         
     | 
| 
      
 23 
     | 
    
         
            +
                EnumValueDescriptorProto = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.EnumValueDescriptorProto").msgclass
         
     | 
| 
      
 24 
     | 
    
         
            +
                ServiceDescriptorProto = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.ServiceDescriptorProto").msgclass
         
     | 
| 
      
 25 
     | 
    
         
            +
                MethodDescriptorProto = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.MethodDescriptorProto").msgclass
         
     | 
| 
      
 26 
     | 
    
         
            +
                FileOptions = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.FileOptions").msgclass
         
     | 
| 
      
 27 
     | 
    
         
            +
                FileOptions::OptimizeMode = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.FileOptions.OptimizeMode").enummodule
         
     | 
| 
      
 28 
     | 
    
         
            +
                MessageOptions = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.MessageOptions").msgclass
         
     | 
| 
      
 29 
     | 
    
         
            +
                FieldOptions = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.FieldOptions").msgclass
         
     | 
| 
      
 30 
     | 
    
         
            +
                FieldOptions::CType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.FieldOptions.CType").enummodule
         
     | 
| 
      
 31 
     | 
    
         
            +
                FieldOptions::JSType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.FieldOptions.JSType").enummodule
         
     | 
| 
      
 32 
     | 
    
         
            +
                OneofOptions = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.OneofOptions").msgclass
         
     | 
| 
      
 33 
     | 
    
         
            +
                EnumOptions = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.EnumOptions").msgclass
         
     | 
| 
      
 34 
     | 
    
         
            +
                EnumValueOptions = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.EnumValueOptions").msgclass
         
     | 
| 
      
 35 
     | 
    
         
            +
                ServiceOptions = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.ServiceOptions").msgclass
         
     | 
| 
      
 36 
     | 
    
         
            +
                MethodOptions = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.MethodOptions").msgclass
         
     | 
| 
      
 37 
     | 
    
         
            +
                MethodOptions::IdempotencyLevel = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.MethodOptions.IdempotencyLevel").enummodule
         
     | 
| 
      
 38 
     | 
    
         
            +
                UninterpretedOption = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.UninterpretedOption").msgclass
         
     | 
| 
      
 39 
     | 
    
         
            +
                UninterpretedOption::NamePart = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.UninterpretedOption.NamePart").msgclass
         
     | 
| 
      
 40 
     | 
    
         
            +
                SourceCodeInfo = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.SourceCodeInfo").msgclass
         
     | 
| 
      
 41 
     | 
    
         
            +
                SourceCodeInfo::Location = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.SourceCodeInfo.Location").msgclass
         
     | 
| 
      
 42 
     | 
    
         
            +
                GeneratedCodeInfo = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.GeneratedCodeInfo").msgclass
         
     | 
| 
      
 43 
     | 
    
         
            +
                GeneratedCodeInfo::Annotation = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.protobuf.GeneratedCodeInfo.Annotation").msgclass
         
     | 
| 
      
 44 
     | 
    
         
            +
              end
         
     | 
| 
      
 45 
     | 
    
         
            +
            end
         
     | 
| 
      
 46 
     | 
    
         
            +
             
     | 
| 
      
 47 
     | 
    
         
            +
            __END__
         
     | 
| 
      
 48 
     | 
    
         
            +
             
     | 
| 
      
 49 
     | 
    
         
            +
             google/protobuf/descriptor.protogoogle.protobuf"G
         
     | 
| 
      
 50 
     | 
    
         
            +
            FileDescriptorSet2
         
     | 
| 
      
 51 
     | 
    
         
            +
            file (2$.google.protobuf.FileDescriptorProto"�
         
     | 
| 
      
 52 
     | 
    
         
            +
            FileDescriptorProto
         
     | 
| 
      
 53 
     | 
    
         
            +
            name (	
         
     | 
| 
      
 54 
     | 
    
         
            +
            package (	
         
     | 
| 
      
 55 
     | 
    
         
            +
             
     | 
| 
      
 56 
     | 
    
         
            +
            dependency (	
         
     | 
| 
      
 57 
     | 
    
         
            +
            public_dependency
         
     | 
| 
      
 58 
     | 
    
         
            +
             (
         
     | 
| 
      
 59 
     | 
    
         
            +
            weak_dependency (6
         
     | 
| 
      
 60 
     | 
    
         
            +
            message_type (2 .google.protobuf.DescriptorProto7
         
     | 
| 
      
 61 
     | 
    
         
            +
            	enum_type (2$.google.protobuf.EnumDescriptorProto8
         
     | 
| 
      
 62 
     | 
    
         
            +
            service (2'.google.protobuf.ServiceDescriptorProto8
         
     | 
| 
      
 63 
     | 
    
         
            +
            	extension (2%.google.protobuf.FieldDescriptorProto-
         
     | 
| 
      
 64 
     | 
    
         
            +
            options (2.google.protobuf.FileOptions9
         
     | 
| 
      
 65 
     | 
    
         
            +
            source_code_info	 (2.google.protobuf.SourceCodeInfo
         
     | 
| 
      
 66 
     | 
    
         
            +
            syntax (	"�
         
     | 
| 
      
 67 
     | 
    
         
            +
            DescriptorProto
         
     | 
| 
      
 68 
     | 
    
         
            +
            name (	4
         
     | 
| 
      
 69 
     | 
    
         
            +
            field (2%.google.protobuf.FieldDescriptorProto8
         
     | 
| 
      
 70 
     | 
    
         
            +
            	extension (2%.google.protobuf.FieldDescriptorProto5
         
     | 
| 
      
 71 
     | 
    
         
            +
            nested_type (2 .google.protobuf.DescriptorProto7
         
     | 
| 
      
 72 
     | 
    
         
            +
            	enum_type (2$.google.protobuf.EnumDescriptorProtoH
         
     | 
| 
      
 73 
     | 
    
         
            +
            extension_range (2/.google.protobuf.DescriptorProto.ExtensionRange9
         
     | 
| 
      
 74 
     | 
    
         
            +
             
     | 
| 
      
 75 
     | 
    
         
            +
            oneof_decl (2%.google.protobuf.OneofDescriptorProto0
         
     | 
| 
      
 76 
     | 
    
         
            +
            options (2.google.protobuf.MessageOptionsF
         
     | 
| 
      
 77 
     | 
    
         
            +
            reserved_range	 (2..google.protobuf.DescriptorProto.ReservedRange
         
     | 
| 
      
 78 
     | 
    
         
            +
             
     | 
| 
      
 79 
     | 
    
         
            +
             (	e
         
     | 
| 
      
 80 
     | 
    
         
            +
            ExtensionRange
         
     | 
| 
      
 81 
     | 
    
         
            +
            start (
         
     | 
| 
      
 82 
     | 
    
         
            +
            end (7
         
     | 
| 
      
 83 
     | 
    
         
            +
            options (2&.google.protobuf.ExtensionRangeOptions+
         
     | 
| 
      
 84 
     | 
    
         
            +
             
     | 
| 
      
 85 
     | 
    
         
            +
            start (
         
     | 
| 
      
 86 
     | 
    
         
            +
            end ("g
         
     | 
| 
      
 87 
     | 
    
         
            +
            ExtensionRangeOptionsC
         
     | 
| 
      
 88 
     | 
    
         
            +
            uninterpreted_option� (2$.google.protobuf.UninterpretedOption*	�����"�
         
     | 
| 
      
 89 
     | 
    
         
            +
            FieldDescriptorProto
         
     | 
| 
      
 90 
     | 
    
         
            +
            name (	
         
     | 
| 
      
 91 
     | 
    
         
            +
            number (:
         
     | 
| 
      
 92 
     | 
    
         
            +
            label (2+.google.protobuf.FieldDescriptorProto.Label8
         
     | 
| 
      
 93 
     | 
    
         
            +
            type (2*.google.protobuf.FieldDescriptorProto.Type
         
     | 
| 
      
 94 
     | 
    
         
            +
            	type_name (	
         
     | 
| 
      
 95 
     | 
    
         
            +
            extendee (	
         
     | 
| 
      
 96 
     | 
    
         
            +
             
     | 
| 
      
 97 
     | 
    
         
            +
            oneof_index	 (
         
     | 
| 
      
 98 
     | 
    
         
            +
            	json_name
         
     | 
| 
      
 99 
     | 
    
         
            +
             (	.
         
     | 
| 
      
 100 
     | 
    
         
            +
            options (2.google.protobuf.FieldOptions
         
     | 
| 
      
 101 
     | 
    
         
            +
            proto3_optional ("�
         
     | 
| 
      
 102 
     | 
    
         
            +
            Type
         
     | 
| 
      
 103 
     | 
    
         
            +
            TYPE_DOUBLE
         
     | 
| 
      
 104 
     | 
    
         
            +
             
     | 
| 
      
 105 
     | 
    
         
            +
            TYPE_FLOAT
         
     | 
| 
      
 106 
     | 
    
         
            +
             
     | 
| 
      
 107 
     | 
    
         
            +
            TYPE_INT64
         
     | 
| 
      
 108 
     | 
    
         
            +
            TYPE_UINT64
         
     | 
| 
      
 109 
     | 
    
         
            +
             
     | 
| 
      
 110 
     | 
    
         
            +
            TYPE_INT32
         
     | 
| 
      
 111 
     | 
    
         
            +
            TYPE_FIXED64
         
     | 
| 
      
 112 
     | 
    
         
            +
            TYPE_FIXED32
         
     | 
| 
      
 113 
     | 
    
         
            +
            	TYPE_BOOL
         
     | 
| 
      
 114 
     | 
    
         
            +
            TYPE_STRING	
         
     | 
| 
      
 115 
     | 
    
         
            +
             
     | 
| 
      
 116 
     | 
    
         
            +
            TYPE_GROUP
         
     | 
| 
      
 117 
     | 
    
         
            +
            
         
     | 
| 
      
 118 
     | 
    
         
            +
            TYPE_MESSAGE
         
     | 
| 
      
 119 
     | 
    
         
            +
             
     | 
| 
      
 120 
     | 
    
         
            +
            TYPE_BYTES
         
     | 
| 
      
 121 
     | 
    
         
            +
            TYPE_UINT32
         
     | 
| 
      
 122 
     | 
    
         
            +
            	TYPE_ENUM
         
     | 
| 
      
 123 
     | 
    
         
            +
             
     | 
| 
      
 124 
     | 
    
         
            +
             
     | 
| 
      
 125 
     | 
    
         
            +
            TYPE_SINT32
         
     | 
| 
      
 126 
     | 
    
         
            +
            TYPE_SINT64"C
         
     | 
| 
      
 127 
     | 
    
         
            +
            Label
         
     | 
| 
      
 128 
     | 
    
         
            +
            LABEL_OPTIONAL
         
     | 
| 
      
 129 
     | 
    
         
            +
            LABEL_REQUIRED
         
     | 
| 
      
 130 
     | 
    
         
            +
            LABEL_REPEATED"T
         
     | 
| 
      
 131 
     | 
    
         
            +
            OneofDescriptorProto
         
     | 
| 
      
 132 
     | 
    
         
            +
            name (	.
         
     | 
| 
      
 133 
     | 
    
         
            +
            options (2.google.protobuf.OneofOptions"�
         
     | 
| 
      
 134 
     | 
    
         
            +
            EnumDescriptorProto
         
     | 
| 
      
 135 
     | 
    
         
            +
            name (	8
         
     | 
| 
      
 136 
     | 
    
         
            +
            value (2).google.protobuf.EnumValueDescriptorProto-
         
     | 
| 
      
 137 
     | 
    
         
            +
            options (2.google.protobuf.EnumOptionsN
         
     | 
| 
      
 138 
     | 
    
         
            +
            reserved_range (26.google.protobuf.EnumDescriptorProto.EnumReservedRange
         
     | 
| 
      
 139 
     | 
    
         
            +
             
     | 
| 
      
 140 
     | 
    
         
            +
            EnumReservedRange
         
     | 
| 
      
 141 
     | 
    
         
            +
            start (
         
     | 
| 
      
 142 
     | 
    
         
            +
            end ("l
         
     | 
| 
      
 143 
     | 
    
         
            +
            EnumValueDescriptorProto
         
     | 
| 
      
 144 
     | 
    
         
            +
            name (	
         
     | 
| 
      
 145 
     | 
    
         
            +
            number (2
         
     | 
| 
      
 146 
     | 
    
         
            +
            options (2!.google.protobuf.EnumValueOptions"�
         
     | 
| 
      
 147 
     | 
    
         
            +
            ServiceDescriptorProto
         
     | 
| 
      
 148 
     | 
    
         
            +
            name (	6
         
     | 
| 
      
 149 
     | 
    
         
            +
            method (2&.google.protobuf.MethodDescriptorProto0
         
     | 
| 
      
 150 
     | 
    
         
            +
            options (2.google.protobuf.ServiceOptions"�
         
     | 
| 
      
 151 
     | 
    
         
            +
            MethodDescriptorProto
         
     | 
| 
      
 152 
     | 
    
         
            +
            name (	
         
     | 
| 
      
 153 
     | 
    
         
            +
             
     | 
| 
      
 154 
     | 
    
         
            +
            input_type (	
         
     | 
| 
      
 155 
     | 
    
         
            +
            output_type (	/
         
     | 
| 
      
 156 
     | 
    
         
            +
            options (2.google.protobuf.MethodOptions
         
     | 
| 
      
 157 
     | 
    
         
            +
            client_streaming (:false
         
     | 
| 
      
 158 
     | 
    
         
            +
            server_streaming (:false"�
         
     | 
| 
      
 159 
     | 
    
         
            +
            FileOptions
         
     | 
| 
      
 160 
     | 
    
         
            +
            java_package (	
         
     | 
| 
      
 161 
     | 
    
         
            +
            java_outer_classname (	"
         
     | 
| 
      
 162 
     | 
    
         
            +
            java_multiple_files
         
     | 
| 
      
 163 
     | 
    
         
            +
             (:false)
         
     | 
| 
      
 164 
     | 
    
         
            +
            java_generate_equals_and_hash (B%
         
     | 
| 
      
 165 
     | 
    
         
            +
            java_string_check_utf8 (:falseF
         
     | 
| 
      
 166 
     | 
    
         
            +
            optimize_for	 (2).google.protobuf.FileOptions.OptimizeMode:SPEED
         
     | 
| 
      
 167 
     | 
    
         
            +
             
     | 
| 
      
 168 
     | 
    
         
            +
            go_package (	"
         
     | 
| 
      
 169 
     | 
    
         
            +
            cc_generic_services (:false$
         
     | 
| 
      
 170 
     | 
    
         
            +
            java_generic_services (:false"
         
     | 
| 
      
 171 
     | 
    
         
            +
            py_generic_services (:false#
         
     | 
| 
      
 172 
     | 
    
         
            +
            php_generic_services* (:false
         
     | 
| 
      
 173 
     | 
    
         
            +
             
     | 
| 
      
 174 
     | 
    
         
            +
            deprecated (:false
         
     | 
| 
      
 175 
     | 
    
         
            +
            cc_enable_arenas (:true
         
     | 
| 
      
 176 
     | 
    
         
            +
            objc_class_prefix$ (	
         
     | 
| 
      
 177 
     | 
    
         
            +
            csharp_namespace% (	
         
     | 
| 
      
 178 
     | 
    
         
            +
            swift_prefix' (	
         
     | 
| 
      
 179 
     | 
    
         
            +
            php_class_prefix( (	
         
     | 
| 
      
 180 
     | 
    
         
            +
             
     | 
| 
      
 181 
     | 
    
         
            +
            php_metadata_namespace, (	
         
     | 
| 
      
 182 
     | 
    
         
            +
            ruby_package- (	C
         
     | 
| 
      
 183 
     | 
    
         
            +
            uninterpreted_option� (2$.google.protobuf.UninterpretedOption":
         
     | 
| 
      
 184 
     | 
    
         
            +
            OptimizeMode	
         
     | 
| 
      
 185 
     | 
    
         
            +
            SPEED
         
     | 
| 
      
 186 
     | 
    
         
            +
            	CODE_SIZE
         
     | 
| 
      
 187 
     | 
    
         
            +
            LITE_RUNTIME*	�����J&'"�
         
     | 
| 
      
 188 
     | 
    
         
            +
            MessageOptions&
         
     | 
| 
      
 189 
     | 
    
         
            +
            message_set_wire_format (:false.
         
     | 
| 
      
 190 
     | 
    
         
            +
            no_standard_descriptor_accessor (:false
         
     | 
| 
      
 191 
     | 
    
         
            +
             
     | 
| 
      
 192 
     | 
    
         
            +
            deprecated (:false
         
     | 
| 
      
 193 
     | 
    
         
            +
            	map_entry (C
         
     | 
| 
      
 194 
     | 
    
         
            +
            uninterpreted_option� (2$.google.protobuf.UninterpretedOption*	�����JJJJ	J	
         
     | 
| 
      
 195 
     | 
    
         
            +
            "�
         
     | 
| 
      
 196 
     | 
    
         
            +
            FieldOptions:
         
     | 
| 
      
 197 
     | 
    
         
            +
            ctype (2#.google.protobuf.FieldOptions.CType:STRING
         
     | 
| 
      
 198 
     | 
    
         
            +
            packed (?
         
     | 
| 
      
 199 
     | 
    
         
            +
            jstype (2$.google.protobuf.FieldOptions.JSType:	JS_NORMAL
         
     | 
| 
      
 200 
     | 
    
         
            +
            lazy (:false
         
     | 
| 
      
 201 
     | 
    
         
            +
             
     | 
| 
      
 202 
     | 
    
         
            +
            deprecated (:false
         
     | 
| 
      
 203 
     | 
    
         
            +
            weak
         
     | 
| 
      
 204 
     | 
    
         
            +
             (:falseC
         
     | 
| 
      
 205 
     | 
    
         
            +
            uninterpreted_option� (2$.google.protobuf.UninterpretedOption"/
         
     | 
| 
      
 206 
     | 
    
         
            +
            CType
         
     | 
| 
      
 207 
     | 
    
         
            +
             
     | 
| 
      
 208 
     | 
    
         
            +
            STRING
         
     | 
| 
      
 209 
     | 
    
         
            +
            CORD
         
     | 
| 
      
 210 
     | 
    
         
            +
            STRING_PIECE"5
         
     | 
| 
      
 211 
     | 
    
         
            +
            JSType
         
     | 
| 
      
 212 
     | 
    
         
            +
            	JS_NORMAL
         
     | 
| 
      
 213 
     | 
    
         
            +
            	JS_STRING
         
     | 
| 
      
 214 
     | 
    
         
            +
            	JS_NUMBER*	�����J"^
         
     | 
| 
      
 215 
     | 
    
         
            +
            OneofOptionsC
         
     | 
| 
      
 216 
     | 
    
         
            +
            uninterpreted_option� (2$.google.protobuf.UninterpretedOption*	�����"�
         
     | 
| 
      
 217 
     | 
    
         
            +
            EnumOptions
         
     | 
| 
      
 218 
     | 
    
         
            +
            allow_alias (
         
     | 
| 
      
 219 
     | 
    
         
            +
             
     | 
| 
      
 220 
     | 
    
         
            +
            deprecated (:falseC
         
     | 
| 
      
 221 
     | 
    
         
            +
            uninterpreted_option� (2$.google.protobuf.UninterpretedOption*	�����J"}
         
     | 
| 
      
 222 
     | 
    
         
            +
            EnumValueOptions
         
     | 
| 
      
 223 
     | 
    
         
            +
             
     | 
| 
      
 224 
     | 
    
         
            +
            deprecated (:falseC
         
     | 
| 
      
 225 
     | 
    
         
            +
            uninterpreted_option� (2$.google.protobuf.UninterpretedOption*	�����"{
         
     | 
| 
      
 226 
     | 
    
         
            +
            ServiceOptions
         
     | 
| 
      
 227 
     | 
    
         
            +
             
     | 
| 
      
 228 
     | 
    
         
            +
            deprecated! (:falseC
         
     | 
| 
      
 229 
     | 
    
         
            +
            uninterpreted_option� (2$.google.protobuf.UninterpretedOption*	�����"�
         
     | 
| 
      
 230 
     | 
    
         
            +
             
     | 
| 
      
 231 
     | 
    
         
            +
             
     | 
| 
      
 232 
     | 
    
         
            +
            deprecated! (:false_
         
     | 
| 
      
 233 
     | 
    
         
            +
            idempotency_level" (2/.google.protobuf.MethodOptions.IdempotencyLevel:IDEMPOTENCY_UNKNOWNC
         
     | 
| 
      
 234 
     | 
    
         
            +
            uninterpreted_option� (2$.google.protobuf.UninterpretedOption"P
         
     | 
| 
      
 235 
     | 
    
         
            +
            IdempotencyLevel
         
     | 
| 
      
 236 
     | 
    
         
            +
            IDEMPOTENCY_UNKNOWN
         
     | 
| 
      
 237 
     | 
    
         
            +
            NO_SIDE_EFFECTS
         
     | 
| 
      
 238 
     | 
    
         
            +
             
     | 
| 
      
 239 
     | 
    
         
            +
            IDEMPOTENT*	�����"�
         
     | 
| 
      
 240 
     | 
    
         
            +
            UninterpretedOption;
         
     | 
| 
      
 241 
     | 
    
         
            +
            name (2-.google.protobuf.UninterpretedOption.NamePart
         
     | 
| 
      
 242 
     | 
    
         
            +
            identifier_value (	
         
     | 
| 
      
 243 
     | 
    
         
            +
            positive_int_value (
         
     | 
| 
      
 244 
     | 
    
         
            +
            negative_int_value (
         
     | 
| 
      
 245 
     | 
    
         
            +
            double_value (
         
     | 
| 
      
 246 
     | 
    
         
            +
            string_value (
         
     | 
| 
      
 247 
     | 
    
         
            +
            aggregate_value (	3
         
     | 
| 
      
 248 
     | 
    
         
            +
            NamePart
         
     | 
| 
      
 249 
     | 
    
         
            +
            	name_part (	
         
     | 
| 
      
 250 
     | 
    
         
            +
            is_extension ("�
         
     | 
| 
      
 251 
     | 
    
         
            +
            SourceCodeInfo:
         
     | 
| 
      
 252 
     | 
    
         
            +
            location (2(.google.protobuf.SourceCodeInfo.Location�
         
     | 
| 
      
 253 
     | 
    
         
            +
            Location
         
     | 
| 
      
 254 
     | 
    
         
            +
            path (B
         
     | 
| 
      
 255 
     | 
    
         
            +
            span (B
         
     | 
| 
      
 256 
     | 
    
         
            +
            leading_comments (	
         
     | 
| 
      
 257 
     | 
    
         
            +
            trailing_comments (	!
         
     | 
| 
      
 258 
     | 
    
         
            +
            leading_detached_comments (	"�
         
     | 
| 
      
 259 
     | 
    
         
            +
            GeneratedCodeInfoA
         
     | 
| 
      
 260 
     | 
    
         
            +
             
     | 
| 
      
 261 
     | 
    
         
            +
            annotation (2-.google.protobuf.GeneratedCodeInfo.AnnotationO
         
     | 
| 
      
 262 
     | 
    
         
            +
             
     | 
| 
      
 263 
     | 
    
         
            +
            Annotation
         
     | 
| 
      
 264 
     | 
    
         
            +
            path (B
         
     | 
| 
      
 265 
     | 
    
         
            +
            source_file (	
         
     | 
| 
      
 266 
     | 
    
         
            +
            begin (
         
     | 
| 
      
 267 
     | 
    
         
            +
            end (B~
         
     | 
| 
      
 268 
     | 
    
         
            +
            com.google.protobufBDescriptorProtosHZ-google.golang.org/protobuf/types/descriptorpb��GPB�Google.Protobuf.Reflection
         
     | 
| 
         @@ -5,6 +5,7 @@ require 'google/protobuf' 
     | 
|
| 
       5 
5 
     | 
    
         | 
| 
       6 
6 
     | 
    
         
             
            require 'google/protobuf/any_pb'
         
     | 
| 
       7 
7 
     | 
    
         
             
            require 'google/protobuf/source_context_pb'
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
       8 
9 
     | 
    
         
             
            Google::Protobuf::DescriptorPool.generated_pool.build do
         
     | 
| 
       9 
10 
     | 
    
         
             
              add_file("google/protobuf/type.proto", :syntax => :proto3) do
         
     | 
| 
       10 
11 
     | 
    
         
             
                add_message "google.protobuf.Type" do
         
     | 
    
        data/lib/google/protobuf.rb
    CHANGED
    
    | 
         @@ -51,77 +51,9 @@ else 
     | 
|
| 
       51 
51 
     | 
    
         
             
                require 'google/protobuf_c'
         
     | 
| 
       52 
52 
     | 
    
         
             
              end
         
     | 
| 
       53 
53 
     | 
    
         | 
| 
       54 
     | 
    
         
            -
              module Google
         
     | 
| 
       55 
     | 
    
         
            -
                module Protobuf
         
     | 
| 
       56 
     | 
    
         
            -
                  module Internal
         
     | 
| 
       57 
     | 
    
         
            -
                    def self.infer_package(names)
         
     | 
| 
       58 
     | 
    
         
            -
                      # Package is longest common prefix ending in '.', if any.
         
     | 
| 
       59 
     | 
    
         
            -
                      if not names.empty?
         
     | 
| 
       60 
     | 
    
         
            -
                        min, max = names.minmax
         
     | 
| 
       61 
     | 
    
         
            -
                        last_common_dot = nil
         
     | 
| 
       62 
     | 
    
         
            -
                        min.size.times { |i|
         
     | 
| 
       63 
     | 
    
         
            -
                          if min[i] != max[i] then break end
         
     | 
| 
       64 
     | 
    
         
            -
                          if min[i] == ?. then last_common_dot = i end
         
     | 
| 
       65 
     | 
    
         
            -
                        }
         
     | 
| 
       66 
     | 
    
         
            -
                        if last_common_dot
         
     | 
| 
       67 
     | 
    
         
            -
                          return min.slice(0, last_common_dot)
         
     | 
| 
       68 
     | 
    
         
            -
                        end
         
     | 
| 
       69 
     | 
    
         
            -
                      end
         
     | 
| 
       70 
     | 
    
         
            -
             
     | 
| 
       71 
     | 
    
         
            -
                      nil
         
     | 
| 
       72 
     | 
    
         
            -
                    end
         
     | 
| 
       73 
     | 
    
         
            -
             
     | 
| 
       74 
     | 
    
         
            -
                    class NestingBuilder
         
     | 
| 
       75 
     | 
    
         
            -
                      def initialize(msg_names, enum_names)
         
     | 
| 
       76 
     | 
    
         
            -
                        @to_pos = {nil=>nil}
         
     | 
| 
       77 
     | 
    
         
            -
                        @msg_children = Hash.new { |hash, key| hash[key] = [] }
         
     | 
| 
       78 
     | 
    
         
            -
                        @enum_children = Hash.new { |hash, key| hash[key] = [] }
         
     | 
| 
       79 
     | 
    
         
            -
             
     | 
| 
       80 
     | 
    
         
            -
                        msg_names.each_with_index { |name, idx| @to_pos[name] = idx }
         
     | 
| 
       81 
     | 
    
         
            -
                        enum_names.each_with_index { |name, idx| @to_pos[name] = idx }
         
     | 
| 
       82 
     | 
    
         
            -
             
     | 
| 
       83 
     | 
    
         
            -
                        msg_names.each { |name| @msg_children[parent(name)] << name }
         
     | 
| 
       84 
     | 
    
         
            -
                        enum_names.each { |name| @enum_children[parent(name)] << name }
         
     | 
| 
       85 
     | 
    
         
            -
                      end
         
     | 
| 
       86 
     | 
    
         
            -
             
     | 
| 
       87 
     | 
    
         
            -
                      def build(package)
         
     | 
| 
       88 
     | 
    
         
            -
                        return build_msg(package)
         
     | 
| 
       89 
     | 
    
         
            -
                      end
         
     | 
| 
       90 
     | 
    
         
            -
             
     | 
| 
       91 
     | 
    
         
            -
                      private
         
     | 
| 
       92 
     | 
    
         
            -
                      def build_msg(msg)
         
     | 
| 
       93 
     | 
    
         
            -
                        return {
         
     | 
| 
       94 
     | 
    
         
            -
                          :pos => @to_pos[msg],
         
     | 
| 
       95 
     | 
    
         
            -
                          :msgs => @msg_children[msg].map { |child| build_msg(child) },
         
     | 
| 
       96 
     | 
    
         
            -
                          :enums => @enum_children[msg].map { |child| @to_pos[child] },
         
     | 
| 
       97 
     | 
    
         
            -
                        }
         
     | 
| 
       98 
     | 
    
         
            -
                      end
         
     | 
| 
       99 
     | 
    
         
            -
             
     | 
| 
       100 
     | 
    
         
            -
                      private
         
     | 
| 
       101 
     | 
    
         
            -
                      def parent(name)
         
     | 
| 
       102 
     | 
    
         
            -
                        idx = name.rindex(?.)
         
     | 
| 
       103 
     | 
    
         
            -
                        if idx
         
     | 
| 
       104 
     | 
    
         
            -
                          return name.slice(0, idx)
         
     | 
| 
       105 
     | 
    
         
            -
                        else
         
     | 
| 
       106 
     | 
    
         
            -
                          return nil
         
     | 
| 
       107 
     | 
    
         
            -
                        end
         
     | 
| 
       108 
     | 
    
         
            -
                      end
         
     | 
| 
       109 
     | 
    
         
            -
                    end
         
     | 
| 
       110 
     | 
    
         
            -
             
     | 
| 
       111 
     | 
    
         
            -
                    def self.fixup_descriptor(package, msg_names, enum_names)
         
     | 
| 
       112 
     | 
    
         
            -
                      if package.nil?
         
     | 
| 
       113 
     | 
    
         
            -
                        package = self.infer_package(msg_names + enum_names)
         
     | 
| 
       114 
     | 
    
         
            -
                      end
         
     | 
| 
       115 
     | 
    
         
            -
             
     | 
| 
       116 
     | 
    
         
            -
                      nesting = NestingBuilder.new(msg_names, enum_names).build(package)
         
     | 
| 
       117 
     | 
    
         
            -
             
     | 
| 
       118 
     | 
    
         
            -
                      return package, nesting
         
     | 
| 
       119 
     | 
    
         
            -
                    end
         
     | 
| 
       120 
     | 
    
         
            -
                  end
         
     | 
| 
       121 
     | 
    
         
            -
                end
         
     | 
| 
       122 
     | 
    
         
            -
              end
         
     | 
| 
       123 
54 
     | 
    
         
             
            end
         
     | 
| 
       124 
55 
     | 
    
         | 
| 
      
 56 
     | 
    
         
            +
            require 'google/protobuf/descriptor_dsl'
         
     | 
| 
       125 
57 
     | 
    
         
             
            require 'google/protobuf/repeated_field'
         
     | 
| 
       126 
58 
     | 
    
         | 
| 
       127 
59 
     | 
    
         
             
            module Google
         
     | 
    
        data/tests/basic.rb
    CHANGED
    
    | 
         @@ -66,10 +66,19 @@ module BasicTest 
     | 
|
| 
       66 
66 
     | 
    
         
             
                def test_issue_8559_crash
         
     | 
| 
       67 
67 
     | 
    
         
             
                  msg = TestMessage.new
         
     | 
| 
       68 
68 
     | 
    
         
             
                  msg.repeated_int32 = ::Google::Protobuf::RepeatedField.new(:int32, [1, 2, 3])
         
     | 
| 
       69 
     | 
    
         
            -
                   
     | 
| 
      
 69 
     | 
    
         
            +
                  # TODO: Remove the platform check once https://github.com/jruby/jruby/issues/6818 is released in JRuby 9.3.0.0
         
     | 
| 
      
 70 
     | 
    
         
            +
                  GC.start(full_mark: true, immediate_sweep: true) unless RUBY_PLATFORM == "java"
         
     | 
| 
       70 
71 
     | 
    
         
             
                  TestMessage.encode(msg)
         
     | 
| 
       71 
72 
     | 
    
         
             
                end
         
     | 
| 
       72 
73 
     | 
    
         | 
| 
      
 74 
     | 
    
         
            +
                def test_issue_9440
         
     | 
| 
      
 75 
     | 
    
         
            +
                  msg = HelloRequest.new
         
     | 
| 
      
 76 
     | 
    
         
            +
                  msg.id = 8
         
     | 
| 
      
 77 
     | 
    
         
            +
                  assert_equal 8, msg.id
         
     | 
| 
      
 78 
     | 
    
         
            +
                  msg.version = '1'
         
     | 
| 
      
 79 
     | 
    
         
            +
                  assert_equal 8, msg.id
         
     | 
| 
      
 80 
     | 
    
         
            +
                end
         
     | 
| 
      
 81 
     | 
    
         
            +
             
     | 
| 
       73 
82 
     | 
    
         
             
                def test_has_field
         
     | 
| 
       74 
83 
     | 
    
         
             
                  m = TestSingularFields.new
         
     | 
| 
       75 
84 
     | 
    
         
             
                  assert !m.has_singular_msg?
         
     | 
| 
         @@ -168,6 +177,17 @@ module BasicTest 
     | 
|
| 
       168 
177 
     | 
    
         
             
                  assert_equal nil, m.singular_msg
         
     | 
| 
       169 
178 
     | 
    
         
             
                end
         
     | 
| 
       170 
179 
     | 
    
         | 
| 
      
 180 
     | 
    
         
            +
                def test_import_proto2
         
     | 
| 
      
 181 
     | 
    
         
            +
                  m = TestMessage.new
         
     | 
| 
      
 182 
     | 
    
         
            +
                  assert !m.has_optional_proto2_submessage?
         
     | 
| 
      
 183 
     | 
    
         
            +
                  m.optional_proto2_submessage = ::FooBar::Proto2::TestImportedMessage.new
         
     | 
| 
      
 184 
     | 
    
         
            +
                  assert m.has_optional_proto2_submessage?
         
     | 
| 
      
 185 
     | 
    
         
            +
                  assert TestMessage.descriptor.lookup('optional_proto2_submessage').has?(m)
         
     | 
| 
      
 186 
     | 
    
         
            +
             
     | 
| 
      
 187 
     | 
    
         
            +
                  m.clear_optional_proto2_submessage
         
     | 
| 
      
 188 
     | 
    
         
            +
                  assert !m.has_optional_proto2_submessage?
         
     | 
| 
      
 189 
     | 
    
         
            +
                end
         
     | 
| 
      
 190 
     | 
    
         
            +
             
     | 
| 
       171 
191 
     | 
    
         
             
                def test_clear_repeated_fields
         
     | 
| 
       172 
192 
     | 
    
         
             
                  m = TestMessage.new
         
     | 
| 
       173 
193 
     | 
    
         | 
| 
         @@ -487,6 +507,7 @@ module BasicTest 
     | 
|
| 
       487 
507 
     | 
    
         
             
                    :optional_int64=>0,
         
     | 
| 
       488 
508 
     | 
    
         
             
                    :optional_msg=>nil,
         
     | 
| 
       489 
509 
     | 
    
         
             
                    :optional_msg2=>nil,
         
     | 
| 
      
 510 
     | 
    
         
            +
                    :optional_proto2_submessage=>nil,
         
     | 
| 
       490 
511 
     | 
    
         
             
                    :optional_string=>"foo",
         
     | 
| 
       491 
512 
     | 
    
         
             
                    :optional_uint32=>0,
         
     | 
| 
       492 
513 
     | 
    
         
             
                    :optional_uint64=>0,
         
     | 
| 
         @@ -607,5 +628,21 @@ module BasicTest 
     | 
|
| 
       607 
628 
     | 
    
         
             
                  assert_raise(FrozenErrorType) { m.map_string_int32.delete('a') }
         
     | 
| 
       608 
629 
     | 
    
         
             
                  assert_raise(FrozenErrorType) { m.map_string_int32.clear }
         
     | 
| 
       609 
630 
     | 
    
         
             
                end
         
     | 
| 
      
 631 
     | 
    
         
            +
             
     | 
| 
      
 632 
     | 
    
         
            +
                def test_map_length
         
     | 
| 
      
 633 
     | 
    
         
            +
                  m = proto_module::MapMessage.new
         
     | 
| 
      
 634 
     | 
    
         
            +
                  assert_equal 0, m.map_string_int32.length
         
     | 
| 
      
 635 
     | 
    
         
            +
                  assert_equal 0, m.map_string_msg.length
         
     | 
| 
      
 636 
     | 
    
         
            +
                  assert_equal 0, m.map_string_int32.size
         
     | 
| 
      
 637 
     | 
    
         
            +
                  assert_equal 0, m.map_string_msg.size
         
     | 
| 
      
 638 
     | 
    
         
            +
             
     | 
| 
      
 639 
     | 
    
         
            +
                  m.map_string_int32['a'] = 1
         
     | 
| 
      
 640 
     | 
    
         
            +
                  m.map_string_int32['b'] = 2
         
     | 
| 
      
 641 
     | 
    
         
            +
                  m.map_string_msg['a'] = proto_module::TestMessage2.new
         
     | 
| 
      
 642 
     | 
    
         
            +
                  assert_equal 2, m.map_string_int32.length
         
     | 
| 
      
 643 
     | 
    
         
            +
                  assert_equal 1, m.map_string_msg.length
         
     | 
| 
      
 644 
     | 
    
         
            +
                  assert_equal 2, m.map_string_int32.size
         
     | 
| 
      
 645 
     | 
    
         
            +
                  assert_equal 1, m.map_string_msg.size
         
     | 
| 
      
 646 
     | 
    
         
            +
                end
         
     | 
| 
       610 
647 
     | 
    
         
             
              end
         
     | 
| 
       611 
648 
     | 
    
         
             
            end
         
     | 
    
        data/tests/stress.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | 
         @@ -1,35 +1,29 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: google-protobuf
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 3. 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 3.19.6
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Protobuf Authors
         
     | 
| 
       8 
8 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       9 
9 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
10 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       11 
     | 
    
         
            -
            date:  
     | 
| 
      
 11 
     | 
    
         
            +
            date: 2022-09-29 00:00:00.000000000 Z
         
     | 
| 
       12 
12 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
13 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
14 
     | 
    
         
             
              name: rake-compiler-dock
         
     | 
| 
       15 
15 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       16 
16 
     | 
    
         
             
                requirements:
         
     | 
| 
       17 
     | 
    
         
            -
                - -  
     | 
| 
      
 17 
     | 
    
         
            +
                - - '='
         
     | 
| 
       18 
18 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       19 
19 
     | 
    
         
             
                    version: 1.1.0
         
     | 
| 
       20 
     | 
    
         
            -
                - - "<"
         
     | 
| 
       21 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       22 
     | 
    
         
            -
                    version: '2.0'
         
     | 
| 
       23 
20 
     | 
    
         
             
              type: :development
         
     | 
| 
       24 
21 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       25 
22 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       26 
23 
     | 
    
         
             
                requirements:
         
     | 
| 
       27 
     | 
    
         
            -
                - -  
     | 
| 
      
 24 
     | 
    
         
            +
                - - '='
         
     | 
| 
       28 
25 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       29 
26 
     | 
    
         
             
                    version: 1.1.0
         
     | 
| 
       30 
     | 
    
         
            -
                - - "<"
         
     | 
| 
       31 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       32 
     | 
    
         
            -
                    version: '2.0'
         
     | 
| 
       33 
27 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       34 
28 
     | 
    
         
             
              name: rake-compiler
         
     | 
| 
       35 
29 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
         @@ -64,20 +58,6 @@ dependencies: 
     | 
|
| 
       64 
58 
     | 
    
         
             
                - - ">="
         
     | 
| 
       65 
59 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       66 
60 
     | 
    
         
             
                    version: 3.0.9
         
     | 
| 
       67 
     | 
    
         
            -
            - !ruby/object:Gem::Dependency
         
     | 
| 
       68 
     | 
    
         
            -
              name: rubygems-tasks
         
     | 
| 
       69 
     | 
    
         
            -
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       70 
     | 
    
         
            -
                requirements:
         
     | 
| 
       71 
     | 
    
         
            -
                - - "~>"
         
     | 
| 
       72 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       73 
     | 
    
         
            -
                    version: 0.2.4
         
     | 
| 
       74 
     | 
    
         
            -
              type: :development
         
     | 
| 
       75 
     | 
    
         
            -
              prerelease: false
         
     | 
| 
       76 
     | 
    
         
            -
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       77 
     | 
    
         
            -
                requirements:
         
     | 
| 
       78 
     | 
    
         
            -
                - - "~>"
         
     | 
| 
       79 
     | 
    
         
            -
                  - !ruby/object:Gem::Version
         
     | 
| 
       80 
     | 
    
         
            -
                    version: 0.2.4
         
     | 
| 
       81 
61 
     | 
    
         
             
            description: Protocol Buffers are Google's data interchange format.
         
     | 
| 
       82 
62 
     | 
    
         
             
            email: protobuf@googlegroups.com
         
     | 
| 
       83 
63 
     | 
    
         
             
            executables: []
         
     | 
| 
         @@ -100,11 +80,12 @@ files: 
     | 
|
| 
       100 
80 
     | 
    
         
             
            - ext/google/protobuf_c/repeated_field.h
         
     | 
| 
       101 
81 
     | 
    
         
             
            - ext/google/protobuf_c/ruby-upb.c
         
     | 
| 
       102 
82 
     | 
    
         
             
            - ext/google/protobuf_c/ruby-upb.h
         
     | 
| 
       103 
     | 
    
         
            -
            - ext/google/protobuf_c/third_party/wyhash/wyhash.h
         
     | 
| 
       104 
83 
     | 
    
         
             
            - ext/google/protobuf_c/wrap_memcpy.c
         
     | 
| 
       105 
84 
     | 
    
         
             
            - lib/google/protobuf.rb
         
     | 
| 
       106 
85 
     | 
    
         
             
            - lib/google/protobuf/any_pb.rb
         
     | 
| 
       107 
86 
     | 
    
         
             
            - lib/google/protobuf/api_pb.rb
         
     | 
| 
      
 87 
     | 
    
         
            +
            - lib/google/protobuf/descriptor_dsl.rb
         
     | 
| 
      
 88 
     | 
    
         
            +
            - lib/google/protobuf/descriptor_pb.rb
         
     | 
| 
       108 
89 
     | 
    
         
             
            - lib/google/protobuf/duration_pb.rb
         
     | 
| 
       109 
90 
     | 
    
         
             
            - lib/google/protobuf/empty_pb.rb
         
     | 
| 
       110 
91 
     | 
    
         
             
            - lib/google/protobuf/field_mask_pb.rb
         
     | 
| 
         @@ -123,7 +104,7 @@ homepage: https://developers.google.com/protocol-buffers 
     | 
|
| 
       123 
104 
     | 
    
         
             
            licenses:
         
     | 
| 
       124 
105 
     | 
    
         
             
            - BSD-3-Clause
         
     | 
| 
       125 
106 
     | 
    
         
             
            metadata:
         
     | 
| 
       126 
     | 
    
         
            -
              source_code_uri: https://github.com/protocolbuffers/protobuf/tree/v3. 
     | 
| 
      
 107 
     | 
    
         
            +
              source_code_uri: https://github.com/protocolbuffers/protobuf/tree/v3.19.6/ruby
         
     | 
| 
       127 
108 
     | 
    
         
             
            post_install_message: 
         
     | 
| 
       128 
109 
     | 
    
         
             
            rdoc_options: []
         
     | 
| 
       129 
110 
     | 
    
         
             
            require_paths:
         
     | 
| 
         @@ -139,7 +120,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       139 
120 
     | 
    
         
             
                - !ruby/object:Gem::Version
         
     | 
| 
       140 
121 
     | 
    
         
             
                  version: '0'
         
     | 
| 
       141 
122 
     | 
    
         
             
            requirements: []
         
     | 
| 
       142 
     | 
    
         
            -
            rubygems_version: 3. 
     | 
| 
      
 123 
     | 
    
         
            +
            rubygems_version: 3.0.3.1
         
     | 
| 
       143 
124 
     | 
    
         
             
            signing_key: 
         
     | 
| 
       144 
125 
     | 
    
         
             
            specification_version: 4
         
     | 
| 
       145 
126 
     | 
    
         
             
            summary: Protocol Buffers
         
     | 
| 
         @@ -1,145 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            /* Copyright 2020 王一 Wang Yi <godspeed_china@yeah.net>
         
     | 
| 
       2 
     | 
    
         
            -
               This is free and unencumbered software released into the public domain. http://unlicense.org/
         
     | 
| 
       3 
     | 
    
         
            -
               See github.com/wangyi-fudan/wyhash/ LICENSE
         
     | 
| 
       4 
     | 
    
         
            -
             */
         
     | 
| 
       5 
     | 
    
         
            -
            #ifndef wyhash_final_version
         
     | 
| 
       6 
     | 
    
         
            -
            #define wyhash_final_version
         
     | 
| 
       7 
     | 
    
         
            -
            //defines that change behavior
         
     | 
| 
       8 
     | 
    
         
            -
            #ifndef WYHASH_CONDOM
         
     | 
| 
       9 
     | 
    
         
            -
            #define WYHASH_CONDOM 1 //0: read 8 bytes before and after boundaries, dangerous but fastest. 1: normal valid behavior 2: extra protection against entropy loss (probability=2^-63), aka. "blind multiplication"
         
     | 
| 
       10 
     | 
    
         
            -
            #endif
         
     | 
| 
       11 
     | 
    
         
            -
            #define WYHASH_32BIT_MUM 0	//faster on 32 bit system
         
     | 
| 
       12 
     | 
    
         
            -
            //includes
         
     | 
| 
       13 
     | 
    
         
            -
            #include <stdint.h>
         
     | 
| 
       14 
     | 
    
         
            -
            #include <string.h>
         
     | 
| 
       15 
     | 
    
         
            -
            #if defined(_MSC_VER) && defined(_M_X64)
         
     | 
| 
       16 
     | 
    
         
            -
              #include <intrin.h>
         
     | 
| 
       17 
     | 
    
         
            -
              #pragma intrinsic(_umul128)
         
     | 
| 
       18 
     | 
    
         
            -
            #endif
         
     | 
| 
       19 
     | 
    
         
            -
            #if defined(__GNUC__) || defined(__INTEL_COMPILER) || defined(__clang__)
         
     | 
| 
       20 
     | 
    
         
            -
              #define _likely_(x)	__builtin_expect(x,1)
         
     | 
| 
       21 
     | 
    
         
            -
              #define _unlikely_(x)	__builtin_expect(x,0)
         
     | 
| 
       22 
     | 
    
         
            -
            #else
         
     | 
| 
       23 
     | 
    
         
            -
              #define _likely_(x) (x)
         
     | 
| 
       24 
     | 
    
         
            -
              #define _unlikely_(x) (x)
         
     | 
| 
       25 
     | 
    
         
            -
            #endif
         
     | 
| 
       26 
     | 
    
         
            -
            //mum function
         
     | 
| 
       27 
     | 
    
         
            -
            static inline uint64_t _wyrot(uint64_t x) { return (x>>32)|(x<<32); }
         
     | 
| 
       28 
     | 
    
         
            -
            static inline void _wymum(uint64_t *A, uint64_t *B){
         
     | 
| 
       29 
     | 
    
         
            -
            #if(WYHASH_32BIT_MUM)
         
     | 
| 
       30 
     | 
    
         
            -
              uint64_t hh=(*A>>32)*(*B>>32), hl=(*A>>32)*(unsigned)*B, lh=(unsigned)*A*(*B>>32), ll=(uint64_t)(unsigned)*A*(unsigned)*B;
         
     | 
| 
       31 
     | 
    
         
            -
              #if(WYHASH_CONDOM>1)
         
     | 
| 
       32 
     | 
    
         
            -
              *A^=_wyrot(hl)^hh; *B^=_wyrot(lh)^ll;
         
     | 
| 
       33 
     | 
    
         
            -
              #else
         
     | 
| 
       34 
     | 
    
         
            -
              *A=_wyrot(hl)^hh; *B=_wyrot(lh)^ll;
         
     | 
| 
       35 
     | 
    
         
            -
              #endif
         
     | 
| 
       36 
     | 
    
         
            -
            #elif defined(__SIZEOF_INT128__)
         
     | 
| 
       37 
     | 
    
         
            -
              __uint128_t r=*A; r*=*B; 
         
     | 
| 
       38 
     | 
    
         
            -
              #if(WYHASH_CONDOM>1)
         
     | 
| 
       39 
     | 
    
         
            -
              *A^=(uint64_t)r; *B^=(uint64_t)(r>>64);
         
     | 
| 
       40 
     | 
    
         
            -
              #else
         
     | 
| 
       41 
     | 
    
         
            -
              *A=(uint64_t)r; *B=(uint64_t)(r>>64);
         
     | 
| 
       42 
     | 
    
         
            -
              #endif
         
     | 
| 
       43 
     | 
    
         
            -
            #elif defined(_MSC_VER) && defined(_M_X64)
         
     | 
| 
       44 
     | 
    
         
            -
              #if(WYHASH_CONDOM>1)
         
     | 
| 
       45 
     | 
    
         
            -
              uint64_t  a,  b;
         
     | 
| 
       46 
     | 
    
         
            -
              a=_umul128(*A,*B,&b);
         
     | 
| 
       47 
     | 
    
         
            -
              *A^=a;  *B^=b;
         
     | 
| 
       48 
     | 
    
         
            -
              #else
         
     | 
| 
       49 
     | 
    
         
            -
              *A=_umul128(*A,*B,B);
         
     | 
| 
       50 
     | 
    
         
            -
              #endif
         
     | 
| 
       51 
     | 
    
         
            -
            #else
         
     | 
| 
       52 
     | 
    
         
            -
              uint64_t ha=*A>>32, hb=*B>>32, la=(uint32_t)*A, lb=(uint32_t)*B, hi, lo;
         
     | 
| 
       53 
     | 
    
         
            -
              uint64_t rh=ha*hb, rm0=ha*lb, rm1=hb*la, rl=la*lb, t=rl+(rm0<<32), c=t<rl;
         
     | 
| 
       54 
     | 
    
         
            -
              lo=t+(rm1<<32); c+=lo<t; hi=rh+(rm0>>32)+(rm1>>32)+c;
         
     | 
| 
       55 
     | 
    
         
            -
              #if(WYHASH_CONDOM>1)
         
     | 
| 
       56 
     | 
    
         
            -
              *A^=lo;  *B^=hi;
         
     | 
| 
       57 
     | 
    
         
            -
              #else
         
     | 
| 
       58 
     | 
    
         
            -
              *A=lo;  *B=hi;
         
     | 
| 
       59 
     | 
    
         
            -
              #endif
         
     | 
| 
       60 
     | 
    
         
            -
            #endif
         
     | 
| 
       61 
     | 
    
         
            -
            }
         
     | 
| 
       62 
     | 
    
         
            -
            static inline uint64_t _wymix(uint64_t A, uint64_t B){ _wymum(&A,&B); return A^B; }
         
     | 
| 
       63 
     | 
    
         
            -
            //read functions
         
     | 
| 
       64 
     | 
    
         
            -
            #ifndef WYHASH_LITTLE_ENDIAN
         
     | 
| 
       65 
     | 
    
         
            -
              #if defined(_WIN32) || defined(__LITTLE_ENDIAN__) || (defined(__BYTE_ORDER__) && __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__)
         
     | 
| 
       66 
     | 
    
         
            -
                #define WYHASH_LITTLE_ENDIAN 1
         
     | 
| 
       67 
     | 
    
         
            -
              #elif defined(__BIG_ENDIAN__) || (defined(__BYTE_ORDER__) && __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__)
         
     | 
| 
       68 
     | 
    
         
            -
                #define WYHASH_LITTLE_ENDIAN 0
         
     | 
| 
       69 
     | 
    
         
            -
              #endif
         
     | 
| 
       70 
     | 
    
         
            -
            #endif
         
     | 
| 
       71 
     | 
    
         
            -
            #if (WYHASH_LITTLE_ENDIAN)
         
     | 
| 
       72 
     | 
    
         
            -
            static inline uint64_t _wyr8(const uint8_t *p) { uint64_t v; memcpy(&v, p, 8); return v;}
         
     | 
| 
       73 
     | 
    
         
            -
            static inline uint64_t _wyr4(const uint8_t *p) { unsigned v; memcpy(&v, p, 4); return v;}
         
     | 
| 
       74 
     | 
    
         
            -
            #elif defined(__GNUC__) || defined(__INTEL_COMPILER) || defined(__clang__)
         
     | 
| 
       75 
     | 
    
         
            -
            static inline uint64_t _wyr8(const uint8_t *p) { uint64_t v; memcpy(&v, p, 8); return __builtin_bswap64(v);}
         
     | 
| 
       76 
     | 
    
         
            -
            static inline uint64_t _wyr4(const uint8_t *p) { unsigned v; memcpy(&v, p, 4); return __builtin_bswap32(v);}
         
     | 
| 
       77 
     | 
    
         
            -
            #elif defined(_MSC_VER)
         
     | 
| 
       78 
     | 
    
         
            -
            static inline uint64_t _wyr8(const uint8_t *p) { uint64_t v; memcpy(&v, p, 8); return _byteswap_uint64(v);}
         
     | 
| 
       79 
     | 
    
         
            -
            static inline uint64_t _wyr4(const uint8_t *p) { unsigned v; memcpy(&v, p, 4); return _byteswap_ulong(v);}
         
     | 
| 
       80 
     | 
    
         
            -
            #endif
         
     | 
| 
       81 
     | 
    
         
            -
            static inline uint64_t _wyr3(const uint8_t *p, unsigned k) { return (((uint64_t)p[0])<<16)|(((uint64_t)p[k>>1])<<8)|p[k-1];}
         
     | 
| 
       82 
     | 
    
         
            -
            //wyhash function
         
     | 
| 
       83 
     | 
    
         
            -
            static inline uint64_t _wyfinish16(const uint8_t *p, uint64_t len, uint64_t seed, const uint64_t *secret, uint64_t i){
         
     | 
| 
       84 
     | 
    
         
            -
            #if(WYHASH_CONDOM>0)
         
     | 
| 
       85 
     | 
    
         
            -
              uint64_t a, b;
         
     | 
| 
       86 
     | 
    
         
            -
              if(_likely_(i<=8)){
         
     | 
| 
       87 
     | 
    
         
            -
                if(_likely_(i>=4)){ a=_wyr4(p); b=_wyr4(p+i-4); }
         
     | 
| 
       88 
     | 
    
         
            -
                else if (_likely_(i)){ a=_wyr3(p,i); b=0; }
         
     | 
| 
       89 
     | 
    
         
            -
                else a=b=0;
         
     | 
| 
       90 
     | 
    
         
            -
              } 
         
     | 
| 
       91 
     | 
    
         
            -
              else{ a=_wyr8(p); b=_wyr8(p+i-8); }
         
     | 
| 
       92 
     | 
    
         
            -
              return _wymix(secret[1]^len,_wymix(a^secret[1], b^seed));
         
     | 
| 
       93 
     | 
    
         
            -
            #else
         
     | 
| 
       94 
     | 
    
         
            -
              #define oneshot_shift ((i<8)*((8-i)<<3))
         
     | 
| 
       95 
     | 
    
         
            -
              return _wymix(secret[1]^len,_wymix((_wyr8(p)<<oneshot_shift)^secret[1],(_wyr8(p+i-8)>>oneshot_shift)^seed));
         
     | 
| 
       96 
     | 
    
         
            -
            #endif
         
     | 
| 
       97 
     | 
    
         
            -
            }
         
     | 
| 
       98 
     | 
    
         
            -
             
     | 
| 
       99 
     | 
    
         
            -
            static inline uint64_t _wyfinish(const uint8_t *p, uint64_t len, uint64_t seed, const uint64_t *secret, uint64_t i){
         
     | 
| 
       100 
     | 
    
         
            -
              if(_likely_(i<=16)) return _wyfinish16(p,len,seed,secret,i);
         
     | 
| 
       101 
     | 
    
         
            -
              return _wyfinish(p+16,len,_wymix(_wyr8(p)^secret[1],_wyr8(p+8)^seed),secret,i-16);
         
     | 
| 
       102 
     | 
    
         
            -
            }
         
     | 
| 
       103 
     | 
    
         
            -
             
     | 
| 
       104 
     | 
    
         
            -
            static inline uint64_t wyhash(const void *key, uint64_t len, uint64_t seed, const uint64_t *secret){
         
     | 
| 
       105 
     | 
    
         
            -
              const uint8_t *p=(const uint8_t *)key;
         
     | 
| 
       106 
     | 
    
         
            -
              uint64_t i=len; seed^=*secret;
         
     | 
| 
       107 
     | 
    
         
            -
              if(_unlikely_(i>64)){
         
     | 
| 
       108 
     | 
    
         
            -
                uint64_t see1=seed;
         
     | 
| 
       109 
     | 
    
         
            -
                do{
         
     | 
| 
       110 
     | 
    
         
            -
                  seed=_wymix(_wyr8(p)^secret[1],_wyr8(p+8)^seed)^_wymix(_wyr8(p+16)^secret[2],_wyr8(p+24)^seed);
         
     | 
| 
       111 
     | 
    
         
            -
                  see1=_wymix(_wyr8(p+32)^secret[3],_wyr8(p+40)^see1)^_wymix(_wyr8(p+48)^secret[4],_wyr8(p+56)^see1);
         
     | 
| 
       112 
     | 
    
         
            -
                  p+=64; i-=64;
         
     | 
| 
       113 
     | 
    
         
            -
                }while(i>64);
         
     | 
| 
       114 
     | 
    
         
            -
                seed^=see1;
         
     | 
| 
       115 
     | 
    
         
            -
              }
         
     | 
| 
       116 
     | 
    
         
            -
              return _wyfinish(p,len,seed,secret,i);
         
     | 
| 
       117 
     | 
    
         
            -
            }
         
     | 
| 
       118 
     | 
    
         
            -
            //utility functions
         
     | 
| 
       119 
     | 
    
         
            -
            static const uint64_t _wyp[5] = {0xa0761d6478bd642full, 0xe7037ed1a0b428dbull, 0x8ebc6af09c88c6e3ull, 0x589965cc75374cc3ull, 0x1d8e4e27c47d124full};
         
     | 
| 
       120 
     | 
    
         
            -
            static inline uint64_t wyhash64(uint64_t A, uint64_t B){  A^=_wyp[0]; B^=_wyp[1];  _wymum(&A,&B);  return _wymix(A^_wyp[0],B^_wyp[1]);}
         
     | 
| 
       121 
     | 
    
         
            -
            static inline uint64_t wyrand(uint64_t *seed){  *seed+=_wyp[0]; return _wymix(*seed,*seed^_wyp[1]);}
         
     | 
| 
       122 
     | 
    
         
            -
            static inline double wy2u01(uint64_t r){ const double _wynorm=1.0/(1ull<<52); return (r>>12)*_wynorm;}
         
     | 
| 
       123 
     | 
    
         
            -
            static inline double wy2gau(uint64_t r){ const double _wynorm=1.0/(1ull<<20); return ((r&0x1fffff)+((r>>21)&0x1fffff)+((r>>42)&0x1fffff))*_wynorm-3.0;}
         
     | 
| 
       124 
     | 
    
         
            -
            static inline uint64_t wy2u0k(uint64_t r, uint64_t k){ _wymum(&r,&k); return k; }
         
     | 
| 
       125 
     | 
    
         
            -
             
     | 
| 
       126 
     | 
    
         
            -
            static inline void make_secret(uint64_t seed, uint64_t *secret){
         
     | 
| 
       127 
     | 
    
         
            -
              uint8_t c[] = {15, 23, 27, 29, 30, 39, 43, 45, 46, 51, 53, 54, 57, 58, 60, 71, 75, 77, 78, 83, 85, 86, 89, 90, 92, 99, 101, 102, 105, 106, 108, 113, 114, 116, 120, 135, 139, 141, 142, 147, 149, 150, 153, 154, 156, 163, 165, 166, 169, 170, 172, 177, 178, 180, 184, 195, 197, 198, 201, 202, 204, 209, 210, 212, 216, 225, 226, 228, 232, 240 };
         
     | 
| 
       128 
     | 
    
         
            -
              for(size_t i=0;i<5;i++){
         
     | 
| 
       129 
     | 
    
         
            -
                uint8_t ok;
         
     | 
| 
       130 
     | 
    
         
            -
                do{
         
     | 
| 
       131 
     | 
    
         
            -
                  ok=1; secret[i]=0;
         
     | 
| 
       132 
     | 
    
         
            -
                  for(size_t j=0;j<64;j+=8) secret[i]|=((uint64_t)c[wyrand(&seed)%sizeof(c)])<<j;
         
     | 
| 
       133 
     | 
    
         
            -
                  if(secret[i]%2==0){ ok=0; continue; }
         
     | 
| 
       134 
     | 
    
         
            -
                  for(size_t j=0;j<i;j++)
         
     | 
| 
       135 
     | 
    
         
            -
            #if defined(__GNUC__) || defined(__INTEL_COMPILER) || defined(__clang__)
         
     | 
| 
       136 
     | 
    
         
            -
                    if(__builtin_popcountll(secret[j]^secret[i])!=32){ ok=0; break; }
         
     | 
| 
       137 
     | 
    
         
            -
            #elif defined(_MSC_VER) && defined(_M_X64)
         
     | 
| 
       138 
     | 
    
         
            -
                    if(_mm_popcnt_u64(secret[j]^secret[i])!=32){ ok=0; break; }
         
     | 
| 
       139 
     | 
    
         
            -
            #endif
         
     | 
| 
       140 
     | 
    
         
            -
                   if(!ok)continue;
         
     | 
| 
       141 
     | 
    
         
            -
                   for(uint64_t j=3;j<0x100000000ull;j+=2) if(secret[i]%j==0){ ok=0; break; }
         
     | 
| 
       142 
     | 
    
         
            -
                }while(!ok);
         
     | 
| 
       143 
     | 
    
         
            -
              }
         
     | 
| 
       144 
     | 
    
         
            -
            }
         
     | 
| 
       145 
     | 
    
         
            -
            #endif
         
     |