Use named fields

Richard Feldman created

Change summary

crates/extension_host/src/extension_host.rs | 26 +++++++++++++++-------
1 file changed, 17 insertions(+), 9 deletions(-)

Detailed changes

crates/extension_host/src/extension_host.rs 🔗

@@ -63,6 +63,12 @@ use wasm_host::{
     wit::{LlmModelInfo, LlmProviderInfo, is_supported_wasm_api_version, wasm_api_version_range},
 };
 
+struct LlmProviderWithModels {
+    provider_info: LlmProviderInfo,
+    models: Vec<LlmModelInfo>,
+    is_authenticated: bool,
+}
+
 pub use extension::{
     ExtensionLibraryKind, GrammarManifestEntry, OldExtensionManifest, SchemaVersion,
 };
@@ -1364,7 +1370,7 @@ impl ExtensionStore {
             let mut wasm_extensions: Vec<(
                 Arc<ExtensionManifest>,
                 WasmExtension,
-                Vec<(LlmProviderInfo, Vec<LlmModelInfo>, bool)>,
+                Vec<LlmProviderWithModels>,
             )> = Vec::new();
             for extension in extension_entries {
                 if extension.manifest.lib.kind.is_none() {
@@ -1384,7 +1390,6 @@ impl ExtensionStore {
                 match wasm_extension {
                     Ok(wasm_extension) => {
                         // Query for LLM providers if the manifest declares any
-                        // Tuple is (provider_info, models, is_authenticated)
                         let mut llm_providers_with_models = Vec::new();
                         if !extension.manifest.language_model_providers.is_empty() {
                             let providers_result = wasm_extension
@@ -1458,8 +1463,11 @@ impl ExtensionStore {
                                         .unwrap_or(Ok(false))
                                         .unwrap_or(false);
 
-                                    llm_providers_with_models
-                                        .push((provider_info, models, is_authenticated));
+                                    llm_providers_with_models.push(LlmProviderWithModels {
+                                        provider_info,
+                                        models,
+                                        is_authenticated,
+                                    });
                                 }
                             } else {
                                 log::error!(
@@ -1549,13 +1557,13 @@ impl ExtensionStore {
                     }
 
                     // Register LLM providers
-                    for (provider_info, models, is_authenticated) in llm_providers_with_models {
+                    for llm_provider in llm_providers_with_models {
                         let provider_id: Arc<str> =
-                            format!("{}:{}", manifest.id, provider_info.id).into();
+                            format!("{}:{}", manifest.id, llm_provider.provider_info.id).into();
                         let wasm_ext = extension.as_ref().clone();
-                        let pinfo = provider_info.clone();
-                        let mods = models.clone();
-                        let auth = *is_authenticated;
+                        let pinfo = llm_provider.provider_info.clone();
+                        let mods = llm_provider.models.clone();
+                        let auth = llm_provider.is_authenticated;
 
                         this.proxy.register_language_model_provider(
                             provider_id.clone(),