use crate::backend::Backend;
use crate::scalar::{Complex, Real, Scalar};
mod buffer;
mod device;
mod error;
mod kernels;
mod plan;
pub use buffer::VulkanBuffer;
pub use device::{DeviceOptions, VulkanDevice};
pub use error::VulkanError;
pub use plan::{VulkanC2cPlan, VulkanC2rPlan, VulkanR2cPlan};
#[derive(Clone, Copy, Debug)]
pub struct VulkanBackend;
impl VulkanBackend {
pub fn new_device(options: DeviceOptions) -> Result<VulkanDevice, VulkanError> {
VulkanDevice::new(options)
}
}
impl Backend for VulkanBackend {
type Device = VulkanDevice;
type Buffer<T: Scalar> = VulkanBuffer<T>;
type C2cPlan<T: Complex> = VulkanC2cPlan<T>;
type R2cPlan<F: Real> = VulkanR2cPlan<F>;
type C2rPlan<F: Real> = VulkanC2rPlan<F>;
type Error = VulkanError;
const NAME: &'static str = "vulkan";
}