use std::path::PathBuf;
use crate::wine::*;
pub trait WineWithExt {
fn with_prefix<T: Into<PathBuf>>(self, prefix: T) -> Self;
fn with_arch(self, arch: WineArch) -> Self;
fn with_boot(self, boot: WineBoot) -> Self;
fn with_server<T: Into<PathBuf>>(self, server: T) -> Self;
fn with_loader(self, loader: WineLoader) -> Self;
fn with_wine_libs(self, wine_libs: WineSharedLibs) -> Self;
fn with_gstreamer_libs(self, gstreamer_libs: GstreamerSharedLibs) -> Self;
}
impl WineWithExt for Wine {
#[inline]
fn with_prefix<T: Into<PathBuf>>(self, prefix: T) -> Self {
Self {
prefix: prefix.into(),
..self
}
}
#[inline]
fn with_arch(self, arch: WineArch) -> Self {
Self {
arch,
..self
}
}
#[inline]
fn with_boot(self, boot: WineBoot) -> Self {
Self {
wineboot: Some(boot),
..self
}
}
#[inline]
fn with_server<T: Into<PathBuf>>(self, server: T) -> Self {
Self {
wineserver: Some(server.into()),
..self
}
}
#[inline]
fn with_loader(self, loader: WineLoader) -> Self {
Self {
wineloader: loader,
..self
}
}
#[inline]
fn with_wine_libs(self, wine_libs: shared_libraries::Wine) -> Self {
Self {
wine_libs,
..self
}
}
#[inline]
fn with_gstreamer_libs(self, gstreamer_libs: shared_libraries::Gstreamer) -> Self {
Self {
gstreamer_libs,
..self
}
}
}