module Concurrent::ImmutableStruct
A thread-safe, immutable variation of Ruby’s standard ‘Struct`.
@see ruby-doc.org/core/Struct.html Ruby standard library ‘Struct`
Constants
- FACTORY
Public Class Methods
Source
# File lib/concurrent-ruby/concurrent/immutable_struct.rb, line 12 def self.included(base) base.safe_initialization! end
Source
# File lib/concurrent-ruby/concurrent/immutable_struct.rb, line 82 def self.new(*args, &block) clazz_name = nil if args.length == 0 raise ArgumentError.new('wrong number of arguments (0 for 1+)') elsif args.length > 0 && args.first.is_a?(String) clazz_name = args.shift end FACTORY.define_struct(clazz_name, args, &block) end
@!macro struct_new
Public Instance Methods
Source
# File lib/concurrent-ruby/concurrent/immutable_struct.rb, line 51 def ==(other) ns_equality(other) end
@!macro struct_equality
Source
# File lib/concurrent-ruby/concurrent/immutable_struct.rb, line 46 def [](member) ns_get(member) end
@!macro struct_get
Source
# File lib/concurrent-ruby/concurrent/immutable_struct.rb, line 56 def each(&block) return enum_for(:each) unless block_given? ns_each(&block) end
@!macro struct_each
Source
# File lib/concurrent-ruby/concurrent/immutable_struct.rb, line 62 def each_pair(&block) return enum_for(:each_pair) unless block_given? ns_each_pair(&block) end
@!macro struct_each_pair
Source
# File lib/concurrent-ruby/concurrent/immutable_struct.rb, line 29 def inspect ns_inspect end
@!macro struct_inspect
Also aliased as: to_s
Source
# File lib/concurrent-ruby/concurrent/immutable_struct.rb, line 36 def merge(other, &block) ns_merge(other, &block) end
@!macro struct_merge
Source
# File lib/concurrent-ruby/concurrent/immutable_struct.rb, line 68 def select(&block) return enum_for(:select) unless block_given? ns_select(&block) end
@!macro struct_select
Source
# File lib/concurrent-ruby/concurrent/immutable_struct.rb, line 41 def to_h ns_to_h end
@!macro struct_to_h
Source
# File lib/concurrent-ruby/concurrent/immutable_struct.rb, line 17 def values ns_values end
@!macro struct_values
Also aliased as: to_a
Source
# File lib/concurrent-ruby/concurrent/immutable_struct.rb, line 24 def values_at(*indexes) ns_values_at(indexes) end
@!macro struct_values_at
Private Instance Methods
Source
# File lib/concurrent-ruby/concurrent/immutable_struct.rb, line 76 def initialize_copy(original) super(original) ns_initialize_copy end
@!visibility private
Calls superclass method