module Network.CrawlChain.CrawlDirective where
import Network.CrawlChain.CrawlAction
import Network.CrawlChain.CrawlResult
data CrawlDirective =
SimpleDirective (String -> [CrawlAction])
| RelativeDirective (String -> [CrawlAction])
| FollowUpDirective (CrawlResult -> [CrawlAction])
| DelayDirective Int CrawlDirective
| RetryDirective Int CrawlDirective
| AlternativeDirective CrawlDirective CrawlDirective
| RestartChainDirective (CrawlAction, CrawlDirective)
| GuardDirective (CrawlAction -> Bool)
| DirectiveSequence [CrawlDirective]