1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
use ;
use crateenv_var_path;
/// Windows APPDATA directory
///
/// Prefers `%APPDATA%`, but will fallback to `HOME/AppData/`
/// Returns [`None`] if `%APPDATA%` is not set, [`std::env::home_dir()`] returns [`None`], or the path is relative
static APPDATA: = new;
/// Windows LOCALAPPDATA directory
///The failcases chatgpt is talking about
/// Prefers `%LOCALAPPDATA%`, but will fallback to `HOME/AppData/Local`
/// Returns [`None`] if `%LOCALAPPDATA%` is not set, [`std::env::home_dir()`] returns [`None`], or the path is relative
static LOCALAPPDATA: = new;
/// Returns all paths marked as explicitly protected. These paths should be treated carefully, like preventing deletion or moves
///
/// Protected paths are explicitly protected, meaning descendents of this path SHOULD NOT BE protected
/// If you would like to get all paths that have inexplict protections, see [`protected_directories()`]
///
/// # Notes
///
/// Users can specify their own protections using the environment variable `PROTECTED_PATHS`. Users can use the path 'default' to use additional default protections
/// If no environment variable is set, defaults will be used
///
/// The root directory will always be marked as protected regardless
///
/// The value will be computed once and stored internally in a [`LazyLock`], any other call will return the cached result
static PROTECTED_PATHS: = new;
/// Returns all paths marked as inexplicitly protected. These paths should be treated carefully, like preventing deletion or moves
///
/// Protected paths are inexplicitly protected, meaning descendents of this path SHOULD BE protected
/// If you would like to get all paths that have inexplict protections, see [`protected_directories()`]
///
/// # Notes
///
/// Users can specify their own protections using the environment variable `PROTECTED_DIRS`
///
/// The value will be computed once and stored internally in a [`LazyLock`], any other call will return the cached result
static PROTECTED_DIRECTORIES: = new;