module Concurrent::MutableStruct

def []=(member, value)

Raises:
  • (IndexError) - if the index is out of range.
  • (NameError) - if the name does not exist

Returns:
  • (Object) - the value of the given struct member or the member at the given index.

Parameters:
  • member (Symbol, String, Integer) -- the string or symbol name of the member
def []=(member, value)
  if member.is_a? Integer
    length = synchronize { @values.length }
    if member >= length
      raise IndexError.new("offset #{member} too large for struct(size:#{length})")
    end
    synchronize { @values[member] = value }
  else
    send("#{member}=", value)
  end
rescue NoMethodError
  raise NameError.new("no member '#{member}' in struct")
end