pub trait AsyncPluginHandler: 'static {
type Configuration: Serialize + Clone + Send + Sync;
// Required methods
fn plugin_info(&self) -> PluginInfo;
fn license_text(&self) -> String;
fn resolve_config<'life0, 'async_trait>(
&'life0 self,
config: ConfigKeyMap,
global_config: GlobalConfiguration,
) -> Pin<Box<dyn Future<Output = PluginResolveConfigurationResult<Self::Configuration>> + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn format<'life0, 'async_trait>(
&'life0 self,
request: FormatRequest<Self::Configuration>,
format_with_host: impl 'async_trait + FnMut(HostFormatRequest) -> LocalBoxFuture<'static, FormatResult> + 'static,
) -> Pin<Box<dyn Future<Output = FormatResult> + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
// Provided method
fn check_config_updates<'life0, 'async_trait>(
&'life0 self,
_message: CheckConfigUpdatesMessage,
) -> Pin<Box<dyn Future<Output = Result<Vec<ConfigChange>>> + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait { ... }
}Expand description
Trait for implementing a process plugin.
Required Associated Types§
Required Methods§
Sourcefn plugin_info(&self) -> PluginInfo
fn plugin_info(&self) -> PluginInfo
Gets the plugin’s plugin info.
Sourcefn license_text(&self) -> String
fn license_text(&self) -> String
Gets the plugin’s license text.
Sourcefn resolve_config<'life0, 'async_trait>(
&'life0 self,
config: ConfigKeyMap,
global_config: GlobalConfiguration,
) -> Pin<Box<dyn Future<Output = PluginResolveConfigurationResult<Self::Configuration>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn resolve_config<'life0, 'async_trait>(
&'life0 self,
config: ConfigKeyMap,
global_config: GlobalConfiguration,
) -> Pin<Box<dyn Future<Output = PluginResolveConfigurationResult<Self::Configuration>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Resolves configuration based on the provided config map and global configuration.
Sourcefn format<'life0, 'async_trait>(
&'life0 self,
request: FormatRequest<Self::Configuration>,
format_with_host: impl 'async_trait + FnMut(HostFormatRequest) -> LocalBoxFuture<'static, FormatResult> + 'static,
) -> Pin<Box<dyn Future<Output = FormatResult> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn format<'life0, 'async_trait>(
&'life0 self,
request: FormatRequest<Self::Configuration>,
format_with_host: impl 'async_trait + FnMut(HostFormatRequest) -> LocalBoxFuture<'static, FormatResult> + 'static,
) -> Pin<Box<dyn Future<Output = FormatResult> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Formats the provided file text based on the provided file path and configuration.
Provided Methods§
Sourcefn check_config_updates<'life0, 'async_trait>(
&'life0 self,
_message: CheckConfigUpdatesMessage,
) -> Pin<Box<dyn Future<Output = Result<Vec<ConfigChange>>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn check_config_updates<'life0, 'async_trait>(
&'life0 self,
_message: CheckConfigUpdatesMessage,
) -> Pin<Box<dyn Future<Output = Result<Vec<ConfigChange>>> + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Updates the config key map. This will be called after the CLI has upgraded the
plugin in dprint config update.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.