{-# LANGUAGE CPP, OverloadedStrings #-}
module Data.GraphViz.Attributes.Complete
(
Attribute(..)
, Attributes
, sameAttribute
, defaultAttributeValue
, rmUnwantedAttributes
, usedByGraphs
, usedBySubGraphs
, usedByClusters
, usedByNodes
, usedByEdges
, validUnknown
, AttributeName
, CustomAttribute
, customAttribute
, isCustom
, isSpecifiedCustom
, customValue
, customName
, findCustoms
, findSpecifiedCustom
, deleteCustomAttributes
, deleteSpecifiedCustom
, module Data.GraphViz.Attributes.Colors
, Number (..)
, EscString
, Label(..)
, VerticalPlacement(..)
, LabelScheme(..)
, SVGFontNames(..)
, RecordFields
, RecordField(..)
, Rect(..)
, Justification(..)
, Shape(..)
, Paths(..)
, ScaleType(..)
, NodeSize(..)
, DirType(..)
, EdgeType(..)
, PortName(..)
, PortPos(..)
, CompassPoint(..)
, ArrowType(..)
, ArrowShape(..)
, ArrowModifier(..)
, ArrowFill(..)
, ArrowSide(..)
, noMods
, openMod
, Point(..)
, createPoint
, Pos(..)
, Spline(..)
, DPoint(..)
, Normalized (..)
, GraphvizCommand(..)
, GraphSize(..)
, ClusterMode(..)
, Model(..)
, Overlap(..)
, Root(..)
, Order(..)
, OutputMode(..)
, Pack(..)
, PackMode(..)
, PageDir(..)
, QuadType(..)
, RankType(..)
, RankDir(..)
, StartType(..)
, ViewPort(..)
, FocusType(..)
, Ratios(..)
, ModeType(..)
, DEConstraints(..)
, LayerSep(..)
, LayerListSep(..)
, LayerRange
, LayerRangeElem(..)
, LayerID(..)
, LayerList(..)
, SmoothType(..)
, STStyle(..)
, StyleItem(..)
, StyleName(..)
) where
import Data.GraphViz.Attributes.Arrows
import Data.GraphViz.Attributes.Colors
import Data.GraphViz.Attributes.Colors.X11 (X11Color(Black))
import Data.GraphViz.Attributes.Internal
import Data.GraphViz.Attributes.Values
import Data.GraphViz.Commands.Available
import Data.GraphViz.Exception (GraphvizException(NotCustomAttr),
throw)
import Data.GraphViz.Internal.State (getsGS, parseStrictly)
import Data.GraphViz.Internal.Util (bool, isIDString, keywords,
restIDString)
import Data.GraphViz.Parsing
import Data.GraphViz.Printing
import Data.List (partition)
import Data.Maybe (isNothing)
import qualified Data.Set as S
import Data.Text.Lazy (Text)
import qualified Data.Text.Lazy as T
import Data.Version (Version(..))
import Data.Word (Word16)
#if !MIN_VERSION_base (4,13,0)
import Data.Monoid ((<>))
#endif
data Attribute
= Damping Double
| K Double
| URL EscString
| Area Double
| ArrowHead ArrowType
| ArrowSize Double
| ArrowTail ArrowType
| Background Text
| BoundingBox Rect
| BgColor ColorList
| Center Bool
| ClusterRank ClusterMode
| Color ColorList
| ColorScheme ColorScheme
| Text
| Compound Bool
| Concentrate Bool
| Constraint Bool
| Decorate Bool
| DefaultDist Double
| Dim Int
| Dimen Int
| Dir DirType
| DirEdgeConstraints DEConstraints
| Distortion Double
| DPI Double
| EdgeURL EscString
| EdgeTarget EscString
| EdgeTooltip EscString
| Epsilon Double
| ESep DPoint
| FillColor ColorList
| FixedSize NodeSize
| FontColor Color
| FontName Text
| FontNames SVGFontNames
| FontPath Paths
| FontSize Double
| ForceLabels Bool
| GradientAngle Int
| Group Text
| HeadURL EscString
| Head_LP Point
| HeadClip Bool
| HeadLabel Label
| HeadPort PortPos
| HeadTarget EscString
| HeadTooltip EscString
| Height Double
| ID EscString
| Image Text
| ImagePath Paths
| ImageScale ScaleType
| InputScale Double
| Label Label
| LabelURL EscString
| LabelScheme LabelScheme
| LabelAngle Double
| LabelDistance Double
| LabelFloat Bool
| LabelFontColor Color
| LabelFontName Text
| LabelFontSize Double
| LabelJust Justification
| LabelLoc VerticalPlacement
| LabelTarget EscString
| LabelTooltip EscString
| Landscape Bool
| Layer LayerRange
| LayerListSep LayerListSep
| Layers LayerList
| LayerSelect LayerRange
| LayerSep LayerSep
| Layout GraphvizCommand
| Len Double
| Levels Int
| LevelsGap Double
| LHead Text
| LHeight Double
| LPos Point
| LTail Text
| LWidth Double
| Margin DPoint
| MaxIter Int
| MCLimit Double
| MinDist Double
| MinLen Int
| Mode ModeType
| Model Model
| Mosek Bool
| NodeSep Double
| NoJustify Bool
| Normalize Normalized
| NoTranslate Bool
| Nslimit Double
| Nslimit1 Double
| Ordering Order
| Orientation Double
| OutputOrder OutputMode
| Overlap Overlap
| OverlapScaling Double
| OverlapShrink Bool
| Pack Pack
| PackMode PackMode
| Pad DPoint
| Page Point
| PageDir PageDir
| PenColor Color
| PenWidth Double
| Peripheries Int
| Pin Bool
| Pos Pos
| QuadTree QuadType
| Quantum Double
| Rank RankType
| RankDir RankDir
| RankSep [Double]
| Ratio Ratios
| Rects [Rect]
| Regular Bool
| ReMinCross Bool
| RepulsiveForce Double
| Root Root
| Rotate Int
| Rotation Double
| SameHead Text
| SameTail Text
| SamplePoints Int
| Scale DPoint
| SearchSize Int
| Sep DPoint
| Shape Shape
| ShowBoxes Int
| Sides Int
| Size GraphSize
| Skew Double
| Smoothing SmoothType
| SortV Word16
| Splines EdgeType
| Start StartType
| Style [StyleItem]
| StyleSheet Text
| TailURL EscString
| Tail_LP Point
| TailClip Bool
| TailLabel Label
| TailPort PortPos
| TailTarget EscString
| TailTooltip EscString
| Target EscString
| Tooltip EscString
| TrueColor Bool
| Vertices [Point]
| ViewPort ViewPort
| VoroMargin Double
| Weight Number
| Width Double
| XDotVersion Version
| XLabel Label
| XLP Point
| UnknownAttribute AttributeName Text
deriving (Attribute -> Attribute -> Bool
(Attribute -> Attribute -> Bool)
-> (Attribute -> Attribute -> Bool) -> Eq Attribute
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Attribute -> Attribute -> Bool
$c/= :: Attribute -> Attribute -> Bool
== :: Attribute -> Attribute -> Bool
$c== :: Attribute -> Attribute -> Bool
Eq, Eq Attribute
Eq Attribute =>
(Attribute -> Attribute -> Ordering)
-> (Attribute -> Attribute -> Bool)
-> (Attribute -> Attribute -> Bool)
-> (Attribute -> Attribute -> Bool)
-> (Attribute -> Attribute -> Bool)
-> (Attribute -> Attribute -> Attribute)
-> (Attribute -> Attribute -> Attribute)
-> Ord Attribute
Attribute -> Attribute -> Bool
Attribute -> Attribute -> Ordering
Attribute -> Attribute -> Attribute
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 :: Attribute -> Attribute -> Attribute
$cmin :: Attribute -> Attribute -> Attribute
max :: Attribute -> Attribute -> Attribute
$cmax :: Attribute -> Attribute -> Attribute
>= :: Attribute -> Attribute -> Bool
$c>= :: Attribute -> Attribute -> Bool
> :: Attribute -> Attribute -> Bool
$c> :: Attribute -> Attribute -> Bool
<= :: Attribute -> Attribute -> Bool
$c<= :: Attribute -> Attribute -> Bool
< :: Attribute -> Attribute -> Bool
$c< :: Attribute -> Attribute -> Bool
compare :: Attribute -> Attribute -> Ordering
$ccompare :: Attribute -> Attribute -> Ordering
$cp1Ord :: Eq Attribute
Ord, Int -> Attribute -> ShowS
[Attribute] -> ShowS
Attribute -> String
(Int -> Attribute -> ShowS)
-> (Attribute -> String)
-> ([Attribute] -> ShowS)
-> Show Attribute
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Attribute] -> ShowS
$cshowList :: [Attribute] -> ShowS
show :: Attribute -> String
$cshow :: Attribute -> String
showsPrec :: Int -> Attribute -> ShowS
$cshowsPrec :: Int -> Attribute -> ShowS
Show, ReadPrec [Attribute]
ReadPrec Attribute
Int -> ReadS Attribute
ReadS [Attribute]
(Int -> ReadS Attribute)
-> ReadS [Attribute]
-> ReadPrec Attribute
-> ReadPrec [Attribute]
-> Read Attribute
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [Attribute]
$creadListPrec :: ReadPrec [Attribute]
readPrec :: ReadPrec Attribute
$creadPrec :: ReadPrec Attribute
readList :: ReadS [Attribute]
$creadList :: ReadS [Attribute]
readsPrec :: Int -> ReadS Attribute
$creadsPrec :: Int -> ReadS Attribute
Read)
type Attributes = [Attribute]
type AttributeName = Text
instance PrintDot Attribute where
unqtDot :: Attribute -> DotCode
unqtDot (Damping v :: Double
v) = Text -> Double -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "Damping" Double
v
unqtDot (K v :: Double
v) = Text -> Double -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "K" Double
v
unqtDot (URL v :: Text
v) = Text -> Text -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "URL" Text
v
unqtDot (Area v :: Double
v) = Text -> Double -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "area" Double
v
unqtDot (ArrowHead v :: ArrowType
v) = Text -> ArrowType -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "arrowhead" ArrowType
v
unqtDot (ArrowSize v :: Double
v) = Text -> Double -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "arrowsize" Double
v
unqtDot (ArrowTail v :: ArrowType
v) = Text -> ArrowType -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "arrowtail" ArrowType
v
unqtDot (Background v :: Text
v) = Text -> Text -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "_background" Text
v
unqtDot (BoundingBox v :: Rect
v) = Text -> Rect -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "bb" Rect
v
unqtDot (BgColor v :: ColorList
v) = Text -> ColorList -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "bgcolor" ColorList
v
unqtDot (Center v :: Bool
v) = Text -> Bool -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "center" Bool
v
unqtDot (ClusterRank v :: ClusterMode
v) = Text -> ClusterMode -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "clusterrank" ClusterMode
v
unqtDot (Color v :: ColorList
v) = Text -> ColorList -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "color" ColorList
v
unqtDot (ColorScheme v :: ColorScheme
v) = Text -> ColorScheme -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "colorscheme" ColorScheme
v
unqtDot (Comment v :: Text
v) = Text -> Text -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "comment" Text
v
unqtDot (Compound v :: Bool
v) = Text -> Bool -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "compound" Bool
v
unqtDot (Concentrate v :: Bool
v) = Text -> Bool -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "concentrate" Bool
v
unqtDot (Constraint v :: Bool
v) = Text -> Bool -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "constraint" Bool
v
unqtDot (Decorate v :: Bool
v) = Text -> Bool -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "decorate" Bool
v
unqtDot (DefaultDist v :: Double
v) = Text -> Double -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "defaultdist" Double
v
unqtDot (Dim v :: Int
v) = Text -> Int -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "dim" Int
v
unqtDot (Dimen v :: Int
v) = Text -> Int -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "dimen" Int
v
unqtDot (Dir v :: DirType
v) = Text -> DirType -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "dir" DirType
v
unqtDot (DirEdgeConstraints v :: DEConstraints
v) = Text -> DEConstraints -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "diredgeconstraints" DEConstraints
v
unqtDot (Distortion v :: Double
v) = Text -> Double -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "distortion" Double
v
unqtDot (DPI v :: Double
v) = Text -> Double -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "dpi" Double
v
unqtDot (EdgeURL v :: Text
v) = Text -> Text -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "edgeURL" Text
v
unqtDot (EdgeTarget v :: Text
v) = Text -> Text -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "edgetarget" Text
v
unqtDot (EdgeTooltip v :: Text
v) = Text -> Text -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "edgetooltip" Text
v
unqtDot (Epsilon v :: Double
v) = Text -> Double -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "epsilon" Double
v
unqtDot (ESep v :: DPoint
v) = Text -> DPoint -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "esep" DPoint
v
unqtDot (FillColor v :: ColorList
v) = Text -> ColorList -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "fillcolor" ColorList
v
unqtDot (FixedSize v :: NodeSize
v) = Text -> NodeSize -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "fixedsize" NodeSize
v
unqtDot (FontColor v :: Color
v) = Text -> Color -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "fontcolor" Color
v
unqtDot (FontName v :: Text
v) = Text -> Text -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "fontname" Text
v
unqtDot (FontNames v :: SVGFontNames
v) = Text -> SVGFontNames -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "fontnames" SVGFontNames
v
unqtDot (FontPath v :: Paths
v) = Text -> Paths -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "fontpath" Paths
v
unqtDot (FontSize v :: Double
v) = Text -> Double -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "fontsize" Double
v
unqtDot (ForceLabels v :: Bool
v) = Text -> Bool -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "forcelabels" Bool
v
unqtDot (GradientAngle v :: Int
v) = Text -> Int -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "gradientangle" Int
v
unqtDot (Group v :: Text
v) = Text -> Text -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "group" Text
v
unqtDot (HeadURL v :: Text
v) = Text -> Text -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "headURL" Text
v
unqtDot (Head_LP v :: Point
v) = Text -> Point -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "head_lp" Point
v
unqtDot (HeadClip v :: Bool
v) = Text -> Bool -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "headclip" Bool
v
unqtDot (HeadLabel v :: Label
v) = Text -> Label -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "headlabel" Label
v
unqtDot (HeadPort v :: PortPos
v) = Text -> PortPos -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "headport" PortPos
v
unqtDot (HeadTarget v :: Text
v) = Text -> Text -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "headtarget" Text
v
unqtDot (HeadTooltip v :: Text
v) = Text -> Text -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "headtooltip" Text
v
unqtDot (Height v :: Double
v) = Text -> Double -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "height" Double
v
unqtDot (ID v :: Text
v) = Text -> Text -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "id" Text
v
unqtDot (Image v :: Text
v) = Text -> Text -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "image" Text
v
unqtDot (ImagePath v :: Paths
v) = Text -> Paths -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "imagepath" Paths
v
unqtDot (ImageScale v :: ScaleType
v) = Text -> ScaleType -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "imagescale" ScaleType
v
unqtDot (InputScale v :: Double
v) = Text -> Double -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "inputscale" Double
v
unqtDot (Label v :: Label
v) = Text -> Label -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "label" Label
v
unqtDot (LabelURL v :: Text
v) = Text -> Text -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "labelURL" Text
v
unqtDot (LabelScheme v :: LabelScheme
v) = Text -> LabelScheme -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "label_scheme" LabelScheme
v
unqtDot (LabelAngle v :: Double
v) = Text -> Double -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "labelangle" Double
v
unqtDot (LabelDistance v :: Double
v) = Text -> Double -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "labeldistance" Double
v
unqtDot (LabelFloat v :: Bool
v) = Text -> Bool -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "labelfloat" Bool
v
unqtDot (LabelFontColor v :: Color
v) = Text -> Color -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "labelfontcolor" Color
v
unqtDot (LabelFontName v :: Text
v) = Text -> Text -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "labelfontname" Text
v
unqtDot (LabelFontSize v :: Double
v) = Text -> Double -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "labelfontsize" Double
v
unqtDot (LabelJust v :: Justification
v) = Text -> Justification -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "labeljust" Justification
v
unqtDot (LabelLoc v :: VerticalPlacement
v) = Text -> VerticalPlacement -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "labelloc" VerticalPlacement
v
unqtDot (LabelTarget v :: Text
v) = Text -> Text -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "labeltarget" Text
v
unqtDot (LabelTooltip v :: Text
v) = Text -> Text -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "labeltooltip" Text
v
unqtDot (Landscape v :: Bool
v) = Text -> Bool -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "landscape" Bool
v
unqtDot (Layer v :: LayerRange
v) = Text -> LayerRange -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "layer" LayerRange
v
unqtDot (LayerListSep v :: LayerListSep
v) = Text -> LayerListSep -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "layerlistsep" LayerListSep
v
unqtDot (Layers v :: LayerList
v) = Text -> LayerList -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "layers" LayerList
v
unqtDot (LayerSelect v :: LayerRange
v) = Text -> LayerRange -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "layerselect" LayerRange
v
unqtDot (LayerSep v :: LayerSep
v) = Text -> LayerSep -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "layersep" LayerSep
v
unqtDot (Layout v :: GraphvizCommand
v) = Text -> GraphvizCommand -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "layout" GraphvizCommand
v
unqtDot (Len v :: Double
v) = Text -> Double -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "len" Double
v
unqtDot (Levels v :: Int
v) = Text -> Int -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "levels" Int
v
unqtDot (LevelsGap v :: Double
v) = Text -> Double -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "levelsgap" Double
v
unqtDot (LHead v :: Text
v) = Text -> Text -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "lhead" Text
v
unqtDot (LHeight v :: Double
v) = Text -> Double -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "LHeight" Double
v
unqtDot (LPos v :: Point
v) = Text -> Point -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "lp" Point
v
unqtDot (LTail v :: Text
v) = Text -> Text -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "ltail" Text
v
unqtDot (LWidth v :: Double
v) = Text -> Double -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "lwidth" Double
v
unqtDot (Margin v :: DPoint
v) = Text -> DPoint -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "margin" DPoint
v
unqtDot (MaxIter v :: Int
v) = Text -> Int -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "maxiter" Int
v
unqtDot (MCLimit v :: Double
v) = Text -> Double -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "mclimit" Double
v
unqtDot (MinDist v :: Double
v) = Text -> Double -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "mindist" Double
v
unqtDot (MinLen v :: Int
v) = Text -> Int -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "minlen" Int
v
unqtDot (Mode v :: ModeType
v) = Text -> ModeType -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "mode" ModeType
v
unqtDot (Model v :: Model
v) = Text -> Model -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "model" Model
v
unqtDot (Mosek v :: Bool
v) = Text -> Bool -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "mosek" Bool
v
unqtDot (NodeSep v :: Double
v) = Text -> Double -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "nodesep" Double
v
unqtDot (NoJustify v :: Bool
v) = Text -> Bool -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "nojustify" Bool
v
unqtDot (Normalize v :: Normalized
v) = Text -> Normalized -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "normalize" Normalized
v
unqtDot (NoTranslate v :: Bool
v) = Text -> Bool -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "notranslate" Bool
v
unqtDot (Nslimit v :: Double
v) = Text -> Double -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "nslimit" Double
v
unqtDot (Nslimit1 v :: Double
v) = Text -> Double -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "nslimit1" Double
v
unqtDot (Ordering v :: Order
v) = Text -> Order -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "ordering" Order
v
unqtDot (Orientation v :: Double
v) = Text -> Double -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "orientation" Double
v
unqtDot (OutputOrder v :: OutputMode
v) = Text -> OutputMode -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "outputorder" OutputMode
v
unqtDot (Overlap v :: Overlap
v) = Text -> Overlap -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "overlap" Overlap
v
unqtDot (OverlapScaling v :: Double
v) = Text -> Double -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "overlap_scaling" Double
v
unqtDot (OverlapShrink v :: Bool
v) = Text -> Bool -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "overlap_shrink" Bool
v
unqtDot (Pack v :: Pack
v) = Text -> Pack -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "pack" Pack
v
unqtDot (PackMode v :: PackMode
v) = Text -> PackMode -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "packmode" PackMode
v
unqtDot (Pad v :: DPoint
v) = Text -> DPoint -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "pad" DPoint
v
unqtDot (Page v :: Point
v) = Text -> Point -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "page" Point
v
unqtDot (PageDir v :: PageDir
v) = Text -> PageDir -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "pagedir" PageDir
v
unqtDot (PenColor v :: Color
v) = Text -> Color -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "pencolor" Color
v
unqtDot (PenWidth v :: Double
v) = Text -> Double -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "penwidth" Double
v
unqtDot (Peripheries v :: Int
v) = Text -> Int -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "peripheries" Int
v
unqtDot (Pin v :: Bool
v) = Text -> Bool -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "pin" Bool
v
unqtDot (Pos v :: Pos
v) = Text -> Pos -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "pos" Pos
v
unqtDot (QuadTree v :: QuadType
v) = Text -> QuadType -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "quadtree" QuadType
v
unqtDot (Quantum v :: Double
v) = Text -> Double -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "quantum" Double
v
unqtDot (Rank v :: RankType
v) = Text -> RankType -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "rank" RankType
v
unqtDot (RankDir v :: RankDir
v) = Text -> RankDir -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "rankdir" RankDir
v
unqtDot (RankSep v :: [Double]
v) = Text -> [Double] -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "ranksep" [Double]
v
unqtDot (Ratio v :: Ratios
v) = Text -> Ratios -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "ratio" Ratios
v
unqtDot (Rects v :: [Rect]
v) = Text -> [Rect] -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "rects" [Rect]
v
unqtDot (Regular v :: Bool
v) = Text -> Bool -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "regular" Bool
v
unqtDot (ReMinCross v :: Bool
v) = Text -> Bool -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "remincross" Bool
v
unqtDot (RepulsiveForce v :: Double
v) = Text -> Double -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "repulsiveforce" Double
v
unqtDot (Root v :: Root
v) = Text -> Root -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "root" Root
v
unqtDot (Rotate v :: Int
v) = Text -> Int -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "rotate" Int
v
unqtDot (Rotation v :: Double
v) = Text -> Double -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "rotation" Double
v
unqtDot (SameHead v :: Text
v) = Text -> Text -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "samehead" Text
v
unqtDot (SameTail v :: Text
v) = Text -> Text -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "sametail" Text
v
unqtDot (SamplePoints v :: Int
v) = Text -> Int -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "samplepoints" Int
v
unqtDot (Scale v :: DPoint
v) = Text -> DPoint -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "scale" DPoint
v
unqtDot (SearchSize v :: Int
v) = Text -> Int -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "searchsize" Int
v
unqtDot (Sep v :: DPoint
v) = Text -> DPoint -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "sep" DPoint
v
unqtDot (Shape v :: Shape
v) = Text -> Shape -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "shape" Shape
v
unqtDot (ShowBoxes v :: Int
v) = Text -> Int -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "showboxes" Int
v
unqtDot (Sides v :: Int
v) = Text -> Int -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "sides" Int
v
unqtDot (Size v :: GraphSize
v) = Text -> GraphSize -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "size" GraphSize
v
unqtDot (Skew v :: Double
v) = Text -> Double -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "skew" Double
v
unqtDot (Smoothing v :: SmoothType
v) = Text -> SmoothType -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "smoothing" SmoothType
v
unqtDot (SortV v :: Word16
v) = Text -> Word16 -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "sortv" Word16
v
unqtDot (Splines v :: EdgeType
v) = Text -> EdgeType -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "splines" EdgeType
v
unqtDot (Start v :: StartType
v) = Text -> StartType -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "start" StartType
v
unqtDot (Style v :: [StyleItem]
v) = Text -> [StyleItem] -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "style" [StyleItem]
v
unqtDot (StyleSheet v :: Text
v) = Text -> Text -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "stylesheet" Text
v
unqtDot (TailURL v :: Text
v) = Text -> Text -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "tailURL" Text
v
unqtDot (Tail_LP v :: Point
v) = Text -> Point -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "tail_lp" Point
v
unqtDot (TailClip v :: Bool
v) = Text -> Bool -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "tailclip" Bool
v
unqtDot (TailLabel v :: Label
v) = Text -> Label -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "taillabel" Label
v
unqtDot (TailPort v :: PortPos
v) = Text -> PortPos -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "tailport" PortPos
v
unqtDot (TailTarget v :: Text
v) = Text -> Text -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "tailtarget" Text
v
unqtDot (TailTooltip v :: Text
v) = Text -> Text -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "tailtooltip" Text
v
unqtDot (Target v :: Text
v) = Text -> Text -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "target" Text
v
unqtDot (Tooltip v :: Text
v) = Text -> Text -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "tooltip" Text
v
unqtDot (TrueColor v :: Bool
v) = Text -> Bool -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "truecolor" Bool
v
unqtDot (Vertices v :: [Point]
v) = Text -> [Point] -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "vertices" [Point]
v
unqtDot (ViewPort v :: ViewPort
v) = Text -> ViewPort -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "viewport" ViewPort
v
unqtDot (VoroMargin v :: Double
v) = Text -> Double -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "voro_margin" Double
v
unqtDot (Weight v :: Number
v) = Text -> Number -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "weight" Number
v
unqtDot (Width v :: Double
v) = Text -> Double -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "width" Double
v
unqtDot (XDotVersion v :: Version
v) = Text -> Version -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "xdotversion" Version
v
unqtDot (XLabel v :: Label
v) = Text -> Label -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "xlabel" Label
v
unqtDot (XLP v :: Point
v) = Text -> Point -> DotCode
forall a. PrintDot a => Text -> a -> DotCode
printField "xlp" Point
v
unqtDot (UnknownAttribute a :: Text
a v :: Text
v) = Text -> DotCode
forall a. PrintDot a => a -> DotCode
toDot Text
a DotCode -> DotCode -> DotCode
forall a. Semigroup a => a -> a -> a
<> DotCode
forall (m :: * -> *). Applicative m => m Doc
equals DotCode -> DotCode -> DotCode
forall a. Semigroup a => a -> a -> a
<> Text -> DotCode
forall a. PrintDot a => a -> DotCode
toDot Text
v
listToDot :: [Attribute] -> DotCode
listToDot = [Attribute] -> DotCode
forall a. PrintDot a => [a] -> DotCode
unqtListToDot
instance ParseDot Attribute where
parseUnqt :: Parse Attribute
parseUnqt = [(String, Parse Attribute)] -> Parse Attribute
forall a. [(String, Parse a)] -> Parse a
stringParse ([[(String, Parse Attribute)]] -> [(String, Parse Attribute)]
forall (t :: * -> *) a. Foldable t => t [a] -> [a]
concat [ (Double -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField Double -> Attribute
Damping "Damping"
, (Double -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField Double -> Attribute
K "K"
, (Text -> Attribute) -> [String] -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> [String] -> [(String, Parse Attribute)]
parseFields Text -> Attribute
URL ["URL", "href"]
, (Double -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField Double -> Attribute
Area "area"
, (ArrowType -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField ArrowType -> Attribute
ArrowHead "arrowhead"
, (Double -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField Double -> Attribute
ArrowSize "arrowsize"
, (ArrowType -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField ArrowType -> Attribute
ArrowTail "arrowtail"
, (Text -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField Text -> Attribute
Background "_background"
, (Rect -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField Rect -> Attribute
BoundingBox "bb"
, (ColorList -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField ColorList -> Attribute
BgColor "bgcolor"
, (Bool -> Attribute) -> String -> [(String, Parse Attribute)]
parseFieldBool Bool -> Attribute
Center "center"
, (ClusterMode -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField ClusterMode -> Attribute
ClusterRank "clusterrank"
, (ColorList -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField ColorList -> Attribute
Color "color"
, (ColorScheme -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField ColorScheme -> Attribute
ColorScheme "colorscheme"
, (Text -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField Text -> Attribute
Comment "comment"
, (Bool -> Attribute) -> String -> [(String, Parse Attribute)]
parseFieldBool Bool -> Attribute
Compound "compound"
, (Bool -> Attribute) -> String -> [(String, Parse Attribute)]
parseFieldBool Bool -> Attribute
Concentrate "concentrate"
, (Bool -> Attribute) -> String -> [(String, Parse Attribute)]
parseFieldBool Bool -> Attribute
Constraint "constraint"
, (Bool -> Attribute) -> String -> [(String, Parse Attribute)]
parseFieldBool Bool -> Attribute
Decorate "decorate"
, (Double -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField Double -> Attribute
DefaultDist "defaultdist"
, (Int -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField Int -> Attribute
Dim "dim"
, (Int -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField Int -> Attribute
Dimen "dimen"
, (DirType -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField DirType -> Attribute
Dir "dir"
, (DEConstraints -> Attribute)
-> DEConstraints -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> a -> String -> [(String, Parse Attribute)]
parseFieldDef DEConstraints -> Attribute
DirEdgeConstraints DEConstraints
EdgeConstraints "diredgeconstraints"
, (Double -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField Double -> Attribute
Distortion "distortion"
, (Double -> Attribute) -> [String] -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> [String] -> [(String, Parse Attribute)]
parseFields Double -> Attribute
DPI ["dpi", "resolution"]
, (Text -> Attribute) -> [String] -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> [String] -> [(String, Parse Attribute)]
parseFields Text -> Attribute
EdgeURL ["edgeURL", "edgehref"]
, (Text -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField Text -> Attribute
EdgeTarget "edgetarget"
, (Text -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField Text -> Attribute
EdgeTooltip "edgetooltip"
, (Double -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField Double -> Attribute
Epsilon "epsilon"
, (DPoint -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField DPoint -> Attribute
ESep "esep"
, (ColorList -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField ColorList -> Attribute
FillColor "fillcolor"
, (NodeSize -> Attribute)
-> NodeSize -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> a -> String -> [(String, Parse Attribute)]
parseFieldDef NodeSize -> Attribute
FixedSize NodeSize
SetNodeSize "fixedsize"
, (Color -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField Color -> Attribute
FontColor "fontcolor"
, (Text -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField Text -> Attribute
FontName "fontname"
, (SVGFontNames -> Attribute)
-> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField SVGFontNames -> Attribute
FontNames "fontnames"
, (Paths -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField Paths -> Attribute
FontPath "fontpath"
, (Double -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField Double -> Attribute
FontSize "fontsize"
, (Bool -> Attribute) -> String -> [(String, Parse Attribute)]
parseFieldBool Bool -> Attribute
ForceLabels "forcelabels"
, (Int -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField Int -> Attribute
GradientAngle "gradientangle"
, (Text -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField Text -> Attribute
Group "group"
, (Text -> Attribute) -> [String] -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> [String] -> [(String, Parse Attribute)]
parseFields Text -> Attribute
HeadURL ["headURL", "headhref"]
, (Point -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField Point -> Attribute
Head_LP "head_lp"
, (Bool -> Attribute) -> String -> [(String, Parse Attribute)]
parseFieldBool Bool -> Attribute
HeadClip "headclip"
, (Label -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField Label -> Attribute
HeadLabel "headlabel"
, (PortPos -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField PortPos -> Attribute
HeadPort "headport"
, (Text -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField Text -> Attribute
HeadTarget "headtarget"
, (Text -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField Text -> Attribute
HeadTooltip "headtooltip"
, (Double -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField Double -> Attribute
Height "height"
, (Text -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField Text -> Attribute
ID "id"
, (Text -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField Text -> Attribute
Image "image"
, (Paths -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField Paths -> Attribute
ImagePath "imagepath"
, (ScaleType -> Attribute)
-> ScaleType -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> a -> String -> [(String, Parse Attribute)]
parseFieldDef ScaleType -> Attribute
ImageScale ScaleType
UniformScale "imagescale"
, (Double -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField Double -> Attribute
InputScale "inputscale"
, (Label -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField Label -> Attribute
Label "label"
, (Text -> Attribute) -> [String] -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> [String] -> [(String, Parse Attribute)]
parseFields Text -> Attribute
LabelURL ["labelURL", "labelhref"]
, (LabelScheme -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField LabelScheme -> Attribute
LabelScheme "label_scheme"
, (Double -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField Double -> Attribute
LabelAngle "labelangle"
, (Double -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField Double -> Attribute
LabelDistance "labeldistance"
, (Bool -> Attribute) -> String -> [(String, Parse Attribute)]
parseFieldBool Bool -> Attribute
LabelFloat "labelfloat"
, (Color -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField Color -> Attribute
LabelFontColor "labelfontcolor"
, (Text -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField Text -> Attribute
LabelFontName "labelfontname"
, (Double -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField Double -> Attribute
LabelFontSize "labelfontsize"
, (Justification -> Attribute)
-> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField Justification -> Attribute
LabelJust "labeljust"
, (VerticalPlacement -> Attribute)
-> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField VerticalPlacement -> Attribute
LabelLoc "labelloc"
, (Text -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField Text -> Attribute
LabelTarget "labeltarget"
, (Text -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField Text -> Attribute
LabelTooltip "labeltooltip"
, (Bool -> Attribute) -> String -> [(String, Parse Attribute)]
parseFieldBool Bool -> Attribute
Landscape "landscape"
, (LayerRange -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField LayerRange -> Attribute
Layer "layer"
, (LayerListSep -> Attribute)
-> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField LayerListSep -> Attribute
LayerListSep "layerlistsep"
, (LayerList -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField LayerList -> Attribute
Layers "layers"
, (LayerRange -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField LayerRange -> Attribute
LayerSelect "layerselect"
, (LayerSep -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField LayerSep -> Attribute
LayerSep "layersep"
, (GraphvizCommand -> Attribute)
-> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField GraphvizCommand -> Attribute
Layout "layout"
, (Double -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField Double -> Attribute
Len "len"
, (Int -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField Int -> Attribute
Levels "levels"
, (Double -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField Double -> Attribute
LevelsGap "levelsgap"
, (Text -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField Text -> Attribute
LHead "lhead"
, (Double -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField Double -> Attribute
LHeight "LHeight"
, (Point -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField Point -> Attribute
LPos "lp"
, (Text -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField Text -> Attribute
LTail "ltail"
, (Double -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField Double -> Attribute
LWidth "lwidth"
, (DPoint -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField DPoint -> Attribute
Margin "margin"
, (Int -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField Int -> Attribute
MaxIter "maxiter"
, (Double -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField Double -> Attribute
MCLimit "mclimit"
, (Double -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField Double -> Attribute
MinDist "mindist"
, (Int -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField Int -> Attribute
MinLen "minlen"
, (ModeType -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField ModeType -> Attribute
Mode "mode"
, (Model -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField Model -> Attribute
Model "model"
, (Bool -> Attribute) -> String -> [(String, Parse Attribute)]
parseFieldBool Bool -> Attribute
Mosek "mosek"
, (Double -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField Double -> Attribute
NodeSep "nodesep"
, (Bool -> Attribute) -> String -> [(String, Parse Attribute)]
parseFieldBool Bool -> Attribute
NoJustify "nojustify"
, (Normalized -> Attribute)
-> Normalized -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> a -> String -> [(String, Parse Attribute)]
parseFieldDef Normalized -> Attribute
Normalize Normalized
IsNormalized "normalize"
, (Bool -> Attribute) -> String -> [(String, Parse Attribute)]
parseFieldBool Bool -> Attribute
NoTranslate "notranslate"
, (Double -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField Double -> Attribute
Nslimit "nslimit"
, (Double -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField Double -> Attribute
Nslimit1 "nslimit1"
, (Order -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField Order -> Attribute
Ordering "ordering"
, (Double -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField Double -> Attribute
Orientation "orientation"
, (OutputMode -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField OutputMode -> Attribute
OutputOrder "outputorder"
, (Overlap -> Attribute)
-> Overlap -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> a -> String -> [(String, Parse Attribute)]
parseFieldDef Overlap -> Attribute
Overlap Overlap
KeepOverlaps "overlap"
, (Double -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField Double -> Attribute
OverlapScaling "overlap_scaling"
, (Bool -> Attribute) -> String -> [(String, Parse Attribute)]
parseFieldBool Bool -> Attribute
OverlapShrink "overlap_shrink"
, (Pack -> Attribute)
-> Pack -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> a -> String -> [(String, Parse Attribute)]
parseFieldDef Pack -> Attribute
Pack Pack
DoPack "pack"
, (PackMode -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField PackMode -> Attribute
PackMode "packmode"
, (DPoint -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField DPoint -> Attribute
Pad "pad"
, (Point -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField Point -> Attribute
Page "page"
, (PageDir -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField PageDir -> Attribute
PageDir "pagedir"
, (Color -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField Color -> Attribute
PenColor "pencolor"
, (Double -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField Double -> Attribute
PenWidth "penwidth"
, (Int -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField Int -> Attribute
Peripheries "peripheries"
, (Bool -> Attribute) -> String -> [(String, Parse Attribute)]
parseFieldBool Bool -> Attribute
Pin "pin"
, (Pos -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField Pos -> Attribute
Pos "pos"
, (QuadType -> Attribute)
-> QuadType -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> a -> String -> [(String, Parse Attribute)]
parseFieldDef QuadType -> Attribute
QuadTree QuadType
NormalQT "quadtree"
, (Double -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField Double -> Attribute
Quantum "quantum"
, (RankType -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField RankType -> Attribute
Rank "rank"
, (RankDir -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField RankDir -> Attribute
RankDir "rankdir"
, ([Double] -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField [Double] -> Attribute
RankSep "ranksep"
, (Ratios -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField Ratios -> Attribute
Ratio "ratio"
, ([Rect] -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField [Rect] -> Attribute
Rects "rects"
, (Bool -> Attribute) -> String -> [(String, Parse Attribute)]
parseFieldBool Bool -> Attribute
Regular "regular"
, (Bool -> Attribute) -> String -> [(String, Parse Attribute)]
parseFieldBool Bool -> Attribute
ReMinCross "remincross"
, (Double -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField Double -> Attribute
RepulsiveForce "repulsiveforce"
, (Root -> Attribute)
-> Root -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> a -> String -> [(String, Parse Attribute)]
parseFieldDef Root -> Attribute
Root Root
IsCentral "root"
, (Int -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField Int -> Attribute
Rotate "rotate"
, (Double -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField Double -> Attribute
Rotation "rotation"
, (Text -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField Text -> Attribute
SameHead "samehead"
, (Text -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField Text -> Attribute
SameTail "sametail"
, (Int -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField Int -> Attribute
SamplePoints "samplepoints"
, (DPoint -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField DPoint -> Attribute
Scale "scale"
, (Int -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField Int -> Attribute
SearchSize "searchsize"
, (DPoint -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField DPoint -> Attribute
Sep "sep"
, (Shape -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField Shape -> Attribute
Shape "shape"
, (Int -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField Int -> Attribute
ShowBoxes "showboxes"
, (Int -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField Int -> Attribute
Sides "sides"
, (GraphSize -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField GraphSize -> Attribute
Size "size"
, (Double -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField Double -> Attribute
Skew "skew"
, (SmoothType -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField SmoothType -> Attribute
Smoothing "smoothing"
, (Word16 -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField Word16 -> Attribute
SortV "sortv"
, (EdgeType -> Attribute)
-> EdgeType -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> a -> String -> [(String, Parse Attribute)]
parseFieldDef EdgeType -> Attribute
Splines EdgeType
SplineEdges "splines"
, (StartType -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField StartType -> Attribute
Start "start"
, ([StyleItem] -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField [StyleItem] -> Attribute
Style "style"
, (Text -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField Text -> Attribute
StyleSheet "stylesheet"
, (Text -> Attribute) -> [String] -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> [String] -> [(String, Parse Attribute)]
parseFields Text -> Attribute
TailURL ["tailURL", "tailhref"]
, (Point -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField Point -> Attribute
Tail_LP "tail_lp"
, (Bool -> Attribute) -> String -> [(String, Parse Attribute)]
parseFieldBool Bool -> Attribute
TailClip "tailclip"
, (Label -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField Label -> Attribute
TailLabel "taillabel"
, (PortPos -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField PortPos -> Attribute
TailPort "tailport"
, (Text -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField Text -> Attribute
TailTarget "tailtarget"
, (Text -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField Text -> Attribute
TailTooltip "tailtooltip"
, (Text -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField Text -> Attribute
Target "target"
, (Text -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField Text -> Attribute
Tooltip "tooltip"
, (Bool -> Attribute) -> String -> [(String, Parse Attribute)]
parseFieldBool Bool -> Attribute
TrueColor "truecolor"
, ([Point] -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField [Point] -> Attribute
Vertices "vertices"
, (ViewPort -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField ViewPort -> Attribute
ViewPort "viewport"
, (Double -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField Double -> Attribute
VoroMargin "voro_margin"
, (Number -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField Number -> Attribute
Weight "weight"
, (Double -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField Double -> Attribute
Width "width"
, (Version -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField Version -> Attribute
XDotVersion "xdotversion"
, (Label -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField Label -> Attribute
XLabel "xlabel"
, (Point -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField Point -> Attribute
XLP "xlp"
])
Parse Attribute -> Parse Attribute -> Parse Attribute
forall s a. Parser s a -> Parser s a -> Parser s a
`onFail`
do Text
attrName <- Parse Text
stringBlock
String -> (Text -> Attribute) -> Parse Attribute
forall a.
ParseDot a =>
String -> (a -> Attribute) -> Parse Attribute
liftEqParse ("UnknownAttribute (" String -> ShowS
forall a. [a] -> [a] -> [a]
++ Text -> String
T.unpack Text
attrName String -> ShowS
forall a. [a] -> [a] -> [a]
++ ")")
(Text -> Text -> Attribute
UnknownAttribute Text
attrName)
parse :: Parse Attribute
parse = Parse Attribute
forall a. ParseDot a => Parse a
parseUnqt
parseList :: Parse [Attribute]
parseList = Parse [Attribute]
forall a. ParseDot a => Parse [a]
parseUnqtList
usedByGraphs :: Attribute -> Bool
usedByGraphs :: Attribute -> Bool
usedByGraphs Damping{} = Bool
True
usedByGraphs K{} = Bool
True
usedByGraphs URL{} = Bool
True
usedByGraphs Background{} = Bool
True
usedByGraphs BoundingBox{} = Bool
True
usedByGraphs BgColor{} = Bool
True
usedByGraphs Center{} = Bool
True
usedByGraphs ClusterRank{} = Bool
True
usedByGraphs ColorScheme{} = Bool
True
usedByGraphs Comment{} = Bool
True
usedByGraphs Compound{} = Bool
True
usedByGraphs Concentrate{} = Bool
True
usedByGraphs DefaultDist{} = Bool
True
usedByGraphs Dim{} = Bool
True
usedByGraphs Dimen{} = Bool
True
usedByGraphs DirEdgeConstraints{} = Bool
True
usedByGraphs DPI{} = Bool
True
usedByGraphs Epsilon{} = Bool
True
usedByGraphs ESep{} = Bool
True
usedByGraphs FontColor{} = Bool
True
usedByGraphs FontName{} = Bool
True
usedByGraphs FontNames{} = Bool
True
usedByGraphs FontPath{} = Bool
True
usedByGraphs FontSize{} = Bool
True
usedByGraphs ForceLabels{} = Bool
True
usedByGraphs GradientAngle{} = Bool
True
usedByGraphs ID{} = Bool
True
usedByGraphs ImagePath{} = Bool
True
usedByGraphs Label{} = Bool
True
usedByGraphs LabelScheme{} = Bool
True
usedByGraphs LabelJust{} = Bool
True
usedByGraphs LabelLoc{} = Bool
True
usedByGraphs Landscape{} = Bool
True
usedByGraphs LayerListSep{} = Bool
True
usedByGraphs Layers{} = Bool
True
usedByGraphs LayerSelect{} = Bool
True
usedByGraphs LayerSep{} = Bool
True
usedByGraphs Layout{} = Bool
True
usedByGraphs Levels{} = Bool
True
usedByGraphs LevelsGap{} = Bool
True
usedByGraphs LHeight{} = Bool
True
usedByGraphs LPos{} = Bool
True
usedByGraphs LWidth{} = Bool
True
usedByGraphs Margin{} = Bool
True
usedByGraphs MaxIter{} = Bool
True
usedByGraphs MCLimit{} = Bool
True
usedByGraphs MinDist{} = Bool
True
usedByGraphs Mode{} = Bool
True
usedByGraphs Model{} = Bool
True
usedByGraphs Mosek{} = Bool
True
usedByGraphs NodeSep{} = Bool
True
usedByGraphs NoJustify{} = Bool
True
usedByGraphs Normalize{} = Bool
True
usedByGraphs NoTranslate{} = Bool
True
usedByGraphs Nslimit{} = Bool
True
usedByGraphs Nslimit1{} = Bool
True
usedByGraphs Ordering{} = Bool
True
usedByGraphs OutputOrder{} = Bool
True
usedByGraphs Overlap{} = Bool
True
usedByGraphs OverlapScaling{} = Bool
True
usedByGraphs OverlapShrink{} = Bool
True
usedByGraphs Pack{} = Bool
True
usedByGraphs PackMode{} = Bool
True
usedByGraphs Pad{} = Bool
True
usedByGraphs Page{} = Bool
True
usedByGraphs PageDir{} = Bool
True
usedByGraphs QuadTree{} = Bool
True
usedByGraphs Quantum{} = Bool
True
usedByGraphs RankDir{} = Bool
True
usedByGraphs RankSep{} = Bool
True
usedByGraphs Ratio{} = Bool
True
usedByGraphs ReMinCross{} = Bool
True
usedByGraphs RepulsiveForce{} = Bool
True
usedByGraphs Root{} = Bool
True
usedByGraphs Rotate{} = Bool
True
usedByGraphs Rotation{} = Bool
True
usedByGraphs Scale{} = Bool
True
usedByGraphs SearchSize{} = Bool
True
usedByGraphs Sep{} = Bool
True
usedByGraphs ShowBoxes{} = Bool
True
usedByGraphs Size{} = Bool
True
usedByGraphs Smoothing{} = Bool
True
usedByGraphs SortV{} = Bool
True
usedByGraphs Splines{} = Bool
True
usedByGraphs Start{} = Bool
True
usedByGraphs Style{} = Bool
True
usedByGraphs StyleSheet{} = Bool
True
usedByGraphs Target{} = Bool
True
usedByGraphs TrueColor{} = Bool
True
usedByGraphs ViewPort{} = Bool
True
usedByGraphs VoroMargin{} = Bool
True
usedByGraphs XDotVersion{} = Bool
True
usedByGraphs UnknownAttribute{} = Bool
True
usedByGraphs _ = Bool
False
usedByClusters :: Attribute -> Bool
usedByClusters :: Attribute -> Bool
usedByClusters K{} = Bool
True
usedByClusters URL{} = Bool
True
usedByClusters Area{} = Bool
True
usedByClusters BgColor{} = Bool
True
usedByClusters Color{} = Bool
True
usedByClusters ColorScheme{} = Bool
True
usedByClusters FillColor{} = Bool
True
usedByClusters FontColor{} = Bool
True
usedByClusters FontName{} = Bool
True
usedByClusters FontSize{} = Bool
True
usedByClusters GradientAngle{} = Bool
True
usedByClusters Label{} = Bool
True
usedByClusters LabelJust{} = Bool
True
usedByClusters LabelLoc{} = Bool
True
usedByClusters Layer{} = Bool
True
usedByClusters LHeight{} = Bool
True
usedByClusters LPos{} = Bool
True
usedByClusters LWidth{} = Bool
True
usedByClusters Margin{} = Bool
True
usedByClusters NoJustify{} = Bool
True
usedByClusters PenColor{} = Bool
True
usedByClusters PenWidth{} = Bool
True
usedByClusters Peripheries{} = Bool
True
usedByClusters Rank{} = Bool
True
usedByClusters SortV{} = Bool
True
usedByClusters Style{} = Bool
True
usedByClusters Target{} = Bool
True
usedByClusters Tooltip{} = Bool
True
usedByClusters UnknownAttribute{} = Bool
True
usedByClusters _ = Bool
False
usedBySubGraphs :: Attribute -> Bool
usedBySubGraphs :: Attribute -> Bool
usedBySubGraphs Rank{} = Bool
True
usedBySubGraphs UnknownAttribute{} = Bool
True
usedBySubGraphs _ = Bool
False
usedByNodes :: Attribute -> Bool
usedByNodes :: Attribute -> Bool
usedByNodes URL{} = Bool
True
usedByNodes Area{} = Bool
True
usedByNodes Color{} = Bool
True
usedByNodes ColorScheme{} = Bool
True
usedByNodes Comment{} = Bool
True
usedByNodes Distortion{} = Bool
True
usedByNodes FillColor{} = Bool
True
usedByNodes FixedSize{} = Bool
True
usedByNodes FontColor{} = Bool
True
usedByNodes FontName{} = Bool
True
usedByNodes FontSize{} = Bool
True
usedByNodes GradientAngle{} = Bool
True
usedByNodes Group{} = Bool
True
usedByNodes Height{} = Bool
True
usedByNodes ID{} = Bool
True
usedByNodes Image{} = Bool
True
usedByNodes ImageScale{} = Bool
True
usedByNodes InputScale{} = Bool
True
usedByNodes Label{} = Bool
True
usedByNodes LabelLoc{} = Bool
True
usedByNodes Layer{} = Bool
True
usedByNodes Margin{} = Bool
True
usedByNodes NoJustify{} = Bool
True
usedByNodes Ordering{} = Bool
True
usedByNodes Orientation{} = Bool
True
usedByNodes PenWidth{} = Bool
True
usedByNodes Peripheries{} = Bool
True
usedByNodes Pin{} = Bool
True
usedByNodes Pos{} = Bool
True
usedByNodes Rects{} = Bool
True
usedByNodes Regular{} = Bool
True
usedByNodes Root{} = Bool
True
usedByNodes SamplePoints{} = Bool
True
usedByNodes Shape{} = Bool
True
usedByNodes ShowBoxes{} = Bool
True
usedByNodes Sides{} = Bool
True
usedByNodes Skew{} = Bool
True
usedByNodes SortV{} = Bool
True
usedByNodes Style{} = Bool
True
usedByNodes Target{} = Bool
True
usedByNodes Tooltip{} = Bool
True
usedByNodes Vertices{} = Bool
True
usedByNodes Width{} = Bool
True
usedByNodes XLabel{} = Bool
True
usedByNodes XLP{} = Bool
True
usedByNodes UnknownAttribute{} = Bool
True
usedByNodes _ = Bool
False
usedByEdges :: Attribute -> Bool
usedByEdges :: Attribute -> Bool
usedByEdges URL{} = Bool
True
usedByEdges ArrowHead{} = Bool
True
usedByEdges ArrowSize{} = Bool
True
usedByEdges ArrowTail{} = Bool
True
usedByEdges Color{} = Bool
True
usedByEdges ColorScheme{} = Bool
True
usedByEdges Comment{} = Bool
True
usedByEdges Constraint{} = Bool
True
usedByEdges Decorate{} = Bool
True
usedByEdges Dir{} = Bool
True
usedByEdges EdgeURL{} = Bool
True
usedByEdges EdgeTarget{} = Bool
True
usedByEdges EdgeTooltip{} = Bool
True
usedByEdges FillColor{} = Bool
True
usedByEdges FontColor{} = Bool
True
usedByEdges FontName{} = Bool
True
usedByEdges FontSize{} = Bool
True
usedByEdges HeadURL{} = Bool
True
usedByEdges Head_LP{} = Bool
True
usedByEdges HeadClip{} = Bool
True
usedByEdges HeadLabel{} = Bool
True
usedByEdges HeadPort{} = Bool
True
usedByEdges HeadTarget{} = Bool
True
usedByEdges HeadTooltip{} = Bool
True
usedByEdges ID{} = Bool
True
usedByEdges Label{} = Bool
True
usedByEdges LabelURL{} = Bool
True
usedByEdges LabelAngle{} = Bool
True
usedByEdges LabelDistance{} = Bool
True
usedByEdges LabelFloat{} = Bool
True
usedByEdges LabelFontColor{} = Bool
True
usedByEdges LabelFontName{} = Bool
True
usedByEdges LabelFontSize{} = Bool
True
usedByEdges LabelTarget{} = Bool
True
usedByEdges LabelTooltip{} = Bool
True
usedByEdges Layer{} = Bool
True
usedByEdges Len{} = Bool
True
usedByEdges LHead{} = Bool
True
usedByEdges LPos{} = Bool
True
usedByEdges LTail{} = Bool
True
usedByEdges MinLen{} = Bool
True
usedByEdges NoJustify{} = Bool
True
usedByEdges PenWidth{} = Bool
True
usedByEdges Pos{} = Bool
True
usedByEdges SameHead{} = Bool
True
usedByEdges SameTail{} = Bool
True
usedByEdges ShowBoxes{} = Bool
True
usedByEdges Style{} = Bool
True
usedByEdges TailURL{} = Bool
True
usedByEdges Tail_LP{} = Bool
True
usedByEdges TailClip{} = Bool
True
usedByEdges TailLabel{} = Bool
True
usedByEdges TailPort{} = Bool
True
usedByEdges TailTarget{} = Bool
True
usedByEdges TailTooltip{} = Bool
True
usedByEdges Target{} = Bool
True
usedByEdges Tooltip{} = Bool
True
usedByEdges Weight{} = Bool
True
usedByEdges XLabel{} = Bool
True
usedByEdges XLP{} = Bool
True
usedByEdges UnknownAttribute{} = Bool
True
usedByEdges _ = Bool
False
sameAttribute :: Attribute -> Attribute -> Bool
sameAttribute :: Attribute -> Attribute -> Bool
sameAttribute Damping{} Damping{} = Bool
True
sameAttribute K{} K{} = Bool
True
sameAttribute URL{} URL{} = Bool
True
sameAttribute Area{} Area{} = Bool
True
sameAttribute ArrowHead{} ArrowHead{} = Bool
True
sameAttribute ArrowSize{} ArrowSize{} = Bool
True
sameAttribute ArrowTail{} ArrowTail{} = Bool
True
sameAttribute Background{} Background{} = Bool
True
sameAttribute BoundingBox{} BoundingBox{} = Bool
True
sameAttribute BgColor{} BgColor{} = Bool
True
sameAttribute Center{} Center{} = Bool
True
sameAttribute ClusterRank{} ClusterRank{} = Bool
True
sameAttribute Color{} Color{} = Bool
True
sameAttribute ColorScheme{} ColorScheme{} = Bool
True
sameAttribute Comment{} Comment{} = Bool
True
sameAttribute Compound{} Compound{} = Bool
True
sameAttribute Concentrate{} Concentrate{} = Bool
True
sameAttribute Constraint{} Constraint{} = Bool
True
sameAttribute Decorate{} Decorate{} = Bool
True
sameAttribute DefaultDist{} DefaultDist{} = Bool
True
sameAttribute Dim{} Dim{} = Bool
True
sameAttribute Dimen{} Dimen{} = Bool
True
sameAttribute Dir{} Dir{} = Bool
True
sameAttribute DirEdgeConstraints{} DirEdgeConstraints{} = Bool
True
sameAttribute Distortion{} Distortion{} = Bool
True
sameAttribute DPI{} DPI{} = Bool
True
sameAttribute EdgeURL{} EdgeURL{} = Bool
True
sameAttribute EdgeTarget{} EdgeTarget{} = Bool
True
sameAttribute EdgeTooltip{} EdgeTooltip{} = Bool
True
sameAttribute Epsilon{} Epsilon{} = Bool
True
sameAttribute ESep{} ESep{} = Bool
True
sameAttribute FillColor{} FillColor{} = Bool
True
sameAttribute FixedSize{} FixedSize{} = Bool
True
sameAttribute FontColor{} FontColor{} = Bool
True
sameAttribute FontName{} FontName{} = Bool
True
sameAttribute FontNames{} FontNames{} = Bool
True
sameAttribute FontPath{} FontPath{} = Bool
True
sameAttribute FontSize{} FontSize{} = Bool
True
sameAttribute ForceLabels{} ForceLabels{} = Bool
True
sameAttribute GradientAngle{} GradientAngle{} = Bool
True
sameAttribute Group{} Group{} = Bool
True
sameAttribute HeadURL{} HeadURL{} = Bool
True
sameAttribute Head_LP{} Head_LP{} = Bool
True
sameAttribute HeadClip{} HeadClip{} = Bool
True
sameAttribute HeadLabel{} HeadLabel{} = Bool
True
sameAttribute HeadPort{} HeadPort{} = Bool
True
sameAttribute HeadTarget{} HeadTarget{} = Bool
True
sameAttribute HeadTooltip{} HeadTooltip{} = Bool
True
sameAttribute Height{} Height{} = Bool
True
sameAttribute ID{} ID{} = Bool
True
sameAttribute Image{} Image{} = Bool
True
sameAttribute ImagePath{} ImagePath{} = Bool
True
sameAttribute ImageScale{} ImageScale{} = Bool
True
sameAttribute InputScale{} InputScale{} = Bool
True
sameAttribute Label{} Label{} = Bool
True
sameAttribute LabelURL{} LabelURL{} = Bool
True
sameAttribute LabelScheme{} LabelScheme{} = Bool
True
sameAttribute LabelAngle{} LabelAngle{} = Bool
True
sameAttribute LabelDistance{} LabelDistance{} = Bool
True
sameAttribute LabelFloat{} LabelFloat{} = Bool
True
sameAttribute LabelFontColor{} LabelFontColor{} = Bool
True
sameAttribute LabelFontName{} LabelFontName{} = Bool
True
sameAttribute LabelFontSize{} LabelFontSize{} = Bool
True
sameAttribute LabelJust{} LabelJust{} = Bool
True
sameAttribute LabelLoc{} LabelLoc{} = Bool
True
sameAttribute LabelTarget{} LabelTarget{} = Bool
True
sameAttribute LabelTooltip{} LabelTooltip{} = Bool
True
sameAttribute Landscape{} Landscape{} = Bool
True
sameAttribute Layer{} Layer{} = Bool
True
sameAttribute LayerListSep{} LayerListSep{} = Bool
True
sameAttribute Layers{} Layers{} = Bool
True
sameAttribute LayerSelect{} LayerSelect{} = Bool
True
sameAttribute LayerSep{} LayerSep{} = Bool
True
sameAttribute Layout{} Layout{} = Bool
True
sameAttribute Len{} Len{} = Bool
True
sameAttribute Levels{} Levels{} = Bool
True
sameAttribute LevelsGap{} LevelsGap{} = Bool
True
sameAttribute LHead{} LHead{} = Bool
True
sameAttribute LHeight{} LHeight{} = Bool
True
sameAttribute LPos{} LPos{} = Bool
True
sameAttribute LTail{} LTail{} = Bool
True
sameAttribute LWidth{} LWidth{} = Bool
True
sameAttribute Margin{} Margin{} = Bool
True
sameAttribute MaxIter{} MaxIter{} = Bool
True
sameAttribute MCLimit{} MCLimit{} = Bool
True
sameAttribute MinDist{} MinDist{} = Bool
True
sameAttribute MinLen{} MinLen{} = Bool
True
sameAttribute Mode{} Mode{} = Bool
True
sameAttribute Model{} Model{} = Bool
True
sameAttribute Mosek{} Mosek{} = Bool
True
sameAttribute NodeSep{} NodeSep{} = Bool
True
sameAttribute NoJustify{} NoJustify{} = Bool
True
sameAttribute Normalize{} Normalize{} = Bool
True
sameAttribute NoTranslate{} NoTranslate{} = Bool
True
sameAttribute Nslimit{} Nslimit{} = Bool
True
sameAttribute Nslimit1{} Nslimit1{} = Bool
True
sameAttribute Ordering{} Ordering{} = Bool
True
sameAttribute Orientation{} Orientation{} = Bool
True
sameAttribute OutputOrder{} OutputOrder{} = Bool
True
sameAttribute Overlap{} Overlap{} = Bool
True
sameAttribute OverlapScaling{} OverlapScaling{} = Bool
True
sameAttribute OverlapShrink{} OverlapShrink{} = Bool
True
sameAttribute Pack{} Pack{} = Bool
True
sameAttribute PackMode{} PackMode{} = Bool
True
sameAttribute Pad{} Pad{} = Bool
True
sameAttribute Page{} Page{} = Bool
True
sameAttribute PageDir{} PageDir{} = Bool
True
sameAttribute PenColor{} PenColor{} = Bool
True
sameAttribute PenWidth{} PenWidth{} = Bool
True
sameAttribute Peripheries{} Peripheries{} = Bool
True
sameAttribute Pin{} Pin{} = Bool
True
sameAttribute Pos{} Pos{} = Bool
True
sameAttribute QuadTree{} QuadTree{} = Bool
True
sameAttribute Quantum{} Quantum{} = Bool
True
sameAttribute Rank{} Rank{} = Bool
True
sameAttribute RankDir{} RankDir{} = Bool
True
sameAttribute RankSep{} RankSep{} = Bool
True
sameAttribute Ratio{} Ratio{} = Bool
True
sameAttribute Rects{} Rects{} = Bool
True
sameAttribute Regular{} Regular{} = Bool
True
sameAttribute ReMinCross{} ReMinCross{} = Bool
True
sameAttribute RepulsiveForce{} RepulsiveForce{} = Bool
True
sameAttribute Root{} Root{} = Bool
True
sameAttribute Rotate{} Rotate{} = Bool
True
sameAttribute Rotation{} Rotation{} = Bool
True
sameAttribute SameHead{} SameHead{} = Bool
True
sameAttribute SameTail{} SameTail{} = Bool
True
sameAttribute SamplePoints{} SamplePoints{} = Bool
True
sameAttribute Scale{} Scale{} = Bool
True
sameAttribute SearchSize{} SearchSize{} = Bool
True
sameAttribute Sep{} Sep{} = Bool
True
sameAttribute Shape{} Shape{} = Bool
True
sameAttribute ShowBoxes{} ShowBoxes{} = Bool
True
sameAttribute Sides{} Sides{} = Bool
True
sameAttribute Size{} Size{} = Bool
True
sameAttribute Skew{} Skew{} = Bool
True
sameAttribute Smoothing{} Smoothing{} = Bool
True
sameAttribute SortV{} SortV{} = Bool
True
sameAttribute Splines{} Splines{} = Bool
True
sameAttribute Start{} Start{} = Bool
True
sameAttribute Style{} Style{} = Bool
True
sameAttribute StyleSheet{} StyleSheet{} = Bool
True
sameAttribute TailURL{} TailURL{} = Bool
True
sameAttribute Tail_LP{} Tail_LP{} = Bool
True
sameAttribute TailClip{} TailClip{} = Bool
True
sameAttribute TailLabel{} TailLabel{} = Bool
True
sameAttribute TailPort{} TailPort{} = Bool
True
sameAttribute TailTarget{} TailTarget{} = Bool
True
sameAttribute TailTooltip{} TailTooltip{} = Bool
True
sameAttribute Target{} Target{} = Bool
True
sameAttribute Tooltip{} Tooltip{} = Bool
True
sameAttribute TrueColor{} TrueColor{} = Bool
True
sameAttribute Vertices{} Vertices{} = Bool
True
sameAttribute ViewPort{} ViewPort{} = Bool
True
sameAttribute VoroMargin{} VoroMargin{} = Bool
True
sameAttribute Weight{} Weight{} = Bool
True
sameAttribute Width{} Width{} = Bool
True
sameAttribute XDotVersion{} XDotVersion{} = Bool
True
sameAttribute XLabel{} XLabel{} = Bool
True
sameAttribute XLP{} XLP{} = Bool
True
sameAttribute (UnknownAttribute a1 :: Text
a1 _) (UnknownAttribute a2 :: Text
a2 _) = Text
a1 Text -> Text -> Bool
forall a. Eq a => a -> a -> Bool
== Text
a2
sameAttribute _ _ = Bool
False
defaultAttributeValue :: Attribute -> Maybe Attribute
defaultAttributeValue :: Attribute -> Maybe Attribute
defaultAttributeValue Damping{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Double -> Attribute
Damping 0.99
defaultAttributeValue K{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Double -> Attribute
K 0.3
defaultAttributeValue URL{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Text -> Attribute
URL ""
defaultAttributeValue Area{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Double -> Attribute
Area 1.0
defaultAttributeValue ArrowHead{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ ArrowType -> Attribute
ArrowHead ArrowType
normal
defaultAttributeValue ArrowSize{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Double -> Attribute
ArrowSize 1.0
defaultAttributeValue ArrowTail{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ ArrowType -> Attribute
ArrowTail ArrowType
normal
defaultAttributeValue Background{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Text -> Attribute
Background ""
defaultAttributeValue BgColor{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ ColorList -> Attribute
BgColor []
defaultAttributeValue Center{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Bool -> Attribute
Center Bool
False
defaultAttributeValue ClusterRank{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ ClusterMode -> Attribute
ClusterRank ClusterMode
Local
defaultAttributeValue Color{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ ColorList -> Attribute
Color [X11Color -> WeightedColor
forall nc. NamedColor nc => nc -> WeightedColor
toWColor X11Color
Black]
defaultAttributeValue ColorScheme{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ ColorScheme -> Attribute
ColorScheme ColorScheme
X11
defaultAttributeValue Comment{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Text -> Attribute
Comment ""
defaultAttributeValue Compound{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Bool -> Attribute
Compound Bool
False
defaultAttributeValue Concentrate{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Bool -> Attribute
Concentrate Bool
False
defaultAttributeValue Constraint{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Bool -> Attribute
Constraint Bool
True
defaultAttributeValue Decorate{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Bool -> Attribute
Decorate Bool
False
defaultAttributeValue Dim{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Int -> Attribute
Dim 2
defaultAttributeValue Dimen{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Int -> Attribute
Dimen 2
defaultAttributeValue DirEdgeConstraints{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ DEConstraints -> Attribute
DirEdgeConstraints DEConstraints
NoConstraints
defaultAttributeValue Distortion{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Double -> Attribute
Distortion 0.0
defaultAttributeValue DPI{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Double -> Attribute
DPI 96.0
defaultAttributeValue EdgeURL{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Text -> Attribute
EdgeURL ""
defaultAttributeValue EdgeTooltip{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Text -> Attribute
EdgeTooltip ""
defaultAttributeValue ESep{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ DPoint -> Attribute
ESep (Double -> DPoint
DVal 3)
defaultAttributeValue FillColor{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ ColorList -> Attribute
FillColor [X11Color -> WeightedColor
forall nc. NamedColor nc => nc -> WeightedColor
toWColor X11Color
Black]
defaultAttributeValue FixedSize{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ NodeSize -> Attribute
FixedSize NodeSize
GrowAsNeeded
defaultAttributeValue FontColor{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Color -> Attribute
FontColor (X11Color -> Color
X11Color X11Color
Black)
defaultAttributeValue FontName{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Text -> Attribute
FontName "Times-Roman"
defaultAttributeValue FontNames{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ SVGFontNames -> Attribute
FontNames SVGFontNames
SvgNames
defaultAttributeValue FontSize{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Double -> Attribute
FontSize 14.0
defaultAttributeValue ForceLabels{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Bool -> Attribute
ForceLabels Bool
True
defaultAttributeValue GradientAngle{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Int -> Attribute
GradientAngle 0
defaultAttributeValue Group{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Text -> Attribute
Group ""
defaultAttributeValue HeadURL{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Text -> Attribute
HeadURL ""
defaultAttributeValue HeadClip{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Bool -> Attribute
HeadClip Bool
True
defaultAttributeValue HeadLabel{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Label -> Attribute
HeadLabel (Text -> Label
StrLabel "")
defaultAttributeValue HeadPort{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ PortPos -> Attribute
HeadPort (CompassPoint -> PortPos
CompassPoint CompassPoint
CenterPoint)
defaultAttributeValue HeadTarget{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Text -> Attribute
HeadTarget ""
defaultAttributeValue HeadTooltip{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Text -> Attribute
HeadTooltip ""
defaultAttributeValue Height{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Double -> Attribute
Height 0.5
defaultAttributeValue ID{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Text -> Attribute
ID ""
defaultAttributeValue Image{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Text -> Attribute
Image ""
defaultAttributeValue ImagePath{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Paths -> Attribute
ImagePath ([String] -> Paths
Paths [])
defaultAttributeValue ImageScale{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ ScaleType -> Attribute
ImageScale ScaleType
NoScale
defaultAttributeValue Label{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Label -> Attribute
Label (Text -> Label
StrLabel "")
defaultAttributeValue LabelURL{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Text -> Attribute
LabelURL ""
defaultAttributeValue LabelScheme{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ LabelScheme -> Attribute
LabelScheme LabelScheme
NotEdgeLabel
defaultAttributeValue LabelAngle{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Double -> Attribute
LabelAngle (-25.0)
defaultAttributeValue LabelDistance{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Double -> Attribute
LabelDistance 1.0
defaultAttributeValue LabelFloat{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Bool -> Attribute
LabelFloat Bool
False
defaultAttributeValue LabelFontColor{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Color -> Attribute
LabelFontColor (X11Color -> Color
X11Color X11Color
Black)
defaultAttributeValue LabelFontName{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Text -> Attribute
LabelFontName "Times-Roman"
defaultAttributeValue LabelFontSize{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Double -> Attribute
LabelFontSize 14.0
defaultAttributeValue LabelJust{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Justification -> Attribute
LabelJust Justification
JCenter
defaultAttributeValue LabelLoc{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ VerticalPlacement -> Attribute
LabelLoc VerticalPlacement
VTop
defaultAttributeValue LabelTarget{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Text -> Attribute
LabelTarget ""
defaultAttributeValue LabelTooltip{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Text -> Attribute
LabelTooltip ""
defaultAttributeValue Landscape{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Bool -> Attribute
Landscape Bool
False
defaultAttributeValue Layer{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ LayerRange -> Attribute
Layer []
defaultAttributeValue LayerListSep{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ LayerListSep -> Attribute
LayerListSep (Text -> LayerListSep
LLSep ",")
defaultAttributeValue Layers{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ LayerList -> Attribute
Layers ([LayerID] -> LayerList
LL [])
defaultAttributeValue LayerSelect{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ LayerRange -> Attribute
LayerSelect []
defaultAttributeValue LayerSep{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ LayerSep -> Attribute
LayerSep (Text -> LayerSep
LSep " :\t")
defaultAttributeValue Levels{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Int -> Attribute
Levels Int
forall a. Bounded a => a
maxBound
defaultAttributeValue LevelsGap{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Double -> Attribute
LevelsGap 0.0
defaultAttributeValue LHead{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Text -> Attribute
LHead ""
defaultAttributeValue LTail{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Text -> Attribute
LTail ""
defaultAttributeValue MCLimit{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Double -> Attribute
MCLimit 1.0
defaultAttributeValue MinDist{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Double -> Attribute
MinDist 1.0
defaultAttributeValue MinLen{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Int -> Attribute
MinLen 1
defaultAttributeValue Mode{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ ModeType -> Attribute
Mode ModeType
Major
defaultAttributeValue Model{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Model -> Attribute
Model Model
ShortPath
defaultAttributeValue Mosek{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Bool -> Attribute
Mosek Bool
False
defaultAttributeValue NodeSep{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Double -> Attribute
NodeSep 0.25
defaultAttributeValue NoJustify{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Bool -> Attribute
NoJustify Bool
False
defaultAttributeValue Normalize{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Normalized -> Attribute
Normalize Normalized
NotNormalized
defaultAttributeValue NoTranslate{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Bool -> Attribute
NoTranslate Bool
False
defaultAttributeValue Orientation{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Double -> Attribute
Orientation 0.0
defaultAttributeValue OutputOrder{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ OutputMode -> Attribute
OutputOrder OutputMode
BreadthFirst
defaultAttributeValue Overlap{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Overlap -> Attribute
Overlap Overlap
KeepOverlaps
defaultAttributeValue OverlapScaling{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Double -> Attribute
OverlapScaling (-4)
defaultAttributeValue OverlapShrink{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Bool -> Attribute
OverlapShrink Bool
True
defaultAttributeValue Pack{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Pack -> Attribute
Pack Pack
DontPack
defaultAttributeValue PackMode{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ PackMode -> Attribute
PackMode PackMode
PackNode
defaultAttributeValue Pad{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ DPoint -> Attribute
Pad (Double -> DPoint
DVal 0.0555)
defaultAttributeValue PageDir{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ PageDir -> Attribute
PageDir PageDir
Bl
defaultAttributeValue PenColor{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Color -> Attribute
PenColor (X11Color -> Color
X11Color X11Color
Black)
defaultAttributeValue PenWidth{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Double -> Attribute
PenWidth 1.0
defaultAttributeValue Peripheries{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Int -> Attribute
Peripheries 1
defaultAttributeValue Pin{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Bool -> Attribute
Pin Bool
False
defaultAttributeValue QuadTree{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ QuadType -> Attribute
QuadTree QuadType
NormalQT
defaultAttributeValue Quantum{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Double -> Attribute
Quantum 0
defaultAttributeValue RankDir{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ RankDir -> Attribute
RankDir RankDir
FromTop
defaultAttributeValue Regular{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Bool -> Attribute
Regular Bool
False
defaultAttributeValue ReMinCross{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Bool -> Attribute
ReMinCross Bool
False
defaultAttributeValue RepulsiveForce{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Double -> Attribute
RepulsiveForce 1.0
defaultAttributeValue Root{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Root -> Attribute
Root (Text -> Root
NodeName "")
defaultAttributeValue Rotate{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Int -> Attribute
Rotate 0
defaultAttributeValue Rotation{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Double -> Attribute
Rotation 0
defaultAttributeValue SameHead{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Text -> Attribute
SameHead ""
defaultAttributeValue SameTail{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Text -> Attribute
SameTail ""
defaultAttributeValue SearchSize{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Int -> Attribute
SearchSize 30
defaultAttributeValue Sep{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ DPoint -> Attribute
Sep (Double -> DPoint
DVal 4)
defaultAttributeValue Shape{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Shape -> Attribute
Shape Shape
Ellipse
defaultAttributeValue ShowBoxes{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Int -> Attribute
ShowBoxes 0
defaultAttributeValue Sides{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Int -> Attribute
Sides 4
defaultAttributeValue Skew{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Double -> Attribute
Skew 0.0
defaultAttributeValue Smoothing{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ SmoothType -> Attribute
Smoothing SmoothType
NoSmooth
defaultAttributeValue SortV{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Word16 -> Attribute
SortV 0
defaultAttributeValue StyleSheet{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Text -> Attribute
StyleSheet ""
defaultAttributeValue TailURL{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Text -> Attribute
TailURL ""
defaultAttributeValue TailClip{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Bool -> Attribute
TailClip Bool
True
defaultAttributeValue TailLabel{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Label -> Attribute
TailLabel (Text -> Label
StrLabel "")
defaultAttributeValue TailPort{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ PortPos -> Attribute
TailPort (CompassPoint -> PortPos
CompassPoint CompassPoint
CenterPoint)
defaultAttributeValue TailTarget{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Text -> Attribute
TailTarget ""
defaultAttributeValue TailTooltip{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Text -> Attribute
TailTooltip ""
defaultAttributeValue Target{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Text -> Attribute
Target ""
defaultAttributeValue Tooltip{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Text -> Attribute
Tooltip ""
defaultAttributeValue VoroMargin{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Double -> Attribute
VoroMargin 0.05
defaultAttributeValue Weight{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Number -> Attribute
Weight (Int -> Number
Int 1)
defaultAttributeValue Width{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Double -> Attribute
Width 0.75
defaultAttributeValue XLabel{} = Attribute -> Maybe Attribute
forall a. a -> Maybe a
Just (Attribute -> Maybe Attribute) -> Attribute -> Maybe Attribute
forall a b. (a -> b) -> a -> b
$ Label -> Attribute
XLabel (Text -> Label
StrLabel "")
defaultAttributeValue _ = Maybe Attribute
forall a. Maybe a
Nothing
validUnknown :: AttributeName -> Bool
validUnknown :: Text -> Bool
validUnknown txt :: Text
txt = Text -> Text
T.toLower Text
txt Text -> Set Text -> Bool
forall a. Ord a => a -> Set a -> Bool
`S.notMember` Set Text
names
Bool -> Bool -> Bool
&& Text -> Bool
isIDString Text
txt
where
names :: Set Text
names = ([Text] -> Set Text
forall a. Ord a => [a] -> Set a
S.fromList ([Text] -> Set Text) -> ([Text] -> [Text]) -> [Text] -> Set Text
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Text -> Text) -> [Text] -> [Text]
forall a b. (a -> b) -> [a] -> [b]
map Text -> Text
T.toLower
([Text] -> Set Text) -> [Text] -> Set Text
forall a b. (a -> b) -> a -> b
$ [ "Damping"
, "K"
, "URL"
, "href"
, "area"
, "arrowhead"
, "arrowsize"
, "arrowtail"
, "_background"
, "bb"
, "bgcolor"
, "center"
, "clusterrank"
, "color"
, "colorscheme"
, "comment"
, "compound"
, "concentrate"
, "constraint"
, "decorate"
, "defaultdist"
, "dim"
, "dimen"
, "dir"
, "diredgeconstraints"
, "distortion"
, "dpi"
, "resolution"
, "edgeURL"
, "edgehref"
, "edgetarget"
, "edgetooltip"
, "epsilon"
, "esep"
, "fillcolor"
, "fixedsize"
, "fontcolor"
, "fontname"
, "fontnames"
, "fontpath"
, "fontsize"
, "forcelabels"
, "gradientangle"
, "group"
, "headURL"
, "headhref"
, "head_lp"
, "headclip"
, "headlabel"
, "headport"
, "headtarget"
, "headtooltip"
, "height"
, "id"
, "image"
, "imagepath"
, "imagescale"
, "inputscale"
, "label"
, "labelURL"
, "labelhref"
, "label_scheme"
, "labelangle"
, "labeldistance"
, "labelfloat"
, "labelfontcolor"
, "labelfontname"
, "labelfontsize"
, "labeljust"
, "labelloc"
, "labeltarget"
, "labeltooltip"
, "landscape"
, "layer"
, "layerlistsep"
, "layers"
, "layerselect"
, "layersep"
, "layout"
, "len"
, "levels"
, "levelsgap"
, "lhead"
, "LHeight"
, "lp"
, "ltail"
, "lwidth"
, "margin"
, "maxiter"
, "mclimit"
, "mindist"
, "minlen"
, "mode"
, "model"
, "mosek"
, "nodesep"
, "nojustify"
, "normalize"
, "notranslate"
, "nslimit"
, "nslimit1"
, "ordering"
, "orientation"
, "outputorder"
, "overlap"
, "overlap_scaling"
, "overlap_shrink"
, "pack"
, "packmode"
, "pad"
, "page"
, "pagedir"
, "pencolor"
, "penwidth"
, "peripheries"
, "pin"
, "pos"
, "quadtree"
, "quantum"
, "rank"
, "rankdir"
, "ranksep"
, "ratio"
, "rects"
, "regular"
, "remincross"
, "repulsiveforce"
, "root"
, "rotate"
, "rotation"
, "samehead"
, "sametail"
, "samplepoints"
, "scale"
, "searchsize"
, "sep"
, "shape"
, "showboxes"
, "sides"
, "size"
, "skew"
, "smoothing"
, "sortv"
, "splines"
, "start"
, "style"
, "stylesheet"
, "tailURL"
, "tailhref"
, "tail_lp"
, "tailclip"
, "taillabel"
, "tailport"
, "tailtarget"
, "tailtooltip"
, "target"
, "tooltip"
, "truecolor"
, "vertices"
, "viewport"
, "voro_margin"
, "weight"
, "width"
, "xdotversion"
, "xlabel"
, "xlp"
, "charset"
])
Set Text -> Set Text -> Set Text
forall a. Ord a => Set a -> Set a -> Set a
`S.union`
Set Text
keywords
rmUnwantedAttributes :: Attributes -> Attributes
rmUnwantedAttributes :: [Attribute] -> [Attribute]
rmUnwantedAttributes = (Attribute -> Bool) -> [Attribute] -> [Attribute]
forall a. (a -> Bool) -> [a] -> [a]
filter (Bool -> Bool
not (Bool -> Bool) -> (Attribute -> Bool) -> Attribute -> Bool
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (((Attribute -> Bool) -> Bool) -> [Attribute -> Bool] -> Bool
forall (t :: * -> *) a. Foldable t => (a -> Bool) -> t a -> Bool
`any` [Attribute -> Bool]
tests) (((Attribute -> Bool) -> Bool) -> Bool)
-> (Attribute -> (Attribute -> Bool) -> Bool) -> Attribute -> Bool
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ((Attribute -> Bool) -> Attribute -> Bool)
-> Attribute -> (Attribute -> Bool) -> Bool
forall a b c. (a -> b -> c) -> b -> a -> c
flip (Attribute -> Bool) -> Attribute -> Bool
forall a b. (a -> b) -> a -> b
($))
where
tests :: [Attribute -> Bool]
tests = [Attribute -> Bool
isDefault, Attribute -> Bool
isColorScheme]
isDefault :: Attribute -> Bool
isDefault a :: Attribute
a = Bool -> (Attribute -> Bool) -> Maybe Attribute -> Bool
forall b a. b -> (a -> b) -> Maybe a -> b
maybe Bool
False (Attribute
aAttribute -> Attribute -> Bool
forall a. Eq a => a -> a -> Bool
==) (Maybe Attribute -> Bool) -> Maybe Attribute -> Bool
forall a b. (a -> b) -> a -> b
$ Attribute -> Maybe Attribute
defaultAttributeValue Attribute
a
isColorScheme :: Attribute -> Bool
isColorScheme ColorScheme{} = Bool
True
isColorScheme _ = Bool
False
parseField :: (ParseDot a) => (a -> Attribute) -> String
-> [(String, Parse Attribute)]
parseField :: (a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField c :: a -> Attribute
c fld :: String
fld = [(String
fld, String -> (a -> Attribute) -> Parse Attribute
forall a.
ParseDot a =>
String -> (a -> Attribute) -> Parse Attribute
liftEqParse String
fld a -> Attribute
c)]
parseFields :: (ParseDot a) => (a -> Attribute) -> [String]
-> [(String, Parse Attribute)]
parseFields :: (a -> Attribute) -> [String] -> [(String, Parse Attribute)]
parseFields c :: a -> Attribute
c = (String -> [(String, Parse Attribute)])
-> [String] -> [(String, Parse Attribute)]
forall (t :: * -> *) a b. Foldable t => (a -> [b]) -> t a -> [b]
concatMap ((a -> Attribute) -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> String -> [(String, Parse Attribute)]
parseField a -> Attribute
c)
parseFieldBool :: (Bool -> Attribute) -> String -> [(String, Parse Attribute)]
parseFieldBool :: (Bool -> Attribute) -> String -> [(String, Parse Attribute)]
parseFieldBool = ((Bool -> Attribute)
-> Bool -> String -> [(String, Parse Attribute)]
forall a.
ParseDot a =>
(a -> Attribute) -> a -> String -> [(String, Parse Attribute)]
`parseFieldDef` Bool
True)
parseFieldDef :: (ParseDot a) => (a -> Attribute) -> a -> String
-> [(String, Parse Attribute)]
parseFieldDef :: (a -> Attribute) -> a -> String -> [(String, Parse Attribute)]
parseFieldDef c :: a -> Attribute
c d :: a
d fld :: String
fld = [(String
fld, Parse Attribute
p)]
where
p :: Parse Attribute
p = String -> (a -> Attribute) -> Parse Attribute
forall a.
ParseDot a =>
String -> (a -> Attribute) -> Parse Attribute
liftEqParse String
fld a -> Attribute
c
Parse Attribute -> Parse Attribute -> Parse Attribute
forall s a. Parser s a -> Parser s a -> Parser s a
`onFail`
do Maybe Char
nxt <- Parser GraphvizState Char -> Parser GraphvizState (Maybe Char)
forall (f :: * -> *) a. Alternative f => f a -> f (Maybe a)
optional (Parser GraphvizState Char -> Parser GraphvizState (Maybe Char))
-> Parser GraphvizState Char -> Parser GraphvizState (Maybe Char)
forall a b. (a -> b) -> a -> b
$ (Char -> Bool) -> Parser GraphvizState Char
forall s. (Char -> Bool) -> Parser s Char
satisfy Char -> Bool
restIDString
Parse Attribute -> Parse Attribute -> Bool -> Parse Attribute
forall a. a -> a -> Bool -> a
bool (String -> Parse Attribute
forall (m :: * -> *) a. MonadFail m => String -> m a
fail "Not actually the field you were after")
(Attribute -> Parse Attribute
forall (m :: * -> *) a. Monad m => a -> m a
return (Attribute -> Parse Attribute) -> Attribute -> Parse Attribute
forall a b. (a -> b) -> a -> b
$ a -> Attribute
c a
d)
(Maybe Char -> Bool
forall a. Maybe a -> Bool
isNothing Maybe Char
nxt)
liftEqParse :: (ParseDot a) => String -> (a -> Attribute) -> Parse Attribute
liftEqParse :: String -> (a -> Attribute) -> Parse Attribute
liftEqParse k :: String
k c :: a -> Attribute
c = do Bool
pStrict <- (GraphvizState -> Bool) -> Parser GraphvizState Bool
forall (m :: * -> *) a.
GraphvizStateM m =>
(GraphvizState -> a) -> m a
getsGS GraphvizState -> Bool
parseStrictly
let adjErr :: Parser GraphvizState a -> ShowS -> Parser GraphvizState a
adjErr = (Parser GraphvizState a -> ShowS -> Parser GraphvizState a)
-> (Parser GraphvizState a -> ShowS -> Parser GraphvizState a)
-> Bool
-> Parser GraphvizState a
-> ShowS
-> Parser GraphvizState a
forall a. a -> a -> Bool -> a
bool Parser GraphvizState a -> ShowS -> Parser GraphvizState a
forall (p :: * -> *) a. Commitment p => p a -> ShowS -> p a
adjustErr Parser GraphvizState a -> ShowS -> Parser GraphvizState a
forall (p :: * -> *) a. PolyParse p => p a -> ShowS -> p a
adjustErrBad Bool
pStrict
Parse ()
parseEq
Parse () -> Parse Attribute -> Parse Attribute
forall (f :: * -> *) a b. Applicative f => f a -> f b -> f b
*> ( Parse Attribute -> Parse Attribute
hasDef ((a -> Attribute) -> Parser GraphvizState a -> Parse Attribute
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap a -> Attribute
c Parser GraphvizState a
forall a. ParseDot a => Parse a
parse)
Parse Attribute -> ShowS -> Parse Attribute
forall a. Parser GraphvizState a -> ShowS -> Parser GraphvizState a
`adjErr`
(("Unable to parse key=value with key of " String -> ShowS
forall a. [a] -> [a] -> [a]
++ String
k
String -> ShowS
forall a. [a] -> [a] -> [a]
++ "\n\t") String -> ShowS
forall a. [a] -> [a] -> [a]
++)
)
where
hasDef :: Parse Attribute -> Parse Attribute
hasDef p :: Parse Attribute
p = Parse Attribute
-> (Attribute -> Parse Attribute)
-> Maybe Attribute
-> Parse Attribute
forall b a. b -> (a -> b) -> Maybe a -> b
maybe Parse Attribute
p (Parse Attribute -> Parse Attribute -> Parse Attribute
forall s a. Parser s a -> Parser s a -> Parser s a
onFail Parse Attribute
p (Parse Attribute -> Parse Attribute)
-> (Attribute -> Parse Attribute) -> Attribute -> Parse Attribute
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Attribute -> String -> Parse Attribute
forall a. a -> String -> Parse a
`stringRep` "\"\""))
(Maybe Attribute -> Parse Attribute)
-> (Attribute -> Maybe Attribute) -> Attribute -> Parse Attribute
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Attribute -> Maybe Attribute
defaultAttributeValue (Attribute -> Parse Attribute) -> Attribute -> Parse Attribute
forall a b. (a -> b) -> a -> b
$ a -> Attribute
c a
forall a. HasCallStack => a
undefined
type CustomAttribute = Attribute
customAttribute :: AttributeName -> Text -> CustomAttribute
customAttribute :: Text -> Text -> Attribute
customAttribute = Text -> Text -> Attribute
UnknownAttribute
isCustom :: Attribute -> Bool
isCustom :: Attribute -> Bool
isCustom UnknownAttribute{} = Bool
True
isCustom _ = Bool
False
isSpecifiedCustom :: AttributeName -> Attribute -> Bool
isSpecifiedCustom :: Text -> Attribute -> Bool
isSpecifiedCustom nm :: Text
nm (UnknownAttribute nm' :: Text
nm' _) = Text
nm Text -> Text -> Bool
forall a. Eq a => a -> a -> Bool
== Text
nm'
isSpecifiedCustom _ _ = Bool
False
customValue :: CustomAttribute -> Text
customValue :: Attribute -> Text
customValue (UnknownAttribute _ v :: Text
v) = Text
v
customValue attr :: Attribute
attr = GraphvizException -> Text
forall a e. Exception e => e -> a
throw (GraphvizException -> Text)
-> (Text -> GraphvizException) -> Text -> Text
forall b c a. (b -> c) -> (a -> b) -> a -> c
. String -> GraphvizException
NotCustomAttr (String -> GraphvizException)
-> (Text -> String) -> Text -> GraphvizException
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Text -> String
T.unpack
(Text -> Text) -> Text -> Text
forall a b. (a -> b) -> a -> b
$ Attribute -> Text
forall a. PrintDot a => a -> Text
printIt Attribute
attr
customName :: CustomAttribute -> AttributeName
customName :: Attribute -> Text
customName (UnknownAttribute nm :: Text
nm _) = Text
nm
customName attr :: Attribute
attr = GraphvizException -> Text
forall a e. Exception e => e -> a
throw (GraphvizException -> Text)
-> (Text -> GraphvizException) -> Text -> Text
forall b c a. (b -> c) -> (a -> b) -> a -> c
. String -> GraphvizException
NotCustomAttr (String -> GraphvizException)
-> (Text -> String) -> Text -> GraphvizException
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Text -> String
T.unpack
(Text -> Text) -> Text -> Text
forall a b. (a -> b) -> a -> b
$ Attribute -> Text
forall a. PrintDot a => a -> Text
printIt Attribute
attr
findCustoms :: Attributes -> ([CustomAttribute], Attributes)
findCustoms :: [Attribute] -> ([Attribute], [Attribute])
findCustoms = (Attribute -> Bool) -> [Attribute] -> ([Attribute], [Attribute])
forall a. (a -> Bool) -> [a] -> ([a], [a])
partition Attribute -> Bool
isCustom
findSpecifiedCustom :: AttributeName -> Attributes
-> Maybe (CustomAttribute, Attributes)
findSpecifiedCustom :: Text -> [Attribute] -> Maybe (Attribute, [Attribute])
findSpecifiedCustom nm :: Text
nm attrs :: [Attribute]
attrs
= case (Attribute -> Bool) -> [Attribute] -> ([Attribute], [Attribute])
forall a. (a -> Bool) -> [a] -> ([a], [a])
break (Text -> Attribute -> Bool
isSpecifiedCustom Text
nm) [Attribute]
attrs of
(bf :: [Attribute]
bf,cust :: Attribute
cust:aft :: [Attribute]
aft) -> (Attribute, [Attribute]) -> Maybe (Attribute, [Attribute])
forall a. a -> Maybe a
Just (Attribute
cust, [Attribute]
bf [Attribute] -> [Attribute] -> [Attribute]
forall a. [a] -> [a] -> [a]
++ [Attribute]
aft)
_ -> Maybe (Attribute, [Attribute])
forall a. Maybe a
Nothing
deleteCustomAttributes :: Attributes -> Attributes
deleteCustomAttributes :: [Attribute] -> [Attribute]
deleteCustomAttributes = (Attribute -> Bool) -> [Attribute] -> [Attribute]
forall a. (a -> Bool) -> [a] -> [a]
filter (Bool -> Bool
not (Bool -> Bool) -> (Attribute -> Bool) -> Attribute -> Bool
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Attribute -> Bool
isCustom)
deleteSpecifiedCustom :: AttributeName -> Attributes -> Attributes
deleteSpecifiedCustom :: Text -> [Attribute] -> [Attribute]
deleteSpecifiedCustom nm :: Text
nm = (Attribute -> Bool) -> [Attribute] -> [Attribute]
forall a. (a -> Bool) -> [a] -> [a]
filter (Bool -> Bool
not (Bool -> Bool) -> (Attribute -> Bool) -> Attribute -> Bool
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Text -> Attribute -> Bool
isSpecifiedCustom Text
nm)