module ElasticAPM::Fields::InstanceMethods

def empty?

def empty?
  self.class.schema.each do |key, field|
    next if send(key).nil?
    return false
  end
  true
end

def initialize(**attrs)

def initialize(**attrs)
  schema.each do |key, field|
    send(:"#{key}=", field.default)
  end
  attrs.each do |key, value|
    send(:"#{key}=", value)
  end
  super()
end

def schema

def schema
  self.class.schema
end

def to_h

def to_h
  schema.each_with_object({}) do |(key, field), hsh|
    hsh[key] = send(key)
  end
end