gpui_query/core/resource/
accessors.rs1use crate::core::{
4 CachePolicy, QueryKey, QuerySignal, QueryStatus, QueryTimestamp, RequestId, RequestPolicy,
5 RetryPolicy,
6};
7
8use super::QueryResource;
9
10impl<T, E> QueryResource<T, E> {
11 pub fn is_loading(&self) -> bool {
13 self.status.is_loading()
14 }
15
16 pub fn is_pending(&self) -> bool {
18 self.status.is_pending()
19 }
20
21 pub fn key(&self) -> &QueryKey {
23 &self.key
24 }
25
26 pub fn status(&self) -> QueryStatus {
28 self.status
29 }
30
31 pub fn data(&self) -> Option<&T> {
33 self.data.as_ref()
34 }
35
36 pub fn error(&self) -> Option<&E> {
38 self.error.as_ref()
39 }
40
41 pub fn active_request_id(&self) -> Option<RequestId> {
43 self.active_request_id
44 }
45
46 pub fn cache_policy(&self) -> CachePolicy {
48 self.cache_policy
49 }
50
51 pub fn request_policy(&self) -> RequestPolicy {
53 self.request_policy
54 }
55
56 pub fn started_at_ms(&self) -> Option<u64> {
58 self.started_at.map(QueryTimestamp::as_millis)
59 }
60
61 pub fn last_updated_at_ms(&self) -> Option<u64> {
63 self.last_updated_at.map(QueryTimestamp::as_millis)
64 }
65
66 pub fn cache_hits(&self) -> u64 {
68 self.cache_hits
69 }
70
71 pub fn cancelled_count(&self) -> u64 {
73 self.cancelled_count
74 }
75
76 pub fn ignored_results(&self) -> u64 {
78 self.ignored_results
79 }
80
81 pub fn has_data(&self) -> bool {
83 self.data.is_some()
84 }
85
86 pub fn signal(&self) -> Option<&QuerySignal> {
88 self.signal.as_ref()
89 }
90
91 #[cfg(test)]
96 pub(crate) fn signal_mut(&mut self) -> Option<&mut QuerySignal> {
97 self.signal.as_mut()
98 }
99
100 pub fn previous_data(&self) -> Option<&T> {
102 self.previous_data.as_ref()
103 }
104
105 pub fn retry_count(&self) -> u32 {
107 self.retry_count
108 }
109
110 pub fn retry_policy(&self) -> &RetryPolicy {
112 &self.retry_policy
113 }
114
115 pub fn increment_retry(&mut self) {
117 self.retry_count = self.retry_count.saturating_add(1);
118 }
119
120 pub fn set_retry_policy(&mut self, policy: RetryPolicy) {
122 self.retry_policy = policy;
123 }
124
125 pub fn reset_retry_count(&mut self) {
127 self.retry_count = 0;
128 }
129
130 pub fn set_cache_policy(&mut self, policy: CachePolicy) {
135 self.cache_policy = policy;
136 }
137
138 pub fn set_request_policy(&mut self, policy: RequestPolicy) {
143 self.request_policy = policy;
144 }
145}