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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
//! Terminal spinner utilities for providing user feedback during long operations.
use ;
/// Creates and starts a new spinner with a custom message.
///
/// The spinner automatically disappears when dropped, so wrap it in a scope
/// or explicitly call `finish()` when the operation completes.
///
/// # Panics
///
/// Panics if the internal hardcoded formatting template string fails to parse.
/// Because this template layout is immutable and validated during development tests,
/// this operation is considered safe under normal runtime conditions.
///
/// # Examples
///
/// ```no_run
/// use rust_meth_lib::ui::spinner;
///
/// let spinner = spinner::start("Loading metadata...");
/// // ... perform action ...
/// spinner.finish_with_message("✓ Done!");
///
/// Creates and starts a tailored spinner representing a `rust-analyzer` source indexing query.
///
/// Informatively tracks latency while fetching structural implementation blocks matching `type_name`.
///
/// # Examples
///
/// ```no_run
/// use rust_meth_lib::ui::spinner;
///
/// let progress = spinner::indexing("std::collections::HashMap");
/// // ... raw query logic ...
/// progress.finish_and_clear();
///
/// Creates and starts a tailored spinner representing a definition lookup query.
///
/// Informatively tracks latency while resolving file pathways and source offsets matching
/// `type_name` and `method_name`.
///
/// # Examples
///
/// ```no_run
/// use rust_meth_lib::ui::spinner;
///
/// let progress = spinner::definition("Vec", "push");
/// // ... definition trace ...
/// progress.finish_with_message("✓ Found source link");
///