compaREST-0.1.0.1: Compatibility checker for OpenAPI
Safe HaskellNone
LanguageHaskell2010

Data.OpenApi.Compare.PathsPrefixTree

Synopsis

Documentation

data PathsPrefixTree (q :: k -> k -> Type) (f :: k -> Type) (r :: k) where Source #

A list of AnItem r f, but optimized into a prefix tree.

Bundled Patterns

pattern PathsPrefixNode :: Ord (f r) => Set (f r) -> [WrapTypeable (AStep q f r)] -> PathsPrefixTree q f r 

Instances

Instances details
Eq (PathsPrefixTree q f a) Source # 
Instance details

Defined in Data.OpenApi.Compare.PathsPrefixTree

Methods

(==) :: PathsPrefixTree q f a -> PathsPrefixTree q f a -> Bool #

(/=) :: PathsPrefixTree q f a -> PathsPrefixTree q f a -> Bool #

Ord (PathsPrefixTree q f a) Source # 
Instance details

Defined in Data.OpenApi.Compare.PathsPrefixTree

Show (f r) => Show (PathsPrefixTree q f r) Source # 
Instance details

Defined in Data.OpenApi.Compare.PathsPrefixTree

Semigroup (PathsPrefixTree q f r) Source # 
Instance details

Defined in Data.OpenApi.Compare.PathsPrefixTree

Methods

(<>) :: PathsPrefixTree q f r -> PathsPrefixTree q f r -> PathsPrefixTree q f r #

sconcat :: NonEmpty (PathsPrefixTree q f r) -> PathsPrefixTree q f r #

stimes :: Integral b => b -> PathsPrefixTree q f r -> PathsPrefixTree q f r #

Monoid (PathsPrefixTree q f r) Source # 
Instance details

Defined in Data.OpenApi.Compare.PathsPrefixTree

(forall (a :: k). ToJSON (f a)) => ToJSON (PathsPrefixTree q f r) Source # 
Instance details

Defined in Data.OpenApi.Compare.PathsPrefixTree

data AStep (q :: k -> k -> Type) (f :: k -> Type) (r :: k) (a :: k) where Source #

Constructors

AStep :: NiceQuiver q r a => !(Map (q r a) (PathsPrefixTree q f a)) -> AStep q f r a 

Instances

Instances details
Eq (AStep q f r a) Source # 
Instance details

Defined in Data.OpenApi.Compare.PathsPrefixTree

Methods

(==) :: AStep q f r a -> AStep q f r a -> Bool #

(/=) :: AStep q f r a -> AStep q f r a -> Bool #

Ord (AStep q f r a) Source # 
Instance details

Defined in Data.OpenApi.Compare.PathsPrefixTree

Methods

compare :: AStep q f r a -> AStep q f r a -> Ordering #

(<) :: AStep q f r a -> AStep q f r a -> Bool #

(<=) :: AStep q f r a -> AStep q f r a -> Bool #

(>) :: AStep q f r a -> AStep q f r a -> Bool #

(>=) :: AStep q f r a -> AStep q f r a -> Bool #

max :: AStep q f r a -> AStep q f r a -> AStep q f r a #

min :: AStep q f r a -> AStep q f r a -> AStep q f r a #

fromList :: [AnItem q f r] -> PathsPrefixTree q f r Source #

foldWith :: forall q f m r. Monoid m => (forall a. Ord (f a) => Paths q r a -> f a -> m) -> PathsPrefixTree q f r -> m Source #

toList :: PathsPrefixTree q f r -> [AnItem q f r] Source #

filter :: (forall a. f a -> Bool) -> PathsPrefixTree q f r -> PathsPrefixTree q f r Source #

filterWithKey :: (forall a. Paths q r a -> f a -> Bool) -> PathsPrefixTree q f r -> PathsPrefixTree q f r Source #

takeSubtree :: forall q f r a. Paths q r a -> PathsPrefixTree q f r -> PathsPrefixTree q f a Source #

Select a subtree by prefix

lookup :: Paths q r a -> PathsPrefixTree q f r -> Set (f a) Source #

embed :: Paths q r a -> PathsPrefixTree q f a -> PathsPrefixTree q f r Source #

Embed a subtree in a larger tree with given prefix

size :: PathsPrefixTree q f r -> Int Source #

The number of leaves.

partition :: (forall a. f a -> Bool) -> PathsPrefixTree q f r -> (PathsPrefixTree q f r, PathsPrefixTree q f r) Source #

map :: (forall x. f x -> f x) -> PathsPrefixTree q f r -> PathsPrefixTree q f r Source #