{-# LANGUAGE PatternSynonyms #-}
module OpenTelemetry.Processor
{-# DEPRECATED "use OpenTelemetry.Processor.Span instead" #-} (
Processor,
SpanProcessor (
Processor,
processorOnStart,
processorOnEnd,
processorShutdown,
processorForceFlush
),
ShutdownResult (..),
) where
import Control.Concurrent.Async (Async)
import Data.IORef (IORef)
import OpenTelemetry.Context (Context)
import OpenTelemetry.Internal.Trace.Types (ImmutableSpan)
import OpenTelemetry.Processor.Span
{-# DEPRECATED Processor "use SpanProcessor instead" #-}
type Processor = SpanProcessor
pattern Processor
:: (IORef ImmutableSpan -> Context -> IO ())
-> (IORef ImmutableSpan -> IO ())
-> IO (Async ShutdownResult)
-> IO ()
-> SpanProcessor
pattern Processor {processorOnStart, processorOnEnd, processorShutdown, processorForceFlush} =
SpanProcessor
{ spanProcessorOnStart = processorOnStart
, spanProcessorOnEnd = processorOnEnd
, spanProcessorShutdown = processorShutdown
, spanProcessorForceFlush = processorForceFlush
}