{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} module OpenTelemetry.SpanContext where import Data.Hashable import Data.Word import GHC.Generics import Text.Printf newtype TraceId = TId Word64 deriving (TraceId -> TraceId -> Bool (TraceId -> TraceId -> Bool) -> (TraceId -> TraceId -> Bool) -> Eq TraceId forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: TraceId -> TraceId -> Bool $c/= :: TraceId -> TraceId -> Bool == :: TraceId -> TraceId -> Bool $c== :: TraceId -> TraceId -> Bool Eq, Eq TraceId Eq TraceId -> (TraceId -> TraceId -> Ordering) -> (TraceId -> TraceId -> Bool) -> (TraceId -> TraceId -> Bool) -> (TraceId -> TraceId -> Bool) -> (TraceId -> TraceId -> Bool) -> (TraceId -> TraceId -> TraceId) -> (TraceId -> TraceId -> TraceId) -> Ord TraceId TraceId -> TraceId -> Bool TraceId -> TraceId -> Ordering TraceId -> TraceId -> TraceId forall a. Eq a -> (a -> a -> Ordering) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> a) -> (a -> a -> a) -> Ord a min :: TraceId -> TraceId -> TraceId $cmin :: TraceId -> TraceId -> TraceId max :: TraceId -> TraceId -> TraceId $cmax :: TraceId -> TraceId -> TraceId >= :: TraceId -> TraceId -> Bool $c>= :: TraceId -> TraceId -> Bool > :: TraceId -> TraceId -> Bool $c> :: TraceId -> TraceId -> Bool <= :: TraceId -> TraceId -> Bool $c<= :: TraceId -> TraceId -> Bool < :: TraceId -> TraceId -> Bool $c< :: TraceId -> TraceId -> Bool compare :: TraceId -> TraceId -> Ordering $ccompare :: TraceId -> TraceId -> Ordering $cp1Ord :: Eq TraceId Ord, (forall x. TraceId -> Rep TraceId x) -> (forall x. Rep TraceId x -> TraceId) -> Generic TraceId forall x. Rep TraceId x -> TraceId forall x. TraceId -> Rep TraceId x forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a $cto :: forall x. Rep TraceId x -> TraceId $cfrom :: forall x. TraceId -> Rep TraceId x Generic, Int -> TraceId -> Int TraceId -> Int (Int -> TraceId -> Int) -> (TraceId -> Int) -> Hashable TraceId forall a. (Int -> a -> Int) -> (a -> Int) -> Hashable a hash :: TraceId -> Int $chash :: TraceId -> Int hashWithSalt :: Int -> TraceId -> Int $chashWithSalt :: Int -> TraceId -> Int Hashable) instance Show TraceId where show :: TraceId -> String show (TId Word64 tid) = String -> Word64 -> String forall r. PrintfType r => String -> r printf String "(TId 0x%x)" Word64 tid newtype SpanId = SId Word64 deriving (SpanId -> SpanId -> Bool (SpanId -> SpanId -> Bool) -> (SpanId -> SpanId -> Bool) -> Eq SpanId forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: SpanId -> SpanId -> Bool $c/= :: SpanId -> SpanId -> Bool == :: SpanId -> SpanId -> Bool $c== :: SpanId -> SpanId -> Bool Eq, Eq SpanId Eq SpanId -> (SpanId -> SpanId -> Ordering) -> (SpanId -> SpanId -> Bool) -> (SpanId -> SpanId -> Bool) -> (SpanId -> SpanId -> Bool) -> (SpanId -> SpanId -> Bool) -> (SpanId -> SpanId -> SpanId) -> (SpanId -> SpanId -> SpanId) -> Ord SpanId SpanId -> SpanId -> Bool SpanId -> SpanId -> Ordering SpanId -> SpanId -> SpanId forall a. Eq a -> (a -> a -> Ordering) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> a) -> (a -> a -> a) -> Ord a min :: SpanId -> SpanId -> SpanId $cmin :: SpanId -> SpanId -> SpanId max :: SpanId -> SpanId -> SpanId $cmax :: SpanId -> SpanId -> SpanId >= :: SpanId -> SpanId -> Bool $c>= :: SpanId -> SpanId -> Bool > :: SpanId -> SpanId -> Bool $c> :: SpanId -> SpanId -> Bool <= :: SpanId -> SpanId -> Bool $c<= :: SpanId -> SpanId -> Bool < :: SpanId -> SpanId -> Bool $c< :: SpanId -> SpanId -> Bool compare :: SpanId -> SpanId -> Ordering $ccompare :: SpanId -> SpanId -> Ordering $cp1Ord :: Eq SpanId Ord, (forall x. SpanId -> Rep SpanId x) -> (forall x. Rep SpanId x -> SpanId) -> Generic SpanId forall x. Rep SpanId x -> SpanId forall x. SpanId -> Rep SpanId x forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a $cto :: forall x. Rep SpanId x -> SpanId $cfrom :: forall x. SpanId -> Rep SpanId x Generic, Int -> SpanId -> Int SpanId -> Int (Int -> SpanId -> Int) -> (SpanId -> Int) -> Hashable SpanId forall a. (Int -> a -> Int) -> (a -> Int) -> Hashable a hash :: SpanId -> Int $chash :: SpanId -> Int hashWithSalt :: Int -> SpanId -> Int $chashWithSalt :: Int -> SpanId -> Int Hashable) instance Show SpanId where show :: SpanId -> String show (SId Word64 sid) = String -> Word64 -> String forall r. PrintfType r => String -> r printf String "(SId 0x%x)" Word64 sid data SpanContext = SpanContext !SpanId !TraceId deriving (Int -> SpanContext -> ShowS [SpanContext] -> ShowS SpanContext -> String (Int -> SpanContext -> ShowS) -> (SpanContext -> String) -> ([SpanContext] -> ShowS) -> Show SpanContext forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [SpanContext] -> ShowS $cshowList :: [SpanContext] -> ShowS show :: SpanContext -> String $cshow :: SpanContext -> String showsPrec :: Int -> SpanContext -> ShowS $cshowsPrec :: Int -> SpanContext -> ShowS Show, SpanContext -> SpanContext -> Bool (SpanContext -> SpanContext -> Bool) -> (SpanContext -> SpanContext -> Bool) -> Eq SpanContext forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: SpanContext -> SpanContext -> Bool $c/= :: SpanContext -> SpanContext -> Bool == :: SpanContext -> SpanContext -> Bool $c== :: SpanContext -> SpanContext -> Bool Eq, Eq SpanContext Eq SpanContext -> (SpanContext -> SpanContext -> Ordering) -> (SpanContext -> SpanContext -> Bool) -> (SpanContext -> SpanContext -> Bool) -> (SpanContext -> SpanContext -> Bool) -> (SpanContext -> SpanContext -> Bool) -> (SpanContext -> SpanContext -> SpanContext) -> (SpanContext -> SpanContext -> SpanContext) -> Ord SpanContext SpanContext -> SpanContext -> Bool SpanContext -> SpanContext -> Ordering SpanContext -> SpanContext -> SpanContext forall a. Eq a -> (a -> a -> Ordering) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> Bool) -> (a -> a -> a) -> (a -> a -> a) -> Ord a min :: SpanContext -> SpanContext -> SpanContext $cmin :: SpanContext -> SpanContext -> SpanContext max :: SpanContext -> SpanContext -> SpanContext $cmax :: SpanContext -> SpanContext -> SpanContext >= :: SpanContext -> SpanContext -> Bool $c>= :: SpanContext -> SpanContext -> Bool > :: SpanContext -> SpanContext -> Bool $c> :: SpanContext -> SpanContext -> Bool <= :: SpanContext -> SpanContext -> Bool $c<= :: SpanContext -> SpanContext -> Bool < :: SpanContext -> SpanContext -> Bool $c< :: SpanContext -> SpanContext -> Bool compare :: SpanContext -> SpanContext -> Ordering $ccompare :: SpanContext -> SpanContext -> Ordering $cp1Ord :: Eq SpanContext Ord, (forall x. SpanContext -> Rep SpanContext x) -> (forall x. Rep SpanContext x -> SpanContext) -> Generic SpanContext forall x. Rep SpanContext x -> SpanContext forall x. SpanContext -> Rep SpanContext x forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a $cto :: forall x. Rep SpanContext x -> SpanContext $cfrom :: forall x. SpanContext -> Rep SpanContext x Generic)