{-# LANGUAGE NamedFieldPuns #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE RecordWildCards #-}
module Control.Concurrent.Capataz.Internal.Types.Lens where
import RIO
import Control.Concurrent.Capataz.Internal.Types
import RIO.Time (NominalDiffTime)
class HasSupervisorIntensity s where
supervisorIntensityL
:: Functor f
=> (Int -> f Int)
-> s
-> f s
class HasSupervisorPeriodSeconds s where
supervisorPeriodSecondsL
:: Functor f
=> (NominalDiffTime -> f NominalDiffTime)
-> s
-> f s
class HasSupervisorRestartStrategy s where
supervisorRestartStrategyL
:: Functor f
=> (SupervisorRestartStrategy -> f SupervisorRestartStrategy)
-> s
-> f s
class HasSupervisorProcessSpecList s where
supervisorProcessSpecListL
:: Functor f
=> ([ProcessSpec m] -> f [ProcessSpec m])
-> s m
-> f (s m)
class HasSupervisorProcessTerminationOrder s where
supervisorProcessTerminationOrderL
:: Functor f
=> (ProcessTerminationOrder -> f ProcessTerminationOrder)
-> s
-> f s
class HasSupervisorIntensityReachedCallback s where
supervisorOnIntensityReachedL
:: Functor f
=> (m () -> f (m ()))
-> s m
-> f (s m)
class HasSupervisorFailureCallback s where
supervisorOnFailureL
:: Functor f
=> ((SomeException -> m ()) -> f (SomeException -> m ()))
-> s m
-> f (s m)
instance HasSupervisorIntensity (SupervisorOptions m) where
supervisorIntensityL k SupervisorOptions {supervisorIntensity, ..} =
fmap (\newSupIntensity -> SupervisorOptions { supervisorIntensity = newSupIntensity, .. })
(k supervisorIntensity)
instance HasSupervisorPeriodSeconds (SupervisorOptions m) where
supervisorPeriodSecondsL k SupervisorOptions {supervisorPeriodSeconds, ..} =
fmap (\newSupPeriodSeconds -> SupervisorOptions { supervisorPeriodSeconds = newSupPeriodSeconds, .. })
(k supervisorPeriodSeconds)
instance HasSupervisorRestartStrategy (SupervisorOptions m) where
supervisorRestartStrategyL k SupervisorOptions {supervisorRestartStrategy, ..} =
fmap (\newSupRestartStrategy ->
SupervisorOptions { supervisorRestartStrategy = newSupRestartStrategy, .. })
(k supervisorRestartStrategy)
instance HasSupervisorProcessSpecList SupervisorOptions where
supervisorProcessSpecListL k SupervisorOptions {supervisorProcessSpecList, ..} =
fmap (\newSupProcessSpecList ->
SupervisorOptions { supervisorProcessSpecList = newSupProcessSpecList, .. })
(k supervisorProcessSpecList)
instance HasSupervisorProcessTerminationOrder (SupervisorOptions m) where
supervisorProcessTerminationOrderL k SupervisorOptions {supervisorProcessTerminationOrder, ..} =
fmap (\newSupProcessTerminationOrder ->
SupervisorOptions { supervisorProcessTerminationOrder = newSupProcessTerminationOrder, .. })
(k supervisorProcessTerminationOrder)
instance HasSupervisorIntensityReachedCallback SupervisorOptions where
supervisorOnIntensityReachedL k SupervisorOptions {supervisorOnIntensityReached, ..} =
fmap (\newSupOnIntensityReached -> SupervisorOptions { supervisorOnIntensityReached = newSupOnIntensityReached, .. })
(k supervisorOnIntensityReached)
instance HasSupervisorFailureCallback SupervisorOptions where
supervisorOnFailureL k SupervisorOptions {supervisorOnFailure, ..} =
fmap (\newSupOnFailure -> SupervisorOptions { supervisorOnFailure = newSupOnFailure, .. })
(k supervisorOnFailure)
instance HasSupervisorIntensity (CapatazOptions m) where
supervisorIntensityL k CapatazOptions {supervisorIntensity, ..} =
fmap (\newSupIntensity -> CapatazOptions { supervisorIntensity = newSupIntensity, .. })
(k supervisorIntensity)
instance HasSupervisorPeriodSeconds (CapatazOptions m) where
supervisorPeriodSecondsL k CapatazOptions {supervisorPeriodSeconds, ..} =
fmap (\newSupPeriodSeconds -> CapatazOptions { supervisorPeriodSeconds = newSupPeriodSeconds, .. })
(k supervisorPeriodSeconds)
instance HasSupervisorRestartStrategy (CapatazOptions m) where
supervisorRestartStrategyL k CapatazOptions {supervisorRestartStrategy, ..} =
fmap (\newSupRestartStrategy ->
CapatazOptions { supervisorRestartStrategy = newSupRestartStrategy, .. })
(k supervisorRestartStrategy)
instance HasSupervisorProcessSpecList CapatazOptions where
supervisorProcessSpecListL k CapatazOptions {supervisorProcessSpecList, ..} =
fmap (\newSupProcessSpecList ->
CapatazOptions { supervisorProcessSpecList = newSupProcessSpecList, .. })
(k supervisorProcessSpecList)
instance HasSupervisorProcessTerminationOrder (CapatazOptions m) where
supervisorProcessTerminationOrderL k CapatazOptions {supervisorProcessTerminationOrder, ..} =
fmap (\newSupProcessTerminationOrder ->
CapatazOptions { supervisorProcessTerminationOrder = newSupProcessTerminationOrder, .. })
(k supervisorProcessTerminationOrder)
instance HasSupervisorIntensityReachedCallback CapatazOptions where
supervisorOnIntensityReachedL k CapatazOptions {supervisorOnIntensityReached, ..} =
fmap (\newSupOnIntensityReached -> CapatazOptions { supervisorOnIntensityReached = newSupOnIntensityReached, .. })
(k supervisorOnIntensityReached)
instance HasSupervisorFailureCallback CapatazOptions where
supervisorOnFailureL k CapatazOptions {supervisorOnFailure, ..} =
fmap (\newSupOnFailure -> CapatazOptions { supervisorOnFailure = newSupOnFailure, .. })
(k supervisorOnFailure)
onSystemEventL
:: Functor f
=> ((CapatazEvent -> m ()) -> f (CapatazEvent -> m ()))
-> CapatazOptions m
-> f (CapatazOptions m)
onSystemEventL k CapatazOptions { notifyEvent, ..} = fmap
(\newNotifyEvent -> CapatazOptions {notifyEvent = newNotifyEvent, ..})
(k notifyEvent)
workerOnFailureL
:: (Functor f)
=> ((SomeException -> m ()) -> f (SomeException -> m ()))
-> WorkerOptions m
-> f (WorkerOptions m)
workerOnFailureL k WorkerOptions { workerOnFailure, ..} = fmap
(\newWorkerAction -> WorkerOptions {workerOnFailure = newWorkerAction, ..})
(k workerOnFailure)
workerOnCompletionL
:: (Functor f) => (m () -> f (m ())) -> WorkerOptions m -> f (WorkerOptions m)
workerOnCompletionL k WorkerOptions { workerOnCompletion, ..} = fmap
(\newWorkerAction -> WorkerOptions {workerOnCompletion = newWorkerAction, ..})
(k workerOnCompletion)
workerOnTerminationL
:: Functor f => (m () -> f (m ())) -> WorkerOptions m -> f (WorkerOptions m)
workerOnTerminationL k WorkerOptions { workerOnTermination, ..} = fmap
(\newWorkerAction -> WorkerOptions {workerOnTermination = newWorkerAction, ..}
)
(k workerOnTermination)
workerTerminationPolicyL
:: Functor f
=> (WorkerTerminationPolicy -> f WorkerTerminationPolicy)
-> WorkerOptions m
-> f (WorkerOptions m)
workerTerminationPolicyL k WorkerOptions { workerTerminationPolicy, ..} = fmap
(\newWorkerAction ->
WorkerOptions {workerTerminationPolicy = newWorkerAction, ..}
)
(k workerTerminationPolicy)
workerRestartStrategyL
:: Functor f
=> (WorkerRestartStrategy -> f WorkerRestartStrategy)
-> WorkerOptions m
-> f (WorkerOptions m)
workerRestartStrategyL k WorkerOptions { workerRestartStrategy, ..} = fmap
(\newWorkerAction ->
WorkerOptions {workerRestartStrategy = newWorkerAction, ..}
)
(k workerRestartStrategy)