class Google::Protobuf::OneofDescriptor
Attributes
Public Class Methods
Source
# File lib/google/protobuf/ffi/oneof_descriptor.rb, line 31 def from_native(oneof_def, _ = nil) return nil if oneof_def.nil? or oneof_def.null? message_descriptor = Google::Protobuf::FFI.get_oneof_containing_type oneof_def raise RuntimeError.new "Message Descriptor is nil" if message_descriptor.nil? file_def = Google::Protobuf::FFI.get_message_file_def message_descriptor.to_native descriptor_from_file_def(file_def, oneof_def) end
@param oneof_def [::FFI::Pointer] OneofDef pointer to be wrapped @param _ [Object] Unused
Source
# File lib/google/protobuf/ffi/oneof_descriptor.rb, line 40 def self.new(*arguments, &block) raise "OneofDescriptor objects may not be created from Ruby." end
Source
# File lib/google/protobuf/ffi/oneof_descriptor.rb, line 78 def initialize(oneof_def, descriptor_pool) @descriptor_pool = descriptor_pool @oneof_def = oneof_def end
Source
# File lib/google/protobuf/ffi/oneof_descriptor.rb, line 83 def self.private_constructor(oneof_def, descriptor_pool) instance = allocate instance.send(:initialize, oneof_def, descriptor_pool) instance end
Source
# File lib/google/protobuf/ffi/oneof_descriptor.rb, line 24 def to_native(value, _ = nil) value.instance_variable_get(:@oneof_def) || ::FFI::Pointer::NULL end
@param value [OneofDescriptor] FieldDescriptor
to convert to an FFI
native type @param _ [Object] Unused
Public Instance Methods
Source
# File lib/google/protobuf/ffi/oneof_descriptor.rb, line 48 def each &block n = Google::Protobuf::FFI.get_oneof_field_count(self) 0.upto(n-1) do |i| yield(Google::Protobuf::FFI.get_oneof_field_by_index(self, i)) end nil end
Source
# File lib/google/protobuf/ffi/oneof_descriptor.rb, line 44 def name Google::Protobuf::FFI.get_oneof_name(self) end
Source
# File lib/google/protobuf/ffi/oneof_descriptor.rb, line 56 def options @options ||= begin size_ptr = ::FFI::MemoryPointer.new(:size_t, 1) temporary_arena = Google::Protobuf::FFI.create_arena buffer = Google::Protobuf::FFI.oneof_options(self, size_ptr, temporary_arena) opts = Google::Protobuf::OneofOptions.decode(buffer.read_string_length(size_ptr.read(:size_t)).force_encoding("ASCII-8BIT").freeze) opts.clear_features() opts.freeze end end
Source
# File lib/google/protobuf/ffi/oneof_descriptor.rb, line 67 def to_proto @to_proto ||= begin size_ptr = ::FFI::MemoryPointer.new(:size_t, 1) temporary_arena = Google::Protobuf::FFI.create_arena buffer = Google::Protobuf::FFI.oneof_to_proto(self, size_ptr, temporary_arena) Google::Protobuf::OneofDescriptorProto.decode(buffer.read_string_length(size_ptr.read(:size_t)).force_encoding("ASCII-8BIT").freeze) end end