class ElasticAPM::TraceContext::Traceparent

def self.parse(header)

def self.parse(header)
  raise_invalid(header) unless header.length == 55
  raise_invalid(header) unless header[0..1] == VERSION
  new.tap do |t|
    t.version, t.trace_id, t.parent_id, t.flags =
      header.split('-').tap do |values|
        values[-1] = Util.hex_to_bits(values[-1])
      end
    raise_invalid(header) if NON_HEX_REGEX.match?(t.trace_id)
    raise_invalid(header) if NON_HEX_REGEX.match?(t.parent_id)
  end
end