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
//! Path resolution surface for the queue subsystem.
//!
//! The queue needs two directories at boot:
//! - a **config dir** to look for `queue_database.toml` (Rails-style
//! XDG fallback when no repo-local config is found)
//! - a **data dir** to put the embedded `SQLite` file in when the
//! config doesn't pin an explicit path
//!
//! Embedding a single concrete paths resolver here would lock the
//! crate to one specific host layout (the Tauri app's `XDG_*`-aware
//! dirs in our case). Instead the trait is injected at the call
//! sites that need it, so a different consumer — a CLI tool, a
//! deployed service, an embedded test — can supply its own resolver
//! (env-var, hard-coded path, tempfile) without pulling in the
//! desktop app's `tech-admin-paths` crate.
use PathBuf;
use Error;
/// Resolver for the two filesystem locations the queue subsystem
/// needs.
///
/// Implementors carry whatever upstream paths library makes sense
/// for their host — the queue crate itself stays paths-library
/// agnostic.
/// Crate-owned error type for `QueuePaths` resolution failures.
///
/// Implementors stringify their own paths-library errors into this
/// so the queue crate's public surface doesn't leak the consumer's
/// specific error type. The queue crate only surfaces the message
/// back to the operator.
;