51 lines
1.1 KiB
Rust
51 lines
1.1 KiB
Rust
|
use super::plate::*;
|
||
|
use serde::{Deserialize, Serialize};
|
||
|
use uuid::Uuid;
|
||
|
|
||
|
#[derive(PartialEq, Clone, Serialize, Deserialize)]
|
||
|
pub struct PlateInstance {
|
||
|
pub plate: Plate,
|
||
|
#[serde(rename = "id_v7")]
|
||
|
#[serde(default = "Uuid::now_v7")]
|
||
|
id: Uuid,
|
||
|
pub name: String,
|
||
|
}
|
||
|
|
||
|
impl PlateInstance {
|
||
|
pub fn new(sort: PlateType, format: PlateFormat, name: String) -> Self {
|
||
|
PlateInstance {
|
||
|
plate: Plate {
|
||
|
plate_type: sort,
|
||
|
plate_format: format,
|
||
|
},
|
||
|
id: Uuid::now_v7(),
|
||
|
name,
|
||
|
}
|
||
|
}
|
||
|
|
||
|
pub fn get_uuid(&self) -> Uuid {
|
||
|
self.id
|
||
|
}
|
||
|
|
||
|
pub fn change_name(&mut self, new_name: String) {
|
||
|
self.name = new_name;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
impl From<Plate> for PlateInstance {
|
||
|
fn from(value: Plate) -> Self {
|
||
|
PlateInstance {
|
||
|
plate: value,
|
||
|
id: Uuid::now_v7(),
|
||
|
name: "New Plate".to_string(),
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
impl From<&PlateInstance> for String {
|
||
|
fn from(value: &PlateInstance) -> Self {
|
||
|
// Could have other formatting here
|
||
|
format!("{}, {}", value.name, value.plate.plate_format)
|
||
|
}
|
||
|
}
|