#[cfg(doc)]
use super::error::Error;
use super::error::Result;
use crate::{
distribution_information::DistributionInformation,
offline_distribution_information::OfflineDistributionInformation,
wsl_session_information::WSLSessionInformation,
wsl_vm_creation_settings::WSLVmCreationSettings, WSLContext,
};
use std::marker::Sized;
#[cfg(doc)]
use windows_core::Error as WinError;
use windows_core::Result as WinResult;
pub trait WSLPluginV1: Sized + Sync {
fn try_new(context: &'static WSLContext) -> WinResult<Self>;
#[expect(
unused_variables,
reason = "We are on a treit with default methods that return just Ok(())"
)]
#[inline]
fn on_vm_started(
&self,
session: &WSLSessionInformation,
user_settings: &WSLVmCreationSettings,
) -> Result<()> {
Ok(())
}
#[expect(
unused_variables,
reason = "We are on a treit with default methods that return just Ok(())"
)]
#[inline]
fn on_vm_stopping(&self, session: &WSLSessionInformation) -> WinResult<()> {
Ok(())
}
#[expect(
unused_variables,
reason = "We are on a treit with default methods that return just Ok(())"
)]
#[inline]
fn on_distribution_started(
&self,
session: &WSLSessionInformation,
distribution: &DistributionInformation,
) -> Result<()> {
Ok(())
}
#[expect(
unused_variables,
reason = "We are on a treit with default methods that return just Ok(())"
)]
#[inline]
fn on_distribution_stopping(
&self,
session: &WSLSessionInformation,
distribution: &DistributionInformation,
) -> WinResult<()> {
Ok(())
}
#[expect(
unused_variables,
reason = "We are on a treit with default methods that return just Ok(())"
)]
#[inline]
fn on_distribution_registered(
&self,
session: &WSLSessionInformation,
distribution: &OfflineDistributionInformation,
) -> WinResult<()> {
Ok(())
}
#[expect(
unused_variables,
reason = "We are on a treit with default methods that return just
Ok(())"
)]
#[inline]
fn on_distribution_unregistered(
&self,
session: &WSLSessionInformation,
distribution: &OfflineDistributionInformation,
) -> WinResult<()> {
Ok(())
}
}