2023-06-01 17:04:03 +00:00
|
|
|
use super::plate_instances::*;
|
|
|
|
use super::transfer_region::*;
|
2023-05-23 00:48:03 +00:00
|
|
|
use serde::Deserialize;
|
|
|
|
use serde::Serialize;
|
2023-05-22 22:11:49 +00:00
|
|
|
use uuid::Uuid;
|
|
|
|
|
2023-06-08 14:56:42 +00:00
|
|
|
#[derive(PartialEq, Clone, Debug, Serialize, Deserialize)]
|
2023-06-07 21:08:43 +00:00
|
|
|
#[non_exhaustive]
|
2023-05-22 22:11:49 +00:00
|
|
|
pub struct Transfer {
|
|
|
|
pub source_id: Uuid,
|
|
|
|
pub dest_id: Uuid,
|
2023-05-27 17:12:58 +00:00
|
|
|
pub name: String,
|
|
|
|
id: Uuid,
|
2023-05-24 15:20:12 +00:00
|
|
|
pub transfer_region: TransferRegion,
|
2023-06-07 21:08:43 +00:00
|
|
|
#[serde(default = "default_volume")]
|
|
|
|
pub volume: f32,
|
|
|
|
}
|
|
|
|
|
2023-06-08 14:56:42 +00:00
|
|
|
impl Default for Transfer {
|
|
|
|
fn default() -> Self {
|
|
|
|
Transfer {
|
|
|
|
source_id: Default::default(),
|
|
|
|
dest_id: Default::default(),
|
|
|
|
name: "New Transfer".to_string(),
|
|
|
|
id: Default::default(),
|
|
|
|
transfer_region: Default::default(),
|
|
|
|
volume: 2.5f32,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2023-06-07 21:08:43 +00:00
|
|
|
fn default_volume() -> f32 {
|
|
|
|
2.5f32
|
2023-05-22 22:11:49 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
impl Transfer {
|
2023-06-01 17:04:03 +00:00
|
|
|
pub fn new(
|
|
|
|
source: PlateInstance,
|
|
|
|
dest: PlateInstance,
|
|
|
|
tr: TransferRegion,
|
|
|
|
name: String,
|
|
|
|
) -> Self {
|
2023-05-22 22:11:49 +00:00
|
|
|
Self {
|
|
|
|
source_id: source.get_uuid(),
|
|
|
|
dest_id: dest.get_uuid(),
|
2023-05-27 17:12:58 +00:00
|
|
|
name,
|
|
|
|
id: Uuid::new_v4(),
|
|
|
|
transfer_region: tr,
|
2023-06-07 21:08:43 +00:00
|
|
|
volume: 2.5,
|
2023-05-22 22:11:49 +00:00
|
|
|
}
|
|
|
|
}
|
2023-05-27 17:12:58 +00:00
|
|
|
|
|
|
|
pub fn get_uuid(&self) -> Uuid {
|
|
|
|
self.id
|
|
|
|
}
|
2023-05-22 22:11:49 +00:00
|
|
|
}
|