Safe Haskell | None |
---|---|
Language | GHC2021 |
PathSize
Description
Since: 0.1
Synopsis
- data PathData = MkPathData {}
- data SubPathData where
- pattern MkSubPathData :: NESeq PathData -> SubPathData
- data PathSizeResult a
- = PathSizeSuccess !a
- | PathSizePartial !(NESeq PathE) !a
- | PathSizeFailure !(NESeq PathE)
- data Config = MkConfig {}
- data Strategy
- findLargestPaths :: (HasCallStack, MonadAsync m, MonadCatch m, MonadPathReader m, MonadPosixC m) => Config -> OsPath -> m (PathSizeResult SubPathData)
- pathSizeRecursive :: (HasCallStack, MonadAsync m, MonadCatch m, MonadPathReader m, MonadPosixC m) => OsPath -> m (PathSizeResult Integer)
- pathSizeRecursiveConfig :: (HasCallStack, MonadAsync m, MonadCatch m, MonadPathReader m, MonadPosixC m) => Config -> OsPath -> m (PathSizeResult Integer)
- display :: Bool -> SubPathData -> Text
- data PathE = MkPathE !OsPath !String
Types
Associates a path to its total (recursive) size in the file-system.
Takes a parameter for the size, allowing us to use a more efficient
temporary type (e.g. Integer
) before finally converting to
Natural.
Since: 0.1
Constructors
MkPathData | |
Instances
data SubPathData where Source #
A flattened and sorted representation of PathTree
. Contains at least
one element.
Since: 0.1
Bundled Patterns
pattern MkSubPathData :: NESeq PathData -> SubPathData | Pattern synonym for Since: 0.1 |
Instances
Generic SubPathData Source # | |||||
Defined in PathSize.Data.SubPathData.Internal Associated Types
| |||||
Show SubPathData Source # | Since: 0.1 | ||||
Defined in PathSize.Data.SubPathData.Internal Methods showsPrec :: Int -> SubPathData -> ShowS # show :: SubPathData -> String # showList :: [SubPathData] -> ShowS # | |||||
NFData SubPathData Source # | Since: 0.1 | ||||
Defined in PathSize.Data.SubPathData.Internal Methods rnf :: SubPathData -> () # | |||||
Eq SubPathData Source # | Since: 0.1 | ||||
Defined in PathSize.Data.SubPathData.Internal | |||||
LabelOptic "unSubPathData" A_Getter SubPathData SubPathData (NESeq PathData) (NESeq PathData) Source # | Since: 0.1 | ||||
Defined in PathSize.Data.SubPathData.Internal Methods labelOptic :: Optic A_Getter NoIx SubPathData SubPathData (NESeq PathData) (NESeq PathData) Source # | |||||
HasField "unSubPathData" SubPathData (NESeq PathData) Source # | Since: 0.1 | ||||
Defined in PathSize.Data.SubPathData.Internal Methods getField :: SubPathData -> NESeq PathData # | |||||
type Rep SubPathData Source # | Since: 0.1 | ||||
Defined in PathSize.Data.SubPathData.Internal type Rep SubPathData = D1 ('MetaData "SubPathData" "PathSize.Data.SubPathData.Internal" "path-size-0.1-inplace" 'True) (C1 ('MetaCons "UnsafeSubPathData" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (NESeq PathData)))) |
data PathSizeResult a Source #
Result of running a path-size computation with multiple notions of failure.
Since: 0.1
Constructors
PathSizeSuccess !a | Successfully computed Since: 0.1 |
PathSizePartial !(NESeq PathE) !a | Computed Since: 0.1 |
PathSizeFailure !(NESeq PathE) | Failed computing Since: 0.1 |
Instances
Functor PathSizeResult Source # | Since: 0.1 | ||||
Defined in PathSize.Data.PathSizeResult Methods fmap :: (a -> b) -> PathSizeResult a -> PathSizeResult b # (<$) :: a -> PathSizeResult b -> PathSizeResult a # | |||||
Generic (PathSizeResult a) Source # | |||||
Defined in PathSize.Data.PathSizeResult Associated Types
Methods from :: PathSizeResult a -> Rep (PathSizeResult a) x # to :: Rep (PathSizeResult a) x -> PathSizeResult a # | |||||
Show a => Show (PathSizeResult a) Source # | Since: 0.1 | ||||
Defined in PathSize.Data.PathSizeResult Methods showsPrec :: Int -> PathSizeResult a -> ShowS # show :: PathSizeResult a -> String # showList :: [PathSizeResult a] -> ShowS # | |||||
NFData a => NFData (PathSizeResult a) Source # | Since: 0.1 | ||||
Defined in PathSize.Data.PathSizeResult Methods rnf :: PathSizeResult a -> () # | |||||
Eq a => Eq (PathSizeResult a) Source # | Since: 0.1 | ||||
Defined in PathSize.Data.PathSizeResult Methods (==) :: PathSizeResult a -> PathSizeResult a -> Bool # (/=) :: PathSizeResult a -> PathSizeResult a -> Bool # | |||||
type Rep (PathSizeResult a) Source # | Since: 0.1 | ||||
Defined in PathSize.Data.PathSizeResult type Rep (PathSizeResult a) = D1 ('MetaData "PathSizeResult" "PathSize.Data.PathSizeResult" "path-size-0.1-inplace" 'False) (C1 ('MetaCons "PathSizeSuccess" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 a)) :+: (C1 ('MetaCons "PathSizePartial" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (NESeq PathE)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 a)) :+: C1 ('MetaCons "PathSizeFailure" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 (NESeq PathE))))) |
Configuration
Since: 0.1
Constructors
MkConfig | |
Fields
|
Instances
Show Config Source # | Since: 0.1 |
Eq Config Source # | Since: 0.1 |
(k ~ A_Lens, a ~ HashSet OsPath, b ~ HashSet OsPath) => LabelOptic "exclude" k Config Config a b Source # | Since: 0.1 |
Defined in PathSize.Data.Config | |
(k ~ A_Lens, a ~ Bool, b ~ Bool) => LabelOptic "filesOnly" k Config Config a b Source # | Since: 0.1 |
Defined in PathSize.Data.Config | |
(k ~ A_Lens, a ~ Bool, b ~ Bool) => LabelOptic "ignoreDirIntrinsicSize" k Config Config a b Source # | Since: 0.1 |
Defined in PathSize.Data.Config | |
(k ~ A_Lens, a ~ Maybe Word16, b ~ Maybe Word16) => LabelOptic "maxDepth" k Config Config a b Source # | Since: 0.1 |
Defined in PathSize.Data.Config | |
(k ~ A_Lens, a ~ Maybe (Positive Int), b ~ Maybe (Positive Int)) => LabelOptic "numPaths" k Config Config a b Source # | Since: 0.1 |
Defined in PathSize.Data.Config | |
(k ~ A_Lens, a ~ Bool, b ~ Bool) => LabelOptic "searchAll" k Config Config a b Source # | Since: 0.1 |
Defined in PathSize.Data.Config | |
(k ~ A_Lens, a ~ Bool, b ~ Bool) => LabelOptic "stableSort" k Config Config a b Source # | Since: 0.1 |
Defined in PathSize.Data.Config | |
(k ~ A_Lens, a ~ Strategy, b ~ Strategy) => LabelOptic "strategy" k Config Config a b Source # | Since: 0.1 |
Defined in PathSize.Data.Config |
Describes the path search strategy.
Since: 0.1
Constructors
Sync | No threads. Since: 0.1 |
Async | Lightweight threads. Since: 0.1 |
AsyncPool | Uses a thread pool. Since: 0.1 |
Instances
Bounded Strategy Source # | Since: 0.1 |
Enum Strategy Source # | Since: 0.1 |
Defined in PathSize.Data.Config | |
Show Strategy Source # | Since: 0.1 |
Eq Strategy Source # | Since: 0.1 |
Ord Strategy Source # | Since: 0.1 |
Defined in PathSize.Data.Config |
High level functions
Arguments
:: (HasCallStack, MonadAsync m, MonadCatch m, MonadPathReader m, MonadPosixC m) | |
=> Config | Configuration. |
-> OsPath | OsPath to search. |
-> m (PathSizeResult SubPathData) | The results. |
Given a path, finds the size of all subpaths, recursively.
Since: 0.1
pathSizeRecursive :: (HasCallStack, MonadAsync m, MonadCatch m, MonadPathReader m, MonadPosixC m) => OsPath -> m (PathSizeResult Integer) Source #
Returns the total path size in bytes. Calls pathSizeRecursiveConfig
with
the following config:
MkConfig { searchAll = True, maxDepth = Just 0, exclude = [], filesOnly = False, ignoreDirIntrinsicSize = False, numPaths = Just 1, stableSort = False, strategy = Async }
Since: 0.1
pathSizeRecursiveConfig :: (HasCallStack, MonadAsync m, MonadCatch m, MonadPathReader m, MonadPosixC m) => Config -> OsPath -> m (PathSizeResult Integer) Source #
Returns the total path size in bytes.
Since: 0.1
Errors
Exception for a path. The second param is the reason i.e. the exceptions' displayException. The reason we convert to a string rather than leave it as an exception is so we can have an NFData instance for benchmarking.
Since: 0.1
Instances
Exception PathE Source # | Since: 0.1 | ||||
Defined in PathSize.Exception Methods toException :: PathE -> SomeException # fromException :: SomeException -> Maybe PathE # displayException :: PathE -> String # | |||||
Generic PathE Source # | |||||
Defined in PathSize.Exception Associated Types
| |||||
Show PathE Source # | Since: 0.1 | ||||
NFData PathE Source # | Since: 0.1 | ||||
Defined in PathSize.Exception | |||||
Eq PathE Source # | Since: 0.1 | ||||
Ord PathE Source # | Since: 0.1 | ||||
type Rep PathE Source # | Since: 0.1 | ||||
Defined in PathSize.Exception type Rep PathE = D1 ('MetaData "PathE" "PathSize.Exception" "path-size-0.1-inplace" 'False) (C1 ('MetaCons "MkPathE" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 OsPath) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'SourceStrict 'DecidedStrict) (Rec0 String))) |