1"""
2This module provides private data for the base implementation for the
3:module:`hyperscan` library.
4
5WARNING: The *pathspec._backends.hyperscan* package is not part of the public
6API. Its contents and structure are likely to change.
7"""
8from __future__ import annotations
9
10from dataclasses import (
11 dataclass)
12
13
14@dataclass(frozen=True)
15class HyperscanExprDat(object):
16 """
17 The :class:`HyperscanExprDat` class is used to store data related to an
18 expression.
19 """
20
21 # The slots argument is not supported until Python 3.10.
22 __slots__ = [
23 'include',
24 'index',
25 'is_dir_pattern',
26 ]
27
28 include: bool
29 """
30 *include* (:class:`bool`) is whether is whether the matched files should be
31 included (:data:`True`), or excluded (:data:`False`).
32 """
33
34 index: int
35 """
36 *index* (:class:`int`) is the pattern index.
37 """
38
39 is_dir_pattern: bool
40 """
41 *is_dir_pattern* (:class:`bool`) is whether the pattern is a directory
42 pattern for gitignore.
43 """