(&mut self, filter: &DiscoveryFilter)
| 113 | } |
| 114 | |
| 115 | pub fn find_resource(&mut self, filter: &DiscoveryFilter) -> Result<Option<&DscResource>, DscError> { |
| 116 | if self.refresh_cache || self.resources.is_empty() { |
| 117 | self.find_resources(std::slice::from_ref(filter), ProgressFormat::None)?; |
| 118 | } |
| 119 | |
| 120 | let type_name = filter.resource_type(); |
| 121 | if let Some(resources) = self.resources.get(type_name) { |
| 122 | if let Some(version_req) = filter.require_version() { |
| 123 | for resource in resources { |
| 124 | if version_req.matches(&resource.version) && matches_adapter_requirement(resource, filter) { |
| 125 | return Ok(Some(resource)); |
| 126 | } |
| 127 | } |
| 128 | Ok(None) |
| 129 | } else { |
| 130 | for resource in resources { |
| 131 | if matches_adapter_requirement(resource, filter) { |
| 132 | return Ok(Some(resource)); |
| 133 | } |
| 134 | } |
| 135 | Ok(None) |
| 136 | } |
| 137 | } else { |
| 138 | Ok(None) |
| 139 | } |
| 140 | } |
| 141 | |
| 142 | /// Find resources based on the required resource types. |
| 143 | /// |
no test coverage detected