{-# OPTIONS_HADDOCK show-extensions #-}
{-# LANGUAGE NoImplicitPrelude #-}
module CLI.Arguments.Sorted where
import GHC.Base
import Data.Tuple (fst)
import Data.Monoid (mappend)
import Data.Maybe (fromJust)
import Data.List (sortBy)
import CLI.Arguments
import CLI.Arguments.Parsing
takeArgsSortedBy
:: (Arguments -> Bool)
-> (Arguments -> Arguments -> Ordering)
-> CLSpecifications
-> [String]
-> Args
takeArgsSortedBy :: (Arguments -> Bool)
-> (Arguments -> Arguments -> Ordering)
-> CLSpecifications
-> [String]
-> Args
takeArgsSortedBy Arguments -> Bool
g Arguments -> Arguments -> Ordering
f CLSpecifications
ts [String]
yss = forall a. (a -> a -> Ordering) -> [a] -> [a]
sortBy Arguments -> Arguments -> Ordering
f forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (a, b) -> a
fst forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Arguments -> Bool)
-> CLSpecifications -> (Args, [String]) -> (Args, [String])
args2ArgsFilteredGR Arguments -> Bool
g CLSpecifications
ts forall a b. (a -> b) -> a -> b
$ ([],[String]
yss)
{-# INLINABLE takeArgsSortedBy #-}
takeArgs1SortedBy
:: FirstChars
-> (Arguments -> Bool)
-> (Arguments -> Arguments -> Ordering)
-> CLSpecifications
-> [String]
-> Args
takeArgs1SortedBy :: FirstChars
-> (Arguments -> Bool)
-> (Arguments -> Arguments -> Ordering)
-> CLSpecifications
-> [String]
-> Args
takeArgs1SortedBy (Char
x1,Char
x2) Arguments -> Bool
g Arguments -> Arguments -> Ordering
f CLSpecifications
ts [String]
yss = forall a. (a -> a -> Ordering) -> [a] -> [a]
sortBy Arguments -> Arguments -> Ordering
f forall b c a. (b -> c) -> (a -> b) -> a -> c
. forall a b. (a, b) -> a
fst forall b c a. (b -> c) -> (a -> b) -> a -> c
. FirstChars
-> (Arguments -> Bool)
-> CLSpecifications
-> (Args, [String])
-> (Args, [String])
args2ArgsFilteredG1R (Char
x1,Char
x2) Arguments -> Bool
g CLSpecifications
ts forall a b. (a -> b) -> a -> b
$ ([],[String]
yss)
{-# INLINABLE takeArgs1SortedBy #-}
takeCsSortedBy
:: (Arguments -> Arguments -> Ordering)
-> CLSpecifications
-> [String]
-> Args
takeCsSortedBy :: (Arguments -> Arguments -> Ordering)
-> CLSpecifications -> [String] -> Args
takeCsSortedBy = (Arguments -> Bool)
-> (Arguments -> Arguments -> Ordering)
-> CLSpecifications
-> [String]
-> Args
takeArgsSortedBy (\Arguments
x -> Arguments -> Bool
notNullArguments Arguments
x Bool -> Bool -> Bool
&& Arguments -> Bool
isC Arguments
x)
{-# INLINABLE takeCsSortedBy #-}
takeCs1SortedBy
:: FirstChars
-> (Arguments -> Arguments -> Ordering)
-> CLSpecifications
-> [String]
-> Args
takeCs1SortedBy :: FirstChars
-> (Arguments -> Arguments -> Ordering)
-> CLSpecifications
-> [String]
-> Args
takeCs1SortedBy (Char
x1,Char
x2) = FirstChars
-> (Arguments -> Bool)
-> (Arguments -> Arguments -> Ordering)
-> CLSpecifications
-> [String]
-> Args
takeArgs1SortedBy (Char
x1,Char
x2) (\Arguments
x -> Arguments -> Bool
notNullArguments Arguments
x Bool -> Bool -> Bool
&& Arguments -> Bool
isC Arguments
x)
{-# INLINABLE takeCs1SortedBy #-}
takeBsSortedBy
:: (Arguments -> Arguments -> Ordering)
-> CLSpecifications
-> [String]
-> Args
takeBsSortedBy :: (Arguments -> Arguments -> Ordering)
-> CLSpecifications -> [String] -> Args
takeBsSortedBy = (Arguments -> Bool)
-> (Arguments -> Arguments -> Ordering)
-> CLSpecifications
-> [String]
-> Args
takeArgsSortedBy (\Arguments
x -> Arguments -> Bool
notNullArguments Arguments
x Bool -> Bool -> Bool
&& Arguments -> Bool
isB Arguments
x)
{-# INLINABLE takeBsSortedBy #-}
takeAsSortedBy
:: (Arguments -> Arguments -> Ordering)
-> CLSpecifications
-> [String]
-> Args
takeAsSortedBy :: (Arguments -> Arguments -> Ordering)
-> CLSpecifications -> [String] -> Args
takeAsSortedBy = (Arguments -> Bool)
-> (Arguments -> Arguments -> Ordering)
-> CLSpecifications
-> [String]
-> Args
takeArgsSortedBy (\Arguments
x -> Arguments -> Bool
notNullArguments Arguments
x Bool -> Bool -> Bool
&& Arguments -> Bool
isA Arguments
x)
{-# INLINABLE takeAsSortedBy #-}