# File lib/rubytorrent/typedstruct.rb, line 56
  def method_missing(meth, *args)
    if meth.to_s =~ /^(.*?)=$/
#      p [meth, args]

      f = $1.intern
      raise ArgumentError, "no such value #{f}" unless @field.has_key? f

      type = @field[f]
      o = args[0]
      if @array[f]
        raise TypeError, "for #{f}, expecting Array, got #{o.class}" unless o.kind_of? ::Array
        o.each { |e| raise TypeError, "for elements of #{f}, expecting #{type}, got #{e.class}" unless e.kind_of? type }
        @values[f] = o
        @dirty = true
      else
        raise TypeError, "for #{f}, expecting #{type}, got #{o.class}" unless o.kind_of? type
        @values[f] = o
        @dirty = true
      end
    else
      raise ArgumentError, "no such value #{meth}" unless @field.has_key? meth
#      p [meth, @values[meth]]

      @values[meth]
    end
  end