content: -----------------------------------------------------------------------------
  
  -----------------------------------------------------------------------------
  
  {- |
   Module      :  OpenTelemetry.Id.Generator
   Copyright   :  (c) Ian Duncan, 2021
   License     :  BSD-3
   Description :  Raw byte generation facilities for ID generation
   Maintainer  :  Ian Duncan
   Stability   :  experimental
   Portability :  non-portable (GHC extensions)
  
   Stateful random number generation interface for creating Trace and Span ID
   bytes.
  
   In most cases, the built-in generator in the hs-opentelemetry-sdk will be sufficient, but the
   interface is exposed for more exotic needs.
  -}
  module OpenTelemetry.Trace.Id.Generator (
    IdGenerator (..),
  ) where
  
  import Data.ByteString (ByteString)
  
  
  {- | An interface for generating the underlying bytes for
   trace and span ids.
  -}
  data IdGenerator = IdGenerator
    { generateSpanIdBytes :: IO ByteString
    -- ^ MUST generate exactly 8 bytes
    , generateTraceIdBytes :: IO ByteString
    -- ^ MUST generate exactly 16 bytes
    }
  