MCPcopy Create free account
hub / github.com/NativeScript/SimDeck / get_compatible

Method get_compatible

packages/server/src/api/routes.rs:116–139  ·  view source on GitHub ↗
(
        &self,
        key: &AccessibilitySnapshotCacheKey,
    )

Source from the content-addressed store, hash-verified

114
115impl AccessibilitySnapshotCache {
116 fn get_compatible(
117 &self,
118 key: &AccessibilitySnapshotCacheKey,
119 ) -> Option<(AccessibilitySnapshotCacheKey, Value)> {
120 let mut cache = self
121 .inner
122 .lock()
123 .unwrap_or_else(|poisoned| poisoned.into_inner());
124 let now = Instant::now();
125 cache.retain(|_, cached| {
126 now.duration_since(cached.cached_at) <= ACCESSIBILITY_TREE_CACHE_TTL
127 });
128 cache
129 .iter()
130 .filter(|(cached_key, _)| {
131 cached_key.udid == key.udid
132 && cached_key.source == key.source
133 && cached_key.include_hidden == key.include_hidden
134 && cached_key.interactive_only == key.interactive_only
135 && cached_depth_covers(cached_key.max_depth, key.max_depth)
136 })
137 .min_by_key(|(cached_key, _)| cached_depth_rank(cached_key.max_depth))
138 .map(|(cached_key, cached)| (cached_key.clone(), cached.snapshot.clone()))
139 }
140
141 #[cfg(test)]
142 fn insert(&self, key: AccessibilitySnapshotCacheKey, snapshot: &Value) {

Callers 1

Calls 3

cached_depth_coversFunction · 0.85
cached_depth_rankFunction · 0.85
cloneMethod · 0.65

Tested by

no test coverage detected