License | BSD-3-Clause |
---|---|
Safe Haskell | None |
Language | Haskell2010 |
Swarm.Game.Step.Path.Type
Description
Types for shortest-path-finding and logging path-cache invalidation events.
By convention, a [Location]
does not include the
starting location, whereas a NonEmpty Location
does.
Consequentially, an empty [Location]
implies that
the robot's current location is already at the goal location.
A gratuitous number of sum types are defined here to facilitate explainability of caching behavior via logs.
Synopsis
- maxLogEntries :: Int
- data PathfindingParameters a = PathfindingParameters {}
- data CachePreservationMode
- data CacheLogEntry = CacheLogEntry {
- robot :: RID
- event :: CacheEvent
- data CacheRetrievalAttempt
- data CacheEvent
- data DistanceLimitChange
- data DifferentArgument
- data CacheRetreivalInapplicability
- data InvalidationReason
- emptyPathCache :: PathCaching
- data PathfindingTarget
- = LocationTarget Location
- | EntityTarget EntityName
- newtype TailMap = TailMap (Map Location [Location])
- data CachedPath = CachedPath {
- originalPath :: NonEmpty Location
- locations :: TailMap
- data PathfindingCache = PathfindingCache {
- invocationParms :: PathfindingParameters SubworldName
- walkabilityInfo :: WalkabilityContext
- targetLoc :: Location
- cachedPath :: CachedPath
- data PathCaching = PathCaching {
- _pathCachingRobots :: IntMap PathfindingCache
- _pathCachingLog :: RingBuffer CacheLogEntry
- pathCachingLog :: Lens' PathCaching (RingBuffer CacheLogEntry)
- pathCachingRobots :: Lens' PathCaching (IntMap PathfindingCache)
Documentation
maxLogEntries :: Int Source #
data PathfindingParameters a Source #
This is parameterized on the starting location, as we may either want to:
- provide the planar start location (when first computing the path), or
- suppress it and only propagate the subworld name (when retrieving from cache), which precludes the downstream possibility of accidentally mixing up the planar location of the target with the current robot location.
Constructors
PathfindingParameters | |
Fields
|
Instances
data CachePreservationMode Source #
It is possible for the cache to be unaffected by certain events, or the cache may modified without fully recomputing the shortest path.
Constructors
Unmodified | |
PathTruncated |
Instances
ToJSON CachePreservationMode Source # | |||||
Defined in Swarm.Game.Step.Path.Type Methods toJSON :: CachePreservationMode -> Value # toEncoding :: CachePreservationMode -> Encoding # toJSONList :: [CachePreservationMode] -> Value # toEncodingList :: [CachePreservationMode] -> Encoding # omitField :: CachePreservationMode -> Bool # | |||||
Generic CachePreservationMode Source # | |||||
Defined in Swarm.Game.Step.Path.Type Associated Types
Methods from :: CachePreservationMode -> Rep CachePreservationMode x # to :: Rep CachePreservationMode x -> CachePreservationMode # | |||||
Show CachePreservationMode Source # | |||||
Defined in Swarm.Game.Step.Path.Type Methods showsPrec :: Int -> CachePreservationMode -> ShowS # show :: CachePreservationMode -> String # showList :: [CachePreservationMode] -> ShowS # | |||||
Eq CachePreservationMode Source # | |||||
Defined in Swarm.Game.Step.Path.Type Methods (==) :: CachePreservationMode -> CachePreservationMode -> Bool # (/=) :: CachePreservationMode -> CachePreservationMode -> Bool # | |||||
type Rep CachePreservationMode Source # | |||||
Defined in Swarm.Game.Step.Path.Type |
data CacheLogEntry Source #
Constructors
CacheLogEntry | |
Fields
|
Instances
ToJSON CacheLogEntry Source # | |||||
Defined in Swarm.Game.Step.Path.Type Methods toJSON :: CacheLogEntry -> Value # toEncoding :: CacheLogEntry -> Encoding # toJSONList :: [CacheLogEntry] -> Value # toEncodingList :: [CacheLogEntry] -> Encoding # omitField :: CacheLogEntry -> Bool # | |||||
Generic CacheLogEntry Source # | |||||
Defined in Swarm.Game.Step.Path.Type Associated Types
| |||||
Show CacheLogEntry Source # | |||||
Defined in Swarm.Game.Step.Path.Type Methods showsPrec :: Int -> CacheLogEntry -> ShowS # show :: CacheLogEntry -> String # showList :: [CacheLogEntry] -> ShowS # | |||||
Eq CacheLogEntry Source # | |||||
Defined in Swarm.Game.Step.Path.Type Methods (==) :: CacheLogEntry -> CacheLogEntry -> Bool # (/=) :: CacheLogEntry -> CacheLogEntry -> Bool # | |||||
type Rep CacheLogEntry Source # | |||||
Defined in Swarm.Game.Step.Path.Type type Rep CacheLogEntry = D1 ('MetaData "CacheLogEntry" "Swarm.Game.Step.Path.Type" "swarm-0.7.0.0-IuFfgHrMoE7JrptOBRVOwx-swarm-engine" 'False) (C1 ('MetaCons "CacheLogEntry" 'PrefixI 'True) (S1 ('MetaSel ('Just "robot") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 RID) :*: S1 ('MetaSel ('Just "event") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 CacheEvent))) |
data CacheRetrievalAttempt Source #
Instances
ToJSON CacheRetrievalAttempt Source # | |||||
Defined in Swarm.Game.Step.Path.Type Methods toJSON :: CacheRetrievalAttempt -> Value # toEncoding :: CacheRetrievalAttempt -> Encoding # toJSONList :: [CacheRetrievalAttempt] -> Value # toEncodingList :: [CacheRetrievalAttempt] -> Encoding # omitField :: CacheRetrievalAttempt -> Bool # | |||||
Generic CacheRetrievalAttempt Source # | |||||
Defined in Swarm.Game.Step.Path.Type Associated Types
Methods from :: CacheRetrievalAttempt -> Rep CacheRetrievalAttempt x # to :: Rep CacheRetrievalAttempt x -> CacheRetrievalAttempt # | |||||
Show CacheRetrievalAttempt Source # | |||||
Defined in Swarm.Game.Step.Path.Type Methods showsPrec :: Int -> CacheRetrievalAttempt -> ShowS # show :: CacheRetrievalAttempt -> String # showList :: [CacheRetrievalAttempt] -> ShowS # | |||||
Eq CacheRetrievalAttempt Source # | |||||
Defined in Swarm.Game.Step.Path.Type Methods (==) :: CacheRetrievalAttempt -> CacheRetrievalAttempt -> Bool # (/=) :: CacheRetrievalAttempt -> CacheRetrievalAttempt -> Bool # | |||||
type Rep CacheRetrievalAttempt Source # | |||||
Defined in Swarm.Game.Step.Path.Type type Rep CacheRetrievalAttempt = D1 ('MetaData "CacheRetrievalAttempt" "Swarm.Game.Step.Path.Type" "swarm-0.7.0.0-IuFfgHrMoE7JrptOBRVOwx-swarm-engine" 'False) (C1 ('MetaCons "Success" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "RecomputationRequired" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 CacheRetreivalInapplicability))) |
data CacheEvent Source #
Certain events can obligate the cache to be completely invalidated, or partially or fully preserved.
Constructors
Invalidate InvalidationReason | |
Preserve CachePreservationMode | |
RetrievalAttempt CacheRetrievalAttempt |
Instances
ToJSON CacheEvent Source # | |||||
Defined in Swarm.Game.Step.Path.Type Methods toJSON :: CacheEvent -> Value # toEncoding :: CacheEvent -> Encoding # toJSONList :: [CacheEvent] -> Value # toEncodingList :: [CacheEvent] -> Encoding # omitField :: CacheEvent -> Bool # | |||||
Generic CacheEvent Source # | |||||
Defined in Swarm.Game.Step.Path.Type Associated Types
| |||||
Show CacheEvent Source # | |||||
Defined in Swarm.Game.Step.Path.Type Methods showsPrec :: Int -> CacheEvent -> ShowS # show :: CacheEvent -> String # showList :: [CacheEvent] -> ShowS # | |||||
Eq CacheEvent Source # | |||||
Defined in Swarm.Game.Step.Path.Type | |||||
type Rep CacheEvent Source # | |||||
Defined in Swarm.Game.Step.Path.Type type Rep CacheEvent = D1 ('MetaData "CacheEvent" "Swarm.Game.Step.Path.Type" "swarm-0.7.0.0-IuFfgHrMoE7JrptOBRVOwx-swarm-engine" 'False) (C1 ('MetaCons "Invalidate" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 InvalidationReason)) :+: (C1 ('MetaCons "Preserve" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 CachePreservationMode)) :+: C1 ('MetaCons "RetrievalAttempt" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 CacheRetrievalAttempt)))) |
data DistanceLimitChange Source #
Constructors
LimitIncreased | |
PathExceededLimit |
Instances
ToJSON DistanceLimitChange Source # | |||||
Defined in Swarm.Game.Step.Path.Type Methods toJSON :: DistanceLimitChange -> Value # toEncoding :: DistanceLimitChange -> Encoding # toJSONList :: [DistanceLimitChange] -> Value # toEncodingList :: [DistanceLimitChange] -> Encoding # omitField :: DistanceLimitChange -> Bool # | |||||
Generic DistanceLimitChange Source # | |||||
Defined in Swarm.Game.Step.Path.Type Associated Types
Methods from :: DistanceLimitChange -> Rep DistanceLimitChange x # to :: Rep DistanceLimitChange x -> DistanceLimitChange # | |||||
Show DistanceLimitChange Source # | |||||
Defined in Swarm.Game.Step.Path.Type Methods showsPrec :: Int -> DistanceLimitChange -> ShowS # show :: DistanceLimitChange -> String # showList :: [DistanceLimitChange] -> ShowS # | |||||
Eq DistanceLimitChange Source # | |||||
Defined in Swarm.Game.Step.Path.Type Methods (==) :: DistanceLimitChange -> DistanceLimitChange -> Bool # (/=) :: DistanceLimitChange -> DistanceLimitChange -> Bool # | |||||
type Rep DistanceLimitChange Source # | |||||
Defined in Swarm.Game.Step.Path.Type type Rep DistanceLimitChange = D1 ('MetaData "DistanceLimitChange" "Swarm.Game.Step.Path.Type" "swarm-0.7.0.0-IuFfgHrMoE7JrptOBRVOwx-swarm-engine" 'False) (C1 ('MetaCons "LimitIncreased" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "PathExceededLimit" 'PrefixI 'False) (U1 :: Type -> Type)) |
data DifferentArgument Source #
Instances
ToJSON DifferentArgument Source # | |||||
Defined in Swarm.Game.Step.Path.Type Methods toJSON :: DifferentArgument -> Value # toEncoding :: DifferentArgument -> Encoding # toJSONList :: [DifferentArgument] -> Value # toEncodingList :: [DifferentArgument] -> Encoding # omitField :: DifferentArgument -> Bool # | |||||
Generic DifferentArgument Source # | |||||
Defined in Swarm.Game.Step.Path.Type Associated Types
Methods from :: DifferentArgument -> Rep DifferentArgument x # to :: Rep DifferentArgument x -> DifferentArgument # | |||||
Show DifferentArgument Source # | |||||
Defined in Swarm.Game.Step.Path.Type Methods showsPrec :: Int -> DifferentArgument -> ShowS # show :: DifferentArgument -> String # showList :: [DifferentArgument] -> ShowS # | |||||
Eq DifferentArgument Source # | |||||
Defined in Swarm.Game.Step.Path.Type Methods (==) :: DifferentArgument -> DifferentArgument -> Bool # (/=) :: DifferentArgument -> DifferentArgument -> Bool # | |||||
type Rep DifferentArgument Source # | |||||
Defined in Swarm.Game.Step.Path.Type type Rep DifferentArgument = D1 ('MetaData "DifferentArgument" "Swarm.Game.Step.Path.Type" "swarm-0.7.0.0-IuFfgHrMoE7JrptOBRVOwx-swarm-engine" 'False) ((C1 ('MetaCons "NewSubworld" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "NewTargetType" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "NewWalkabilityContext" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "NewDistanceLimit" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 DistanceLimitChange)))) |
data CacheRetreivalInapplicability Source #
Reasons why we cannot re-use a precomputed path
from the cache upon re-invoking the Path
command
Constructors
NotCached | |
DifferentArg DifferentArgument | |
PositionOutsidePath |
Instances
ToJSON CacheRetreivalInapplicability Source # | |||||
Defined in Swarm.Game.Step.Path.Type | |||||
Generic CacheRetreivalInapplicability Source # | |||||
Defined in Swarm.Game.Step.Path.Type Associated Types
| |||||
Show CacheRetreivalInapplicability Source # | |||||
Defined in Swarm.Game.Step.Path.Type Methods showsPrec :: Int -> CacheRetreivalInapplicability -> ShowS # show :: CacheRetreivalInapplicability -> String # showList :: [CacheRetreivalInapplicability] -> ShowS # | |||||
Eq CacheRetreivalInapplicability Source # | |||||
Defined in Swarm.Game.Step.Path.Type | |||||
type Rep CacheRetreivalInapplicability Source # | |||||
Defined in Swarm.Game.Step.Path.Type type Rep CacheRetreivalInapplicability = D1 ('MetaData "CacheRetreivalInapplicability" "Swarm.Game.Step.Path.Type" "swarm-0.7.0.0-IuFfgHrMoE7JrptOBRVOwx-swarm-engine" 'False) (C1 ('MetaCons "NotCached" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "DifferentArg" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 DifferentArgument)) :+: C1 ('MetaCons "PositionOutsidePath" 'PrefixI 'False) (U1 :: Type -> Type))) |
data InvalidationReason Source #
Reasons for cache being invalidated
Constructors
TargetEntityAddedOutsidePath | |
TargetEntityRemoved | |
UnwalkableRemoved | |
UnwalkableOntoPath | |
NonexistentRobot |
Instances
ToJSON InvalidationReason Source # | |||||
Defined in Swarm.Game.Step.Path.Type Methods toJSON :: InvalidationReason -> Value # toEncoding :: InvalidationReason -> Encoding # toJSONList :: [InvalidationReason] -> Value # toEncodingList :: [InvalidationReason] -> Encoding # omitField :: InvalidationReason -> Bool # | |||||
Generic InvalidationReason Source # | |||||
Defined in Swarm.Game.Step.Path.Type Associated Types
Methods from :: InvalidationReason -> Rep InvalidationReason x # to :: Rep InvalidationReason x -> InvalidationReason # | |||||
Show InvalidationReason Source # | |||||
Defined in Swarm.Game.Step.Path.Type Methods showsPrec :: Int -> InvalidationReason -> ShowS # show :: InvalidationReason -> String # showList :: [InvalidationReason] -> ShowS # | |||||
Eq InvalidationReason Source # | |||||
Defined in Swarm.Game.Step.Path.Type Methods (==) :: InvalidationReason -> InvalidationReason -> Bool # (/=) :: InvalidationReason -> InvalidationReason -> Bool # | |||||
type Rep InvalidationReason Source # | |||||
Defined in Swarm.Game.Step.Path.Type type Rep InvalidationReason = D1 ('MetaData "InvalidationReason" "Swarm.Game.Step.Path.Type" "swarm-0.7.0.0-IuFfgHrMoE7JrptOBRVOwx-swarm-engine" 'False) ((C1 ('MetaCons "TargetEntityAddedOutsidePath" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "TargetEntityRemoved" 'PrefixI 'False) (U1 :: Type -> Type)) :+: (C1 ('MetaCons "UnwalkableRemoved" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "UnwalkableOntoPath" 'PrefixI 'False) (U1 :: Type -> Type) :+: C1 ('MetaCons "NonexistentRobot" 'PrefixI 'False) (U1 :: Type -> Type)))) |
data PathfindingTarget Source #
Shortest paths can either be computed to the nearest entity of a given type or to a specific location.
Constructors
LocationTarget Location | |
EntityTarget EntityName | Note: navigation to entities does not benefit from the distance heuristic optimization of the A* algorithm (but see #1568) |
Instances
ToJSON PathfindingTarget Source # | |||||
Defined in Swarm.Game.Step.Path.Type Methods toJSON :: PathfindingTarget -> Value # toEncoding :: PathfindingTarget -> Encoding # toJSONList :: [PathfindingTarget] -> Value # toEncodingList :: [PathfindingTarget] -> Encoding # omitField :: PathfindingTarget -> Bool # | |||||
Generic PathfindingTarget Source # | |||||
Defined in Swarm.Game.Step.Path.Type Associated Types
Methods from :: PathfindingTarget -> Rep PathfindingTarget x # to :: Rep PathfindingTarget x -> PathfindingTarget # | |||||
Show PathfindingTarget Source # | |||||
Defined in Swarm.Game.Step.Path.Type Methods showsPrec :: Int -> PathfindingTarget -> ShowS # show :: PathfindingTarget -> String # showList :: [PathfindingTarget] -> ShowS # | |||||
Eq PathfindingTarget Source # | |||||
Defined in Swarm.Game.Step.Path.Type Methods (==) :: PathfindingTarget -> PathfindingTarget -> Bool # (/=) :: PathfindingTarget -> PathfindingTarget -> Bool # | |||||
type Rep PathfindingTarget Source # | |||||
Defined in Swarm.Game.Step.Path.Type type Rep PathfindingTarget = D1 ('MetaData "PathfindingTarget" "Swarm.Game.Step.Path.Type" "swarm-0.7.0.0-IuFfgHrMoE7JrptOBRVOwx-swarm-engine" 'False) (C1 ('MetaCons "LocationTarget" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Location)) :+: C1 ('MetaCons "EntityTarget" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 EntityName))) |
Facilitates lookup of any shortest path to a particular goal cell, given a location that already lies on a shortest path.
Instances
ToJSON TailMap Source # | |||||
Generic TailMap Source # | |||||
Defined in Swarm.Game.Step.Path.Type Associated Types
| |||||
Show TailMap Source # | |||||
Eq TailMap Source # | |||||
type Rep TailMap Source # | |||||
Defined in Swarm.Game.Step.Path.Type type Rep TailMap = D1 ('MetaData "TailMap" "Swarm.Game.Step.Path.Type" "swarm-0.7.0.0-IuFfgHrMoE7JrptOBRVOwx-swarm-engine" 'True) (C1 ('MetaCons "TailMap" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Map Location [Location])))) |
data CachedPath Source #
Constructors
CachedPath | |
Fields
|
Instances
ToJSON CachedPath Source # | |||||
Defined in Swarm.Game.Step.Path.Type Methods toJSON :: CachedPath -> Value # toEncoding :: CachedPath -> Encoding # toJSONList :: [CachedPath] -> Value # toEncodingList :: [CachedPath] -> Encoding # omitField :: CachedPath -> Bool # | |||||
Generic CachedPath Source # | |||||
Defined in Swarm.Game.Step.Path.Type Associated Types
| |||||
Show CachedPath Source # | |||||
Defined in Swarm.Game.Step.Path.Type Methods showsPrec :: Int -> CachedPath -> ShowS # show :: CachedPath -> String # showList :: [CachedPath] -> ShowS # | |||||
Eq CachedPath Source # | |||||
Defined in Swarm.Game.Step.Path.Type | |||||
type Rep CachedPath Source # | |||||
Defined in Swarm.Game.Step.Path.Type type Rep CachedPath = D1 ('MetaData "CachedPath" "Swarm.Game.Step.Path.Type" "swarm-0.7.0.0-IuFfgHrMoE7JrptOBRVOwx-swarm-engine" 'False) (C1 ('MetaCons "CachedPath" 'PrefixI 'True) (S1 ('MetaSel ('Just "originalPath") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (NonEmpty Location)) :*: S1 ('MetaSel ('Just "locations") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 TailMap))) |
data PathfindingCache Source #
A per-robot cache for the path
command.
Constructors
PathfindingCache | |
Fields
|
Instances
ToJSON PathfindingCache Source # | |||||
Defined in Swarm.Game.Step.Path.Type Methods toJSON :: PathfindingCache -> Value # toEncoding :: PathfindingCache -> Encoding # toJSONList :: [PathfindingCache] -> Value # toEncodingList :: [PathfindingCache] -> Encoding # omitField :: PathfindingCache -> Bool # | |||||
Generic PathfindingCache Source # | |||||
Defined in Swarm.Game.Step.Path.Type Associated Types
Methods from :: PathfindingCache -> Rep PathfindingCache x # to :: Rep PathfindingCache x -> PathfindingCache # | |||||
Show PathfindingCache Source # | |||||
Defined in Swarm.Game.Step.Path.Type Methods showsPrec :: Int -> PathfindingCache -> ShowS # show :: PathfindingCache -> String # showList :: [PathfindingCache] -> ShowS # | |||||
Eq PathfindingCache Source # | |||||
Defined in Swarm.Game.Step.Path.Type Methods (==) :: PathfindingCache -> PathfindingCache -> Bool # (/=) :: PathfindingCache -> PathfindingCache -> Bool # | |||||
type Rep PathfindingCache Source # | |||||
Defined in Swarm.Game.Step.Path.Type type Rep PathfindingCache = D1 ('MetaData "PathfindingCache" "Swarm.Game.Step.Path.Type" "swarm-0.7.0.0-IuFfgHrMoE7JrptOBRVOwx-swarm-engine" 'False) (C1 ('MetaCons "PathfindingCache" 'PrefixI 'True) ((S1 ('MetaSel ('Just "invocationParms") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 (PathfindingParameters SubworldName)) :*: S1 ('MetaSel ('Just "walkabilityInfo") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 WalkabilityContext)) :*: (S1 ('MetaSel ('Just "targetLoc") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Location) :*: S1 ('MetaSel ('Just "cachedPath") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 CachedPath)))) |
data PathCaching Source #
Constructors
PathCaching | |
Fields
|
pathCachingLog :: Lens' PathCaching (RingBuffer CacheLogEntry) Source #
Event log for cache invalidation
pathCachingRobots :: Lens' PathCaching (IntMap PathfindingCache) Source #
All the RIDs of robots that are storing a cached path that may require invalidation.