plate-tool/src/data/transfer.rs

44 lines
905 B
Rust
Raw Normal View History

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;
use uuid::Uuid;
2023-06-01 17:04:03 +00:00
#[derive(PartialEq, Clone, Default, Debug, Serialize, Deserialize)]
2023-06-07 21:08:43 +00:00
#[non_exhaustive]
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,
}
fn default_volume() -> f32 {
2.5f32
}
impl Transfer {
2023-06-01 17:04:03 +00:00
pub fn new(
source: PlateInstance,
dest: PlateInstance,
tr: TransferRegion,
name: String,
) -> Self {
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-27 17:12:58 +00:00
pub fn get_uuid(&self) -> Uuid {
self.id
}
}