Common/LanguageFeature/
RegisterProvider.rs1use std::sync::Arc;
6
7use serde_json::Value;
8
9use super::{DTO::ProviderType::ProviderType, LanguageFeatureProviderRegistry::LanguageFeatureProviderRegistry};
10use crate::{Effect::ActionEffect::ActionEffect, Error::CommonError::CommonError};
11
12pub fn RegisterProvider(
31 ProviderType:ProviderType,
32
33 SelectorDTO:Value,
34
35 SideCarIdentifier:String,
36
37 ExtensionIdentifierDTO:Value,
38
39 OptionsDTO:Option<Value >,
40) -> ActionEffect<Arc<dyn LanguageFeatureProviderRegistry>, CommonError, u32> {
41 ActionEffect::New(Arc::new(move |Registry:Arc<dyn LanguageFeatureProviderRegistry>| {
42 let SelectorClone = SelectorDTO.clone();
43
44 let SideCarIdentifierClone = SideCarIdentifier.clone();
45
46 let ExtensionIdentifierClone = ExtensionIdentifierDTO.clone();
47
48 let OptionsClone = OptionsDTO.clone();
49
50 Box::pin(async move {
51 Registry
52 .RegisterProvider(
53 SideCarIdentifierClone,
54 ProviderType,
55 SelectorClone,
56 ExtensionIdentifierClone,
57 OptionsClone,
58 )
59 .await
60 })
61 }))
62}