use serde::{Deserialize, Serialize};
use super::rate_limiter::RateLimiter;
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq, PartialOrd, Ord, Hash)]
pub struct Drive {
#[serde(rename = "drive_id")]
pub drive_id: String,
#[serde(rename = "partuuid", skip_serializing_if = "Option::is_none")]
pub partuuid: Option<String>,
#[serde(rename = "is_root_device")]
pub is_root_device: bool,
#[serde(rename = "cache_type", skip_serializing_if = "Option::is_none")]
pub cache_type: Option<CacheType>,
#[serde(rename = "is_read_only")]
pub is_read_only: bool,
#[serde(rename = "path_on_host")]
pub path_on_host: String,
#[serde(rename = "rate_limiter", skip_serializing_if = "Option::is_none")]
pub rate_limiter: Option<RateLimiter>,
#[serde(rename = "io_engine", skip_serializing_if = "Option::is_none")]
pub io_engine: Option<IoEngine>,
#[serde(rename = "socket", skip_serializing_if = "Option::is_none")]
pub socket: Option<String>,
}
#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq, PartialOrd, Ord, Hash)]
pub enum CacheType {
#[serde(rename = "Unsafe")]
Unsafe,
#[serde(rename = "WriteBack")]
WriteBack,
}
#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq, PartialOrd, Ord, Hash)]
pub enum IoEngine {
#[serde(rename = "Sync")]
Sync,
#[serde(rename = "Async")]
Async,
}