module GitHub.Workflow.Command.Annotation.Position.Line ( Line (..) , lineText , lineValue ) where import Control.Category import Data.Text (Text) import Data.Text.Lazy qualified as TL import Data.Text.Lazy.Builder qualified as TB import Data.Text.Lazy.Builder.Int qualified as TL import GitHub.Workflow.Command.Syntax (Value (..)) import Numeric.Natural import Prelude (Eq, Num, Ord, Show) newtype Line = Line {Line -> Natural natural :: Natural} deriving newtype (Line -> Line -> Bool (Line -> Line -> Bool) -> (Line -> Line -> Bool) -> Eq Line forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a $c== :: Line -> Line -> Bool == :: Line -> Line -> Bool $c/= :: Line -> Line -> Bool /= :: Line -> Line -> Bool Eq, Eq Line Eq Line => (Line -> Line -> Ordering) -> (Line -> Line -> Bool) -> (Line -> Line -> Bool) -> (Line -> Line -> Bool) -> (Line -> Line -> Bool) -> (Line -> Line -> Line) -> (Line -> Line -> Line) -> Ord Line Line -> Line -> Bool Line -> Line -> Ordering Line -> Line -> Line 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 $ccompare :: Line -> Line -> Ordering compare :: Line -> Line -> Ordering $c< :: Line -> Line -> Bool < :: Line -> Line -> Bool $c<= :: Line -> Line -> Bool <= :: Line -> Line -> Bool $c> :: Line -> Line -> Bool > :: Line -> Line -> Bool $c>= :: Line -> Line -> Bool >= :: Line -> Line -> Bool $cmax :: Line -> Line -> Line max :: Line -> Line -> Line $cmin :: Line -> Line -> Line min :: Line -> Line -> Line Ord, Int -> Line -> ShowS [Line] -> ShowS Line -> String (Int -> Line -> ShowS) -> (Line -> String) -> ([Line] -> ShowS) -> Show Line forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a $cshowsPrec :: Int -> Line -> ShowS showsPrec :: Int -> Line -> ShowS $cshow :: Line -> String show :: Line -> String $cshowList :: [Line] -> ShowS showList :: [Line] -> ShowS Show, Integer -> Line Line -> Line Line -> Line -> Line (Line -> Line -> Line) -> (Line -> Line -> Line) -> (Line -> Line -> Line) -> (Line -> Line) -> (Line -> Line) -> (Line -> Line) -> (Integer -> Line) -> Num Line forall a. (a -> a -> a) -> (a -> a -> a) -> (a -> a -> a) -> (a -> a) -> (a -> a) -> (a -> a) -> (Integer -> a) -> Num a $c+ :: Line -> Line -> Line + :: Line -> Line -> Line $c- :: Line -> Line -> Line - :: Line -> Line -> Line $c* :: Line -> Line -> Line * :: Line -> Line -> Line $cnegate :: Line -> Line negate :: Line -> Line $cabs :: Line -> Line abs :: Line -> Line $csignum :: Line -> Line signum :: Line -> Line $cfromInteger :: Integer -> Line fromInteger :: Integer -> Line Num) lineText :: Line -> Text lineText :: Line -> Text lineText = Text -> Text TL.toStrict (Text -> Text) -> (Line -> Text) -> Line -> Text forall b c a. (b -> c) -> (a -> b) -> a -> c forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k). Category cat => cat b c -> cat a b -> cat a c . Builder -> Text TB.toLazyText (Builder -> Text) -> (Line -> Builder) -> Line -> Text forall b c a. (b -> c) -> (a -> b) -> a -> c forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k). Category cat => cat b c -> cat a b -> cat a c . Natural -> Builder forall a. Integral a => a -> Builder TL.decimal (Natural -> Builder) -> (Line -> Natural) -> Line -> Builder forall b c a. (b -> c) -> (a -> b) -> a -> c forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k). Category cat => cat b c -> cat a b -> cat a c . (.natural) lineValue :: Line -> Value lineValue :: Line -> Value lineValue = Text -> Value Value (Text -> Value) -> (Line -> Text) -> Line -> Value forall b c a. (b -> c) -> (a -> b) -> a -> c forall {k} (cat :: k -> k -> *) (b :: k) (c :: k) (a :: k). Category cat => cat b c -> cat a b -> cat a c . Line -> Text lineText