You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: propagation.rb
    path of file: ./repos/dd-trace-rb/lib/datadog/tracing/distributed
    
    the code of the file until where you have to start completion: # frozen_string_literal: true

require_relative '../configuration/ext'
require_relative '../trace_digest'
require_relative '../trace_operation'

module Datadog
  module Tracing
    module Distributed
      # Provides extraction and injection of distributed trace data.
      
    
        def initialize(propagation_styles:)
          @propagation_styles = propagation_styles
          # We need to make sure propagation_style option is evaluated.
          # Our options are lazy evaluated and it happens that propagation_style has the after_set callback
          # that affect Datadog.configuration.tracing.distributed_tracing.propagation_inject_style and
          # Datadog.configuration.tracing.distributed_tracing.propagation_extract_style
          # By calling it here, we make sure if the customers has set any value either via code or ENV variable is applied.
          ::Datadog.configuration.tracing.distributed_tracing.propagation_style
        end