module Tokstyle.Analysis.SecurityRank.Types where
import Data.Map.Strict (Map)
import qualified Data.Map.Strict as Map
import Tokstyle.Analysis.SecurityRank.Lattice (SecurityRank)
import Tokstyle.Analysis.Types (AbstractLocation,
Context)
data SecurityRankSummaryData = SecurityRankSummaryData
{
SecurityRankSummaryData -> Map AbstractLocation SecurityRank
srsOutputRanks :: Map AbstractLocation SecurityRank
, :: Map Int SecurityRank
, SecurityRankSummaryData -> [String]
srsdDiagnostics :: [String]
} deriving (Int -> SecurityRankSummaryData -> ShowS
[SecurityRankSummaryData] -> ShowS
SecurityRankSummaryData -> String
(Int -> SecurityRankSummaryData -> ShowS)
-> (SecurityRankSummaryData -> String)
-> ([SecurityRankSummaryData] -> ShowS)
-> Show SecurityRankSummaryData
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [SecurityRankSummaryData] -> ShowS
$cshowList :: [SecurityRankSummaryData] -> ShowS
show :: SecurityRankSummaryData -> String
$cshow :: SecurityRankSummaryData -> String
showsPrec :: Int -> SecurityRankSummaryData -> ShowS
$cshowsPrec :: Int -> SecurityRankSummaryData -> ShowS
Show, Eq SecurityRankSummaryData
Eq SecurityRankSummaryData
-> (SecurityRankSummaryData -> SecurityRankSummaryData -> Ordering)
-> (SecurityRankSummaryData -> SecurityRankSummaryData -> Bool)
-> (SecurityRankSummaryData -> SecurityRankSummaryData -> Bool)
-> (SecurityRankSummaryData -> SecurityRankSummaryData -> Bool)
-> (SecurityRankSummaryData -> SecurityRankSummaryData -> Bool)
-> (SecurityRankSummaryData
-> SecurityRankSummaryData -> SecurityRankSummaryData)
-> (SecurityRankSummaryData
-> SecurityRankSummaryData -> SecurityRankSummaryData)
-> Ord SecurityRankSummaryData
SecurityRankSummaryData -> SecurityRankSummaryData -> Bool
SecurityRankSummaryData -> SecurityRankSummaryData -> Ordering
SecurityRankSummaryData
-> SecurityRankSummaryData -> SecurityRankSummaryData
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 :: SecurityRankSummaryData
-> SecurityRankSummaryData -> SecurityRankSummaryData
$cmin :: SecurityRankSummaryData
-> SecurityRankSummaryData -> SecurityRankSummaryData
max :: SecurityRankSummaryData
-> SecurityRankSummaryData -> SecurityRankSummaryData
$cmax :: SecurityRankSummaryData
-> SecurityRankSummaryData -> SecurityRankSummaryData
>= :: SecurityRankSummaryData -> SecurityRankSummaryData -> Bool
$c>= :: SecurityRankSummaryData -> SecurityRankSummaryData -> Bool
> :: SecurityRankSummaryData -> SecurityRankSummaryData -> Bool
$c> :: SecurityRankSummaryData -> SecurityRankSummaryData -> Bool
<= :: SecurityRankSummaryData -> SecurityRankSummaryData -> Bool
$c<= :: SecurityRankSummaryData -> SecurityRankSummaryData -> Bool
< :: SecurityRankSummaryData -> SecurityRankSummaryData -> Bool
$c< :: SecurityRankSummaryData -> SecurityRankSummaryData -> Bool
compare :: SecurityRankSummaryData -> SecurityRankSummaryData -> Ordering
$ccompare :: SecurityRankSummaryData -> SecurityRankSummaryData -> Ordering
$cp1Ord :: Eq SecurityRankSummaryData
Ord)
type SecurityRankSummary = Map Context SecurityRankSummaryData
instance Eq SecurityRankSummaryData where
SecurityRankSummaryData
a == :: SecurityRankSummaryData -> SecurityRankSummaryData -> Bool
== SecurityRankSummaryData
b = SecurityRankSummaryData -> Map AbstractLocation SecurityRank
srsOutputRanks SecurityRankSummaryData
a Map AbstractLocation SecurityRank
-> Map AbstractLocation SecurityRank -> Bool
forall a. Eq a => a -> a -> Bool
== SecurityRankSummaryData -> Map AbstractLocation SecurityRank
srsOutputRanks SecurityRankSummaryData
b Bool -> Bool -> Bool
&&
SecurityRankSummaryData -> Map Int SecurityRank
srsSinks SecurityRankSummaryData
a Map Int SecurityRank -> Map Int SecurityRank -> Bool
forall a. Eq a => a -> a -> Bool
== SecurityRankSummaryData -> Map Int SecurityRank
srsSinks SecurityRankSummaryData
b
emptySecurityRankSummaryData :: SecurityRankSummaryData
emptySecurityRankSummaryData :: SecurityRankSummaryData
emptySecurityRankSummaryData = Map AbstractLocation SecurityRank
-> Map Int SecurityRank -> [String] -> SecurityRankSummaryData
SecurityRankSummaryData Map AbstractLocation SecurityRank
forall k a. Map k a
Map.empty Map Int SecurityRank
forall k a. Map k a
Map.empty []