{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE StrictData #-}
{-# LANGUAGE TupleSections #-}
{-# LANGUAGE ViewPatterns #-}
{-# OPTIONS_GHC -fno-warn-missing-pattern-synonym-signatures #-}
module OpenTracing.Tags
( Tags(fromTags)
, Tag
, TagVal(..)
, setTag
, getTag
, getTagReify
, pattern ComponentKey
, pattern DbInstanceKey
, pattern DbStatementKey
, pattern DbTypeKey
, pattern DbUserKey
, pattern ErrorKey
, pattern HttpMethodKey
, pattern HttpStatusCodeKey
, pattern HttpUrlKey
, pattern MessageBusDestinationKey
, pattern PeerAddressKey
, pattern PeerHostnameKey
, pattern PeerIPv4Key
, pattern PeerIPv6Key
, pattern PeerPortKey
, pattern PeerServiceKey
, pattern SamplingPriorityKey
, pattern SpanKindKey
, pattern Component
, pattern DbInstance
, pattern DbStatement
, pattern DbType
, pattern DbUser
, pattern Error
, pattern HttpMethod
, pattern HttpStatusCode
, pattern HttpUrl
, pattern MessageBusDestination
, pattern PeerAddress
, pattern PeerHostname
, pattern PeerIPv4
, pattern PeerIPv6
, pattern PeerPort
, pattern PeerService
, pattern SamplingPriority
, pattern SpanKind
, _Component
, _DbInstance
, _DbStatement
, _DbType
, _DbUser
, _Error
, _HttpMethod
, _HttpStatusCode
, _HttpUrl
, _MessageBusDestination
, _PeerAddress
, _PeerHostname
, _PeerIPv4
, _PeerIPv6
, _PeerPort
, _PeerService
, _SamplingPriority
, _SpanKind
, SpanKinds(..)
, spanKindLabel
)
where
import Control.Lens
import Data.Aeson (ToJSON (..))
import Data.Aeson.Encoding
import qualified Data.ByteString.Base64.Lazy as B64
import qualified Data.ByteString.Lazy as Lazy
import Data.HashMap.Strict (HashMap)
import qualified Data.HashMap.Strict as HashMap
import Data.Int (Int64)
import Data.Monoid (First)
import Data.Semigroup (Semigroup)
import Data.Text (Text)
import qualified Data.Text as Text
import Data.Text.Encoding (decodeUtf8, encodeUtf8)
import qualified Data.Text.Lazy.Encoding as Lazy
import Data.Word (Word8)
import Network.HTTP.Types
import OpenTracing.Types
import Text.Read (readMaybe)
newtype Tags = Tags { Tags -> HashMap Text TagVal
fromTags :: HashMap Text TagVal }
deriving (Tags -> Tags -> Bool
(Tags -> Tags -> Bool) -> (Tags -> Tags -> Bool) -> Eq Tags
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Tags -> Tags -> Bool
$c/= :: Tags -> Tags -> Bool
== :: Tags -> Tags -> Bool
$c== :: Tags -> Tags -> Bool
Eq, Int -> Tags -> ShowS
[Tags] -> ShowS
Tags -> String
(Int -> Tags -> ShowS)
-> (Tags -> String) -> ([Tags] -> ShowS) -> Show Tags
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Tags] -> ShowS
$cshowList :: [Tags] -> ShowS
show :: Tags -> String
$cshow :: Tags -> String
showsPrec :: Int -> Tags -> ShowS
$cshowsPrec :: Int -> Tags -> ShowS
Show, b -> Tags -> Tags
NonEmpty Tags -> Tags
Tags -> Tags -> Tags
(Tags -> Tags -> Tags)
-> (NonEmpty Tags -> Tags)
-> (forall b. Integral b => b -> Tags -> Tags)
-> Semigroup Tags
forall b. Integral b => b -> Tags -> Tags
forall a.
(a -> a -> a)
-> (NonEmpty a -> a)
-> (forall b. Integral b => b -> a -> a)
-> Semigroup a
stimes :: b -> Tags -> Tags
$cstimes :: forall b. Integral b => b -> Tags -> Tags
sconcat :: NonEmpty Tags -> Tags
$csconcat :: NonEmpty Tags -> Tags
<> :: Tags -> Tags -> Tags
$c<> :: Tags -> Tags -> Tags
Semigroup, Semigroup Tags
Tags
Semigroup Tags
-> Tags
-> (Tags -> Tags -> Tags)
-> ([Tags] -> Tags)
-> Monoid Tags
[Tags] -> Tags
Tags -> Tags -> Tags
forall a.
Semigroup a -> a -> (a -> a -> a) -> ([a] -> a) -> Monoid a
mconcat :: [Tags] -> Tags
$cmconcat :: [Tags] -> Tags
mappend :: Tags -> Tags -> Tags
$cmappend :: Tags -> Tags -> Tags
mempty :: Tags
$cmempty :: Tags
$cp1Monoid :: Semigroup Tags
Monoid, [Tags] -> Encoding
[Tags] -> Value
Tags -> Encoding
Tags -> Value
(Tags -> Value)
-> (Tags -> Encoding)
-> ([Tags] -> Value)
-> ([Tags] -> Encoding)
-> ToJSON Tags
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> ToJSON a
toEncodingList :: [Tags] -> Encoding
$ctoEncodingList :: [Tags] -> Encoding
toJSONList :: [Tags] -> Value
$ctoJSONList :: [Tags] -> Value
toEncoding :: Tags -> Encoding
$ctoEncoding :: Tags -> Encoding
toJSON :: Tags -> Value
$ctoJSON :: Tags -> Value
ToJSON)
type Tag = (Text, TagVal)
data TagVal
= BoolT Bool
| StringT Text
| IntT Int64
| DoubleT Double
| BinaryT Lazy.ByteString
deriving (TagVal -> TagVal -> Bool
(TagVal -> TagVal -> Bool)
-> (TagVal -> TagVal -> Bool) -> Eq TagVal
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: TagVal -> TagVal -> Bool
$c/= :: TagVal -> TagVal -> Bool
== :: TagVal -> TagVal -> Bool
$c== :: TagVal -> TagVal -> Bool
Eq, Int -> TagVal -> ShowS
[TagVal] -> ShowS
TagVal -> String
(Int -> TagVal -> ShowS)
-> (TagVal -> String) -> ([TagVal] -> ShowS) -> Show TagVal
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [TagVal] -> ShowS
$cshowList :: [TagVal] -> ShowS
show :: TagVal -> String
$cshow :: TagVal -> String
showsPrec :: Int -> TagVal -> ShowS
$cshowsPrec :: Int -> TagVal -> ShowS
Show)
instance ToJSON TagVal where
toJSON :: TagVal -> Value
toJSON (BoolT Bool
x) = Bool -> Value
forall a. ToJSON a => a -> Value
toJSON Bool
x
toJSON (StringT Text
x) = Text -> Value
forall a. ToJSON a => a -> Value
toJSON Text
x
toJSON (IntT Int64
x) = Int64 -> Value
forall a. ToJSON a => a -> Value
toJSON Int64
x
toJSON (DoubleT Double
x) = Double -> Value
forall a. ToJSON a => a -> Value
toJSON Double
x
toJSON (BinaryT ByteString
x) = Text -> Value
forall a. ToJSON a => a -> Value
toJSON (Text -> Value) -> (ByteString -> Text) -> ByteString -> Value
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ByteString -> Text
Lazy.decodeUtf8 (ByteString -> Text)
-> (ByteString -> ByteString) -> ByteString -> Text
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ByteString -> ByteString
B64.encode (ByteString -> Value) -> ByteString -> Value
forall a b. (a -> b) -> a -> b
$ ByteString
x
toEncoding :: TagVal -> Encoding
toEncoding (BoolT Bool
x) = Bool -> Encoding
forall a. ToJSON a => a -> Encoding
toEncoding Bool
x
toEncoding (StringT Text
x) = Text -> Encoding
forall a. ToJSON a => a -> Encoding
toEncoding Text
x
toEncoding (IntT Int64
x) = Int64 -> Encoding
forall a. ToJSON a => a -> Encoding
toEncoding Int64
x
toEncoding (DoubleT Double
x) = Double -> Encoding
forall a. ToJSON a => a -> Encoding
toEncoding Double
x
toEncoding (BinaryT ByteString
x) = Text -> Encoding
forall a. ToJSON a => a -> Encoding
toEncoding (Text -> Encoding)
-> (ByteString -> Text) -> ByteString -> Encoding
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ByteString -> Text
Lazy.decodeUtf8 (ByteString -> Text)
-> (ByteString -> ByteString) -> ByteString -> Text
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ByteString -> ByteString
B64.encode (ByteString -> Encoding) -> ByteString -> Encoding
forall a b. (a -> b) -> a -> b
$ ByteString
x
setTag :: Tag -> Tags -> Tags
setTag :: Tag -> Tags -> Tags
setTag (Text
k,TagVal
v) = HashMap Text TagVal -> Tags
Tags (HashMap Text TagVal -> Tags)
-> (Tags -> HashMap Text TagVal) -> Tags -> Tags
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Text -> TagVal -> HashMap Text TagVal -> HashMap Text TagVal
forall k v.
(Eq k, Hashable k) =>
k -> v -> HashMap k v -> HashMap k v
HashMap.insert Text
k TagVal
v (HashMap Text TagVal -> HashMap Text TagVal)
-> (Tags -> HashMap Text TagVal) -> Tags -> HashMap Text TagVal
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Tags -> HashMap Text TagVal
fromTags
getTag :: Text -> Tags -> Maybe TagVal
getTag :: Text -> Tags -> Maybe TagVal
getTag Text
k = Text -> HashMap Text TagVal -> Maybe TagVal
forall k v. (Eq k, Hashable k) => k -> HashMap k v -> Maybe v
HashMap.lookup Text
k (HashMap Text TagVal -> Maybe TagVal)
-> (Tags -> HashMap Text TagVal) -> Tags -> Maybe TagVal
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Tags -> HashMap Text TagVal
fromTags
getTagReify :: Getting (First b) Tag b -> Text -> Tags -> Maybe b
getTagReify :: Getting (First b) Tag b -> Text -> Tags -> Maybe b
getTagReify Getting (First b) Tag b
p Text
k Tags
ts = Text -> Tags -> Maybe TagVal
getTag Text
k Tags
ts Maybe TagVal -> (TagVal -> Maybe b) -> Maybe b
forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
>>= Getting (First b) Tag b -> Tag -> Maybe b
forall s (m :: * -> *) a.
MonadReader s m =>
Getting (First a) s a -> m (Maybe a)
preview Getting (First b) Tag b
p (Tag -> Maybe b) -> (TagVal -> Tag) -> TagVal -> Maybe b
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Text
k,)
pattern $bComponentKey :: a
$mComponentKey :: forall r a.
(Eq a, IsString a) =>
a -> (Void# -> r) -> (Void# -> r) -> r
ComponentKey = "component"
pattern $bDbInstanceKey :: a
$mDbInstanceKey :: forall r a.
(Eq a, IsString a) =>
a -> (Void# -> r) -> (Void# -> r) -> r
DbInstanceKey = "db.instance"
pattern $bDbStatementKey :: a
$mDbStatementKey :: forall r a.
(Eq a, IsString a) =>
a -> (Void# -> r) -> (Void# -> r) -> r
DbStatementKey = "db.statement"
pattern $bDbTypeKey :: a
$mDbTypeKey :: forall r a.
(Eq a, IsString a) =>
a -> (Void# -> r) -> (Void# -> r) -> r
DbTypeKey = "db.type"
pattern $bDbUserKey :: a
$mDbUserKey :: forall r a.
(Eq a, IsString a) =>
a -> (Void# -> r) -> (Void# -> r) -> r
DbUserKey = "db.user"
pattern $bErrorKey :: a
$mErrorKey :: forall r a.
(Eq a, IsString a) =>
a -> (Void# -> r) -> (Void# -> r) -> r
ErrorKey = "error"
pattern $bHttpMethodKey :: a
$mHttpMethodKey :: forall r a.
(Eq a, IsString a) =>
a -> (Void# -> r) -> (Void# -> r) -> r
HttpMethodKey = "http.method"
pattern $bHttpStatusCodeKey :: a
$mHttpStatusCodeKey :: forall r a.
(Eq a, IsString a) =>
a -> (Void# -> r) -> (Void# -> r) -> r
HttpStatusCodeKey = "http.status_code"
pattern $bHttpUrlKey :: a
$mHttpUrlKey :: forall r a.
(Eq a, IsString a) =>
a -> (Void# -> r) -> (Void# -> r) -> r
HttpUrlKey = "http.url"
pattern $bMessageBusDestinationKey :: a
$mMessageBusDestinationKey :: forall r a.
(Eq a, IsString a) =>
a -> (Void# -> r) -> (Void# -> r) -> r
MessageBusDestinationKey = "message_bus.destination"
pattern $bPeerAddressKey :: a
$mPeerAddressKey :: forall r a.
(Eq a, IsString a) =>
a -> (Void# -> r) -> (Void# -> r) -> r
PeerAddressKey = "peer.address"
pattern $bPeerHostnameKey :: a
$mPeerHostnameKey :: forall r a.
(Eq a, IsString a) =>
a -> (Void# -> r) -> (Void# -> r) -> r
PeerHostnameKey = "peer.hostname"
pattern $bPeerIPv4Key :: a
$mPeerIPv4Key :: forall r a.
(Eq a, IsString a) =>
a -> (Void# -> r) -> (Void# -> r) -> r
PeerIPv4Key = "peer.ipv4"
pattern $bPeerIPv6Key :: a
$mPeerIPv6Key :: forall r a.
(Eq a, IsString a) =>
a -> (Void# -> r) -> (Void# -> r) -> r
PeerIPv6Key = "peer.ipv6"
pattern $bPeerPortKey :: a
$mPeerPortKey :: forall r a.
(Eq a, IsString a) =>
a -> (Void# -> r) -> (Void# -> r) -> r
PeerPortKey = "peer.port"
pattern $bPeerServiceKey :: a
$mPeerServiceKey :: forall r a.
(Eq a, IsString a) =>
a -> (Void# -> r) -> (Void# -> r) -> r
PeerServiceKey = "peer.service"
pattern $bSamplingPriorityKey :: a
$mSamplingPriorityKey :: forall r a.
(Eq a, IsString a) =>
a -> (Void# -> r) -> (Void# -> r) -> r
SamplingPriorityKey = "sampling.priority"
pattern $bSpanKindKey :: a
$mSpanKindKey :: forall r a.
(Eq a, IsString a) =>
a -> (Void# -> r) -> (Void# -> r) -> r
SpanKindKey = "span.kind"
_Component :: Prism' Tag Text
_Component :: p Text (f Text) -> p Tag (f Tag)
_Component = (Text -> Tag) -> (Tag -> Maybe Text) -> Prism Tag Tag Text Text
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism' ((Text
forall a. (Eq a, IsString a) => a
ComponentKey,) (TagVal -> Tag) -> (Text -> TagVal) -> Text -> Tag
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Text -> TagVal
StringT) ((Tag -> Maybe Text) -> Prism Tag Tag Text Text)
-> (Tag -> Maybe Text) -> Prism Tag Tag Text Text
forall a b. (a -> b) -> a -> b
$ \case
(Text
k, StringT Text
v) | Text
k Text -> Text -> Bool
forall a. Eq a => a -> a -> Bool
== Text
forall a. (Eq a, IsString a) => a
ComponentKey -> Text -> Maybe Text
forall a. a -> Maybe a
Just Text
v
Tag
_ -> Maybe Text
forall a. Maybe a
Nothing
pattern $bComponent :: Text -> Tag
$mComponent :: forall r. Tag -> (Text -> r) -> (Void# -> r) -> r
Component v <- (preview _Component -> Just v) where
Component Text
v = AReview Tag Text -> Text -> Tag
forall b (m :: * -> *) t. MonadReader b m => AReview t b -> m t
review AReview Tag Text
Prism Tag Tag Text Text
_Component Text
v
_DbInstance :: Prism' Tag Text
_DbInstance :: p Text (f Text) -> p Tag (f Tag)
_DbInstance = (Text -> Tag) -> (Tag -> Maybe Text) -> Prism Tag Tag Text Text
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism' ((Text
forall a. (Eq a, IsString a) => a
DbInstanceKey,) (TagVal -> Tag) -> (Text -> TagVal) -> Text -> Tag
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Text -> TagVal
StringT) ((Tag -> Maybe Text) -> Prism Tag Tag Text Text)
-> (Tag -> Maybe Text) -> Prism Tag Tag Text Text
forall a b. (a -> b) -> a -> b
$ \case
(Text
k, StringT Text
v) | Text
k Text -> Text -> Bool
forall a. Eq a => a -> a -> Bool
== Text
forall a. (Eq a, IsString a) => a
DbInstanceKey -> Text -> Maybe Text
forall a. a -> Maybe a
Just Text
v
Tag
_ -> Maybe Text
forall a. Maybe a
Nothing
pattern $bDbInstance :: Text -> Tag
$mDbInstance :: forall r. Tag -> (Text -> r) -> (Void# -> r) -> r
DbInstance v <- (preview _DbInstance -> Just v) where
DbInstance Text
v = AReview Tag Text -> Text -> Tag
forall b (m :: * -> *) t. MonadReader b m => AReview t b -> m t
review AReview Tag Text
Prism Tag Tag Text Text
_DbInstance Text
v
_DbStatement :: Prism' Tag Text
_DbStatement :: p Text (f Text) -> p Tag (f Tag)
_DbStatement = (Text -> Tag) -> (Tag -> Maybe Text) -> Prism Tag Tag Text Text
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism' ((Text
forall a. (Eq a, IsString a) => a
DbStatementKey,) (TagVal -> Tag) -> (Text -> TagVal) -> Text -> Tag
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Text -> TagVal
StringT) ((Tag -> Maybe Text) -> Prism Tag Tag Text Text)
-> (Tag -> Maybe Text) -> Prism Tag Tag Text Text
forall a b. (a -> b) -> a -> b
$ \case
(Text
k, StringT Text
v) | Text
k Text -> Text -> Bool
forall a. Eq a => a -> a -> Bool
== Text
forall a. (Eq a, IsString a) => a
DbStatementKey -> Text -> Maybe Text
forall a. a -> Maybe a
Just Text
v
Tag
_ -> Maybe Text
forall a. Maybe a
Nothing
pattern $bDbStatement :: Text -> Tag
$mDbStatement :: forall r. Tag -> (Text -> r) -> (Void# -> r) -> r
DbStatement v <- (preview _DbStatement -> Just v) where
DbStatement Text
v = AReview Tag Text -> Text -> Tag
forall b (m :: * -> *) t. MonadReader b m => AReview t b -> m t
review AReview Tag Text
Prism Tag Tag Text Text
_DbStatement Text
v
_DbType :: Prism' Tag Text
_DbType :: p Text (f Text) -> p Tag (f Tag)
_DbType = (Text -> Tag) -> (Tag -> Maybe Text) -> Prism Tag Tag Text Text
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism' ((Text
forall a. (Eq a, IsString a) => a
DbTypeKey,) (TagVal -> Tag) -> (Text -> TagVal) -> Text -> Tag
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Text -> TagVal
StringT) ((Tag -> Maybe Text) -> Prism Tag Tag Text Text)
-> (Tag -> Maybe Text) -> Prism Tag Tag Text Text
forall a b. (a -> b) -> a -> b
$ \case
(Text
k, StringT Text
v) | Text
k Text -> Text -> Bool
forall a. Eq a => a -> a -> Bool
== Text
forall a. (Eq a, IsString a) => a
DbTypeKey -> Text -> Maybe Text
forall a. a -> Maybe a
Just Text
v
Tag
_ -> Maybe Text
forall a. Maybe a
Nothing
pattern $bDbType :: Text -> Tag
$mDbType :: forall r. Tag -> (Text -> r) -> (Void# -> r) -> r
DbType v <- (preview _DbType -> Just v) where
DbType Text
v = AReview Tag Text -> Text -> Tag
forall b (m :: * -> *) t. MonadReader b m => AReview t b -> m t
review AReview Tag Text
Prism Tag Tag Text Text
_DbType Text
v
_DbUser :: Prism' Tag Text
_DbUser :: p Text (f Text) -> p Tag (f Tag)
_DbUser = (Text -> Tag) -> (Tag -> Maybe Text) -> Prism Tag Tag Text Text
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism' ((Text
forall a. (Eq a, IsString a) => a
DbUserKey,) (TagVal -> Tag) -> (Text -> TagVal) -> Text -> Tag
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Text -> TagVal
StringT) ((Tag -> Maybe Text) -> Prism Tag Tag Text Text)
-> (Tag -> Maybe Text) -> Prism Tag Tag Text Text
forall a b. (a -> b) -> a -> b
$ \case
(Text
k, StringT Text
v) | Text
k Text -> Text -> Bool
forall a. Eq a => a -> a -> Bool
== Text
forall a. (Eq a, IsString a) => a
DbUserKey -> Text -> Maybe Text
forall a. a -> Maybe a
Just Text
v
Tag
_ -> Maybe Text
forall a. Maybe a
Nothing
pattern $bDbUser :: Text -> Tag
$mDbUser :: forall r. Tag -> (Text -> r) -> (Void# -> r) -> r
DbUser v <- (preview _DbUser -> Just v) where
DbUser Text
v = AReview Tag Text -> Text -> Tag
forall b (m :: * -> *) t. MonadReader b m => AReview t b -> m t
review AReview Tag Text
Prism Tag Tag Text Text
_DbUser Text
v
_Error :: Prism' Tag Bool
_Error :: p Bool (f Bool) -> p Tag (f Tag)
_Error = (Bool -> Tag) -> (Tag -> Maybe Bool) -> Prism Tag Tag Bool Bool
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism' ((Text
forall a. (Eq a, IsString a) => a
ErrorKey,) (TagVal -> Tag) -> (Bool -> TagVal) -> Bool -> Tag
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Bool -> TagVal
BoolT) ((Tag -> Maybe Bool) -> Prism Tag Tag Bool Bool)
-> (Tag -> Maybe Bool) -> Prism Tag Tag Bool Bool
forall a b. (a -> b) -> a -> b
$ \case
(Text
k, BoolT Bool
v) | Text
k Text -> Text -> Bool
forall a. Eq a => a -> a -> Bool
== Text
forall a. (Eq a, IsString a) => a
ErrorKey -> Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
v
Tag
_ -> Maybe Bool
forall a. Maybe a
Nothing
pattern $bError :: Bool -> Tag
$mError :: forall r. Tag -> (Bool -> r) -> (Void# -> r) -> r
Error v <- (preview _Error -> Just v) where
Error Bool
v = AReview Tag Bool -> Bool -> Tag
forall b (m :: * -> *) t. MonadReader b m => AReview t b -> m t
review AReview Tag Bool
Prism Tag Tag Bool Bool
_Error Bool
v
_HttpUrl :: Prism' Tag Text
_HttpUrl :: p Text (f Text) -> p Tag (f Tag)
_HttpUrl = (Text -> Tag) -> (Tag -> Maybe Text) -> Prism Tag Tag Text Text
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism' ((Text
forall a. (Eq a, IsString a) => a
HttpUrlKey,) (TagVal -> Tag) -> (Text -> TagVal) -> Text -> Tag
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Text -> TagVal
StringT) ((Tag -> Maybe Text) -> Prism Tag Tag Text Text)
-> (Tag -> Maybe Text) -> Prism Tag Tag Text Text
forall a b. (a -> b) -> a -> b
$ \case
(Text
k, StringT Text
v) | Text
k Text -> Text -> Bool
forall a. Eq a => a -> a -> Bool
== Text
forall a. (Eq a, IsString a) => a
HttpUrlKey -> Text -> Maybe Text
forall a. a -> Maybe a
Just Text
v
Tag
_ -> Maybe Text
forall a. Maybe a
Nothing
pattern $bHttpUrl :: Text -> Tag
$mHttpUrl :: forall r. Tag -> (Text -> r) -> (Void# -> r) -> r
HttpUrl v <- (preview _HttpUrl -> Just v) where
HttpUrl Text
v = AReview Tag Text -> Text -> Tag
forall b (m :: * -> *) t. MonadReader b m => AReview t b -> m t
review AReview Tag Text
Prism Tag Tag Text Text
_HttpUrl Text
v
_MessageBusDestination :: Prism' Tag Text
_MessageBusDestination :: p Text (f Text) -> p Tag (f Tag)
_MessageBusDestination = (Text -> Tag) -> (Tag -> Maybe Text) -> Prism Tag Tag Text Text
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism' ((Text
forall a. (Eq a, IsString a) => a
MessageBusDestinationKey,) (TagVal -> Tag) -> (Text -> TagVal) -> Text -> Tag
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Text -> TagVal
StringT) ((Tag -> Maybe Text) -> Prism Tag Tag Text Text)
-> (Tag -> Maybe Text) -> Prism Tag Tag Text Text
forall a b. (a -> b) -> a -> b
$ \case
(Text
k, StringT Text
v) | Text
k Text -> Text -> Bool
forall a. Eq a => a -> a -> Bool
== Text
forall a. (Eq a, IsString a) => a
MessageBusDestinationKey -> Text -> Maybe Text
forall a. a -> Maybe a
Just Text
v
Tag
_ -> Maybe Text
forall a. Maybe a
Nothing
pattern $bMessageBusDestination :: Text -> Tag
$mMessageBusDestination :: forall r. Tag -> (Text -> r) -> (Void# -> r) -> r
MessageBusDestination v <- (preview _MessageBusDestination -> Just v) where
MessageBusDestination Text
v = AReview Tag Text -> Text -> Tag
forall b (m :: * -> *) t. MonadReader b m => AReview t b -> m t
review AReview Tag Text
Prism Tag Tag Text Text
_MessageBusDestination Text
v
_PeerAddress :: Prism' Tag Text
_PeerAddress :: p Text (f Text) -> p Tag (f Tag)
_PeerAddress = (Text -> Tag) -> (Tag -> Maybe Text) -> Prism Tag Tag Text Text
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism' ((Text
forall a. (Eq a, IsString a) => a
PeerAddressKey,) (TagVal -> Tag) -> (Text -> TagVal) -> Text -> Tag
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Text -> TagVal
StringT) ((Tag -> Maybe Text) -> Prism Tag Tag Text Text)
-> (Tag -> Maybe Text) -> Prism Tag Tag Text Text
forall a b. (a -> b) -> a -> b
$ \case
(Text
k, StringT Text
v) | Text
k Text -> Text -> Bool
forall a. Eq a => a -> a -> Bool
== Text
forall a. (Eq a, IsString a) => a
PeerAddressKey -> Text -> Maybe Text
forall a. a -> Maybe a
Just Text
v
Tag
_ -> Maybe Text
forall a. Maybe a
Nothing
pattern $bPeerAddress :: Text -> Tag
$mPeerAddress :: forall r. Tag -> (Text -> r) -> (Void# -> r) -> r
PeerAddress v <- (preview _PeerAddress -> Just v) where
PeerAddress Text
v = AReview Tag Text -> Text -> Tag
forall b (m :: * -> *) t. MonadReader b m => AReview t b -> m t
review AReview Tag Text
Prism Tag Tag Text Text
_PeerAddress Text
v
_PeerHostname :: Prism' Tag Text
_PeerHostname :: p Text (f Text) -> p Tag (f Tag)
_PeerHostname = (Text -> Tag) -> (Tag -> Maybe Text) -> Prism Tag Tag Text Text
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism' ((Text
forall a. (Eq a, IsString a) => a
PeerHostnameKey,) (TagVal -> Tag) -> (Text -> TagVal) -> Text -> Tag
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Text -> TagVal
StringT) ((Tag -> Maybe Text) -> Prism Tag Tag Text Text)
-> (Tag -> Maybe Text) -> Prism Tag Tag Text Text
forall a b. (a -> b) -> a -> b
$ \case
(Text
k, StringT Text
v) | Text
k Text -> Text -> Bool
forall a. Eq a => a -> a -> Bool
== Text
forall a. (Eq a, IsString a) => a
PeerHostnameKey -> Text -> Maybe Text
forall a. a -> Maybe a
Just Text
v
Tag
_ -> Maybe Text
forall a. Maybe a
Nothing
pattern $bPeerHostname :: Text -> Tag
$mPeerHostname :: forall r. Tag -> (Text -> r) -> (Void# -> r) -> r
PeerHostname v <- (preview _PeerHostname -> Just v) where
PeerHostname Text
v = AReview Tag Text -> Text -> Tag
forall b (m :: * -> *) t. MonadReader b m => AReview t b -> m t
review AReview Tag Text
Prism Tag Tag Text Text
_PeerHostname Text
v
_PeerService :: Prism' Tag Text
_PeerService :: p Text (f Text) -> p Tag (f Tag)
_PeerService = (Text -> Tag) -> (Tag -> Maybe Text) -> Prism Tag Tag Text Text
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism' ((Text
forall a. (Eq a, IsString a) => a
PeerServiceKey,) (TagVal -> Tag) -> (Text -> TagVal) -> Text -> Tag
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Text -> TagVal
StringT) ((Tag -> Maybe Text) -> Prism Tag Tag Text Text)
-> (Tag -> Maybe Text) -> Prism Tag Tag Text Text
forall a b. (a -> b) -> a -> b
$ \case
(Text
k, StringT Text
v) | Text
k Text -> Text -> Bool
forall a. Eq a => a -> a -> Bool
== Text
forall a. (Eq a, IsString a) => a
PeerServiceKey -> Text -> Maybe Text
forall a. a -> Maybe a
Just Text
v
Tag
_ -> Maybe Text
forall a. Maybe a
Nothing
pattern $bPeerService :: Text -> Tag
$mPeerService :: forall r. Tag -> (Text -> r) -> (Void# -> r) -> r
PeerService v <- (preview _PeerService -> Just v) where
PeerService Text
v = AReview Tag Text -> Text -> Tag
forall b (m :: * -> *) t. MonadReader b m => AReview t b -> m t
review AReview Tag Text
Prism Tag Tag Text Text
_PeerService Text
v
_HttpMethod :: Prism' Tag Method
_HttpMethod :: p Method (f Method) -> p Tag (f Tag)
_HttpMethod = (Method -> Tag)
-> (Tag -> Maybe Method) -> Prism Tag Tag Method Method
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism' ((Text
forall a. (Eq a, IsString a) => a
HttpMethodKey,) (TagVal -> Tag) -> (Method -> TagVal) -> Method -> Tag
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Text -> TagVal
StringT (Text -> TagVal) -> (Method -> Text) -> Method -> TagVal
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Method -> Text
decodeUtf8) ((Tag -> Maybe Method) -> Prism Tag Tag Method Method)
-> (Tag -> Maybe Method) -> Prism Tag Tag Method Method
forall a b. (a -> b) -> a -> b
$ \case
(Text
k, StringT (Text -> Method
encodeUtf8 -> Method
x)) | Text
k Text -> Text -> Bool
forall a. Eq a => a -> a -> Bool
== Text
forall a. (Eq a, IsString a) => a
HttpMethodKey ->
(Method -> Maybe Method)
-> (StdMethod -> Maybe Method)
-> Either Method StdMethod
-> Maybe Method
forall a c b. (a -> c) -> (b -> c) -> Either a b -> c
either (Maybe Method -> Method -> Maybe Method
forall a b. a -> b -> a
const Maybe Method
forall a. Maybe a
Nothing) (Maybe Method -> StdMethod -> Maybe Method
forall a b. a -> b -> a
const (Method -> Maybe Method
forall a. a -> Maybe a
Just Method
x)) (Either Method StdMethod -> Maybe Method)
-> Either Method StdMethod -> Maybe Method
forall a b. (a -> b) -> a -> b
$ Method -> Either Method StdMethod
parseMethod Method
x
Tag
_ -> Maybe Method
forall a. Maybe a
Nothing
pattern $bHttpMethod :: Method -> Tag
$mHttpMethod :: forall r. Tag -> (Method -> r) -> (Void# -> r) -> r
HttpMethod v <- (preview _HttpMethod -> Just v) where
HttpMethod Method
v = AReview Tag Method -> Method -> Tag
forall b (m :: * -> *) t. MonadReader b m => AReview t b -> m t
review AReview Tag Method
Prism Tag Tag Method Method
_HttpMethod Method
v
_HttpStatusCode :: Prism' Tag Status
_HttpStatusCode :: p Status (f Status) -> p Tag (f Tag)
_HttpStatusCode = (Status -> Tag)
-> (Tag -> Maybe Status) -> Prism Tag Tag Status Status
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism' ((Text
forall a. (Eq a, IsString a) => a
HttpStatusCodeKey,) (TagVal -> Tag) -> (Status -> TagVal) -> Status -> Tag
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Int64 -> TagVal
IntT (Int64 -> TagVal) -> (Status -> Int64) -> Status -> TagVal
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Int -> Int64
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int -> Int64) -> (Status -> Int) -> Status -> Int64
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Status -> Int
statusCode) ((Tag -> Maybe Status) -> Prism Tag Tag Status Status)
-> (Tag -> Maybe Status) -> Prism Tag Tag Status Status
forall a b. (a -> b) -> a -> b
$ \case
(Text
k, IntT Int64
x) | Text
k Text -> Text -> Bool
forall a. Eq a => a -> a -> Bool
== Text
forall a. (Eq a, IsString a) => a
HttpStatusCodeKey -> Status -> Maybe Status
forall a. a -> Maybe a
Just (Status -> Maybe Status)
-> (Int64 -> Status) -> Int64 -> Maybe Status
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Int -> Status
forall a. Enum a => Int -> a
toEnum (Int -> Status) -> (Int64 -> Int) -> Int64 -> Status
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Int64 -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int64 -> Maybe Status) -> Int64 -> Maybe Status
forall a b. (a -> b) -> a -> b
$ Int64
x
Tag
_ -> Maybe Status
forall a. Maybe a
Nothing
pattern $bHttpStatusCode :: Status -> Tag
$mHttpStatusCode :: forall r. Tag -> (Status -> r) -> (Void# -> r) -> r
HttpStatusCode v <- (preview _HttpStatusCode -> Just v) where
HttpStatusCode Status
v = AReview Tag Status -> Status -> Tag
forall b (m :: * -> *) t. MonadReader b m => AReview t b -> m t
review AReview Tag Status
Prism Tag Tag Status Status
_HttpStatusCode Status
v
_PeerIPv4 :: Prism' Tag IPv4
_PeerIPv4 :: p IPv4 (f IPv4) -> p Tag (f Tag)
_PeerIPv4 = (IPv4 -> Tag) -> (Tag -> Maybe IPv4) -> Prism Tag Tag IPv4 IPv4
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism' ((Text
forall a. (Eq a, IsString a) => a
PeerIPv4Key,) (TagVal -> Tag) -> (IPv4 -> TagVal) -> IPv4 -> Tag
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Text -> TagVal
StringT (Text -> TagVal) -> (IPv4 -> Text) -> IPv4 -> TagVal
forall b c a. (b -> c) -> (a -> b) -> a -> c
. String -> Text
Text.pack (String -> Text) -> (IPv4 -> String) -> IPv4 -> Text
forall b c a. (b -> c) -> (a -> b) -> a -> c
. IPv4 -> String
forall a. Show a => a -> String
show) ((Tag -> Maybe IPv4) -> Prism Tag Tag IPv4 IPv4)
-> (Tag -> Maybe IPv4) -> Prism Tag Tag IPv4 IPv4
forall a b. (a -> b) -> a -> b
$ \case
(Text
k, StringT Text
x) | Text
k Text -> Text -> Bool
forall a. Eq a => a -> a -> Bool
== Text
forall a. (Eq a, IsString a) => a
PeerIPv4Key -> String -> Maybe IPv4
forall a. Read a => String -> Maybe a
readMaybe (Text -> String
Text.unpack Text
x)
Tag
_ -> Maybe IPv4
forall a. Maybe a
Nothing
pattern $bPeerIPv4 :: IPv4 -> Tag
$mPeerIPv4 :: forall r. Tag -> (IPv4 -> r) -> (Void# -> r) -> r
PeerIPv4 v <- (preview _PeerIPv4 -> Just v) where
PeerIPv4 IPv4
v = AReview Tag IPv4 -> IPv4 -> Tag
forall b (m :: * -> *) t. MonadReader b m => AReview t b -> m t
review AReview Tag IPv4
Prism Tag Tag IPv4 IPv4
_PeerIPv4 IPv4
v
_PeerIPv6 :: Prism' Tag IPv6
_PeerIPv6 :: p IPv6 (f IPv6) -> p Tag (f Tag)
_PeerIPv6 = (IPv6 -> Tag) -> (Tag -> Maybe IPv6) -> Prism Tag Tag IPv6 IPv6
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism' ((Text
forall a. (Eq a, IsString a) => a
PeerIPv6Key,) (TagVal -> Tag) -> (IPv6 -> TagVal) -> IPv6 -> Tag
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Text -> TagVal
StringT (Text -> TagVal) -> (IPv6 -> Text) -> IPv6 -> TagVal
forall b c a. (b -> c) -> (a -> b) -> a -> c
. String -> Text
Text.pack (String -> Text) -> (IPv6 -> String) -> IPv6 -> Text
forall b c a. (b -> c) -> (a -> b) -> a -> c
. IPv6 -> String
forall a. Show a => a -> String
show) ((Tag -> Maybe IPv6) -> Prism Tag Tag IPv6 IPv6)
-> (Tag -> Maybe IPv6) -> Prism Tag Tag IPv6 IPv6
forall a b. (a -> b) -> a -> b
$ \case
(Text
k, StringT Text
x) | Text
k Text -> Text -> Bool
forall a. Eq a => a -> a -> Bool
== Text
forall a. (Eq a, IsString a) => a
PeerIPv6Key -> String -> Maybe IPv6
forall a. Read a => String -> Maybe a
readMaybe (Text -> String
Text.unpack Text
x)
Tag
_ -> Maybe IPv6
forall a. Maybe a
Nothing
pattern $bPeerIPv6 :: IPv6 -> Tag
$mPeerIPv6 :: forall r. Tag -> (IPv6 -> r) -> (Void# -> r) -> r
PeerIPv6 v <- (preview _PeerIPv6 -> Just v) where
PeerIPv6 IPv6
v = AReview Tag IPv6 -> IPv6 -> Tag
forall b (m :: * -> *) t. MonadReader b m => AReview t b -> m t
review AReview Tag IPv6
Prism Tag Tag IPv6 IPv6
_PeerIPv6 IPv6
v
_PeerPort :: Prism' Tag Port
_PeerPort :: p Port (f Port) -> p Tag (f Tag)
_PeerPort = (Port -> Tag) -> (Tag -> Maybe Port) -> Prism Tag Tag Port Port
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism' ((Text
forall a. (Eq a, IsString a) => a
PeerPortKey,) (TagVal -> Tag) -> (Port -> TagVal) -> Port -> Tag
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Int64 -> TagVal
IntT (Int64 -> TagVal) -> (Port -> Int64) -> Port -> TagVal
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Word16 -> Int64
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Word16 -> Int64) -> (Port -> Word16) -> Port -> Int64
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Port -> Word16
fromPort) ((Tag -> Maybe Port) -> Prism Tag Tag Port Port)
-> (Tag -> Maybe Port) -> Prism Tag Tag Port Port
forall a b. (a -> b) -> a -> b
$ \case
(Text
k, IntT Int64
x) | Text
k Text -> Text -> Bool
forall a. Eq a => a -> a -> Bool
== Text
forall a. (Eq a, IsString a) => a
PeerPortKey -> Port -> Maybe Port
forall a. a -> Maybe a
Just (Port -> Maybe Port) -> (Int64 -> Port) -> Int64 -> Maybe Port
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Int -> Port
forall a. Enum a => Int -> a
toEnum (Int -> Port) -> (Int64 -> Int) -> Int64 -> Port
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Int64 -> Int
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int64 -> Maybe Port) -> Int64 -> Maybe Port
forall a b. (a -> b) -> a -> b
$ Int64
x
Tag
_ -> Maybe Port
forall a. Maybe a
Nothing
pattern $bPeerPort :: Port -> Tag
$mPeerPort :: forall r. Tag -> (Port -> r) -> (Void# -> r) -> r
PeerPort v <- (preview _PeerPort -> Just v) where
PeerPort Port
v = AReview Tag Port -> Port -> Tag
forall b (m :: * -> *) t. MonadReader b m => AReview t b -> m t
review AReview Tag Port
Prism Tag Tag Port Port
_PeerPort Port
v
_SamplingPriority :: Prism' Tag Word8
_SamplingPriority :: p Word8 (f Word8) -> p Tag (f Tag)
_SamplingPriority = (Word8 -> Tag) -> (Tag -> Maybe Word8) -> Prism Tag Tag Word8 Word8
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism' ((Text
forall a. (Eq a, IsString a) => a
SamplingPriorityKey,) (TagVal -> Tag) -> (Word8 -> TagVal) -> Word8 -> Tag
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Int64 -> TagVal
IntT (Int64 -> TagVal) -> (Word8 -> Int64) -> Word8 -> TagVal
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Word8 -> Int64
forall a b. (Integral a, Num b) => a -> b
fromIntegral) ((Tag -> Maybe Word8) -> Prism Tag Tag Word8 Word8)
-> (Tag -> Maybe Word8) -> Prism Tag Tag Word8 Word8
forall a b. (a -> b) -> a -> b
$ \case
(Text
k, IntT Int64
x) | Text
k Text -> Text -> Bool
forall a. Eq a => a -> a -> Bool
== Text
forall a. (Eq a, IsString a) => a
SamplingPriorityKey -> Word8 -> Maybe Word8
forall a. a -> Maybe a
Just (Word8 -> Maybe Word8) -> (Int64 -> Word8) -> Int64 -> Maybe Word8
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Int64 -> Word8
forall a b. (Integral a, Num b) => a -> b
fromIntegral (Int64 -> Maybe Word8) -> Int64 -> Maybe Word8
forall a b. (a -> b) -> a -> b
$ Int64
x
Tag
_ -> Maybe Word8
forall a. Maybe a
Nothing
pattern $bSamplingPriority :: Word8 -> Tag
$mSamplingPriority :: forall r. Tag -> (Word8 -> r) -> (Void# -> r) -> r
SamplingPriority v <- (preview _SamplingPriority -> Just v) where
SamplingPriority Word8
v = AReview Tag Word8 -> Word8 -> Tag
forall b (m :: * -> *) t. MonadReader b m => AReview t b -> m t
review AReview Tag Word8
Prism Tag Tag Word8 Word8
_SamplingPriority Word8
v
_SpanKind :: Prism' Tag SpanKinds
_SpanKind :: p SpanKinds (f SpanKinds) -> p Tag (f Tag)
_SpanKind = (SpanKinds -> Tag)
-> (Tag -> Maybe SpanKinds) -> Prism Tag Tag SpanKinds SpanKinds
forall b s a. (b -> s) -> (s -> Maybe a) -> Prism s s a b
prism' ((Text
forall a. (Eq a, IsString a) => a
SpanKindKey,) (TagVal -> Tag) -> (SpanKinds -> TagVal) -> SpanKinds -> Tag
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Text -> TagVal
StringT (Text -> TagVal) -> (SpanKinds -> Text) -> SpanKinds -> TagVal
forall b c a. (b -> c) -> (a -> b) -> a -> c
. SpanKinds -> Text
spanKindLabel) ((Tag -> Maybe SpanKinds) -> Prism Tag Tag SpanKinds SpanKinds)
-> (Tag -> Maybe SpanKinds) -> Prism Tag Tag SpanKinds SpanKinds
forall a b. (a -> b) -> a -> b
$ \case
(Text
k, StringT Text
x) | Text
k Text -> Text -> Bool
forall a. Eq a => a -> a -> Bool
== Text
forall a. (Eq a, IsString a) => a
SpanKindKey -> Text -> Maybe SpanKinds
fromSpanKindLabel Text
x
Tag
_ -> Maybe SpanKinds
forall a. Maybe a
Nothing
pattern $bSpanKind :: SpanKinds -> Tag
$mSpanKind :: forall r. Tag -> (SpanKinds -> r) -> (Void# -> r) -> r
SpanKind v <- (preview _SpanKind -> Just v) where
SpanKind = AReview Tag SpanKinds -> SpanKinds -> Tag
forall b (m :: * -> *) t. MonadReader b m => AReview t b -> m t
review AReview Tag SpanKinds
Prism Tag Tag SpanKinds SpanKinds
_SpanKind
data SpanKinds
= RPCClient
| RPCServer
| Producer
| Consumer
deriving (SpanKinds -> SpanKinds -> Bool
(SpanKinds -> SpanKinds -> Bool)
-> (SpanKinds -> SpanKinds -> Bool) -> Eq SpanKinds
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: SpanKinds -> SpanKinds -> Bool
$c/= :: SpanKinds -> SpanKinds -> Bool
== :: SpanKinds -> SpanKinds -> Bool
$c== :: SpanKinds -> SpanKinds -> Bool
Eq, Int -> SpanKinds -> ShowS
[SpanKinds] -> ShowS
SpanKinds -> String
(Int -> SpanKinds -> ShowS)
-> (SpanKinds -> String)
-> ([SpanKinds] -> ShowS)
-> Show SpanKinds
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [SpanKinds] -> ShowS
$cshowList :: [SpanKinds] -> ShowS
show :: SpanKinds -> String
$cshow :: SpanKinds -> String
showsPrec :: Int -> SpanKinds -> ShowS
$cshowsPrec :: Int -> SpanKinds -> ShowS
Show, Eq SpanKinds
Eq SpanKinds
-> (SpanKinds -> SpanKinds -> Ordering)
-> (SpanKinds -> SpanKinds -> Bool)
-> (SpanKinds -> SpanKinds -> Bool)
-> (SpanKinds -> SpanKinds -> Bool)
-> (SpanKinds -> SpanKinds -> Bool)
-> (SpanKinds -> SpanKinds -> SpanKinds)
-> (SpanKinds -> SpanKinds -> SpanKinds)
-> Ord SpanKinds
SpanKinds -> SpanKinds -> Bool
SpanKinds -> SpanKinds -> Ordering
SpanKinds -> SpanKinds -> SpanKinds
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 :: SpanKinds -> SpanKinds -> SpanKinds
$cmin :: SpanKinds -> SpanKinds -> SpanKinds
max :: SpanKinds -> SpanKinds -> SpanKinds
$cmax :: SpanKinds -> SpanKinds -> SpanKinds
>= :: SpanKinds -> SpanKinds -> Bool
$c>= :: SpanKinds -> SpanKinds -> Bool
> :: SpanKinds -> SpanKinds -> Bool
$c> :: SpanKinds -> SpanKinds -> Bool
<= :: SpanKinds -> SpanKinds -> Bool
$c<= :: SpanKinds -> SpanKinds -> Bool
< :: SpanKinds -> SpanKinds -> Bool
$c< :: SpanKinds -> SpanKinds -> Bool
compare :: SpanKinds -> SpanKinds -> Ordering
$ccompare :: SpanKinds -> SpanKinds -> Ordering
$cp1Ord :: Eq SpanKinds
Ord)
spanKindLabel :: SpanKinds -> Text
spanKindLabel :: SpanKinds -> Text
spanKindLabel SpanKinds
RPCClient = Text
"CLIENT"
spanKindLabel SpanKinds
RPCServer = Text
"SERVER"
spanKindLabel SpanKinds
Producer = Text
"PRODUCER"
spanKindLabel SpanKinds
Consumer = Text
"CONSUMER"
fromSpanKindLabel :: Text -> Maybe SpanKinds
fromSpanKindLabel :: Text -> Maybe SpanKinds
fromSpanKindLabel Text
"CLIENT" = SpanKinds -> Maybe SpanKinds
forall a. a -> Maybe a
Just SpanKinds
RPCClient
fromSpanKindLabel Text
"SERVER" = SpanKinds -> Maybe SpanKinds
forall a. a -> Maybe a
Just SpanKinds
RPCServer
fromSpanKindLabel Text
"PRODUCER" = SpanKinds -> Maybe SpanKinds
forall a. a -> Maybe a
Just SpanKinds
Producer
fromSpanKindLabel Text
"CONSUMER" = SpanKinds -> Maybe SpanKinds
forall a. a -> Maybe a
Just SpanKinds
Consumer
fromSpanKindLabel Text
_ = Maybe SpanKinds
forall a. Maybe a
Nothing
instance ToJSON SpanKinds where
toJSON :: SpanKinds -> Value
toJSON = Text -> Value
forall a. ToJSON a => a -> Value
toJSON (Text -> Value) -> (SpanKinds -> Text) -> SpanKinds -> Value
forall b c a. (b -> c) -> (a -> b) -> a -> c
. SpanKinds -> Text
spanKindLabel
toEncoding :: SpanKinds -> Encoding
toEncoding = Text -> Encoding
forall a. Text -> Encoding' a
text (Text -> Encoding) -> (SpanKinds -> Text) -> SpanKinds -> Encoding
forall b c a. (b -> c) -> (a -> b) -> a -> c
. SpanKinds -> Text
spanKindLabel