class ElasticAPM::TraceContext

def parse(legacy_header = nil, env: nil)

def parse(legacy_header = nil, env: nil)
  if !legacy_header && !env
    raise ArgumentError, 'TraceContext expects either env: or single ' \
      'argument header string'
  end
  return legacy_parse_from_header(legacy_header) if legacy_header
  return unless (header = get_traceparent_header(env))
  parent = TraceContext::Traceparent.parse(header)
  state =
    if (header = env['HTTP_TRACESTATE'])
      TraceContext::Tracestate.parse(header)
    end
  new(traceparent: parent, tracestate: state)
end