use crate::techblox::{SerializedEntityComponent, SerializedEntityDescriptor, Parsable};
use libfj_parsable_macro_derive::*;
#[derive(Copy, Clone, Parsable)]
pub struct SerializedWireEntity {
pub save_data_component: WireSaveDataStruct,
}
impl SerializedEntityDescriptor for SerializedWireEntity {
fn serialized_components() -> u8 {
1
}
fn components<'a>(&'a self) -> Vec<&'a dyn SerializedEntityComponent> {
vec![&self.save_data_component]
}
fn components_mut<'a>(&'a mut self) -> Vec<&'a mut dyn SerializedEntityComponent> {
vec![&mut self.save_data_component]
}
fn hash_name(&self) -> u32 {
Self::hash("WireEntityDescriptorMock") }
}
#[derive(Copy, Clone, Parsable)]
pub struct WireSaveDataStruct {
pub source_block_index: u32,
pub destination_block_index: u32,
pub source_port_usage: u8,
pub destination_port_usage: u8,
}
impl SerializedEntityComponent for WireSaveDataStruct {}
#[derive(Copy, Clone, Parsable)]
pub struct SerializedGlobalWireSettingsEntity {
pub settings_component: GlobalWireSettingsEntityStruct,
}
impl SerializedEntityDescriptor for SerializedGlobalWireSettingsEntity {
fn serialized_components() -> u8 {
1
}
fn components<'a>(&'a self) -> Vec<&'a dyn SerializedEntityComponent> {
vec![&self.settings_component]
}
fn components_mut<'a>(&'a mut self) -> Vec<&'a mut dyn SerializedEntityComponent> {
vec![&mut self.settings_component]
}
fn hash_name(&self) -> u32 {
Self::hash("GlobalWireSettingsEntityDescriptor") }
}
#[derive(Copy, Clone, Parsable)]
pub struct GlobalWireSettingsEntityStruct {
pub obsolete: u8,
}
impl SerializedEntityComponent for GlobalWireSettingsEntityStruct {}