module Test.Hspec.Core.Extension.Tree {-# WARNING "This API is experimental." #-} (
  SpecTree
, mapItems
, filterItems
) where

import           Prelude ()
import           Test.Hspec.Core.Compat

import           Test.Hspec.Core.Spec hiding (SpecTree)
import qualified Test.Hspec.Core.Spec as Core

type SpecTree = Core.SpecTree ()

mapItems :: (Item () -> Item ()) -> [SpecTree] -> [SpecTree]
mapItems :: (Item () -> Item ()) -> [SpecTree] -> [SpecTree]
mapItems = (SpecTree -> SpecTree) -> [SpecTree] -> [SpecTree]
forall a b. (a -> b) -> [a] -> [b]
map ((SpecTree -> SpecTree) -> [SpecTree] -> [SpecTree])
-> ((Item () -> Item ()) -> SpecTree -> SpecTree)
-> (Item () -> Item ())
-> [SpecTree]
-> [SpecTree]
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Item () -> Item ()) -> SpecTree -> SpecTree
forall a b. (a -> b) -> Tree (IO ()) a -> Tree (IO ()) b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap

filterItems :: (Item () -> Bool) -> [SpecTree] -> [SpecTree]
filterItems :: (Item () -> Bool) -> [SpecTree] -> [SpecTree]
filterItems = (Item () -> Bool) -> [SpecTree] -> [SpecTree]
forall a c. (a -> Bool) -> [Tree c a] -> [Tree c a]
filterForest