pub mod weapon; //pub mod tool; //pub mod armor; //pub mod shield; //use std::io::{Read, Seek}; //use crate::{PacketParseError}; pub trait ItemBytes { fn as_bytes(&self) -> [u8; 16] { // this is one of those things that should be easier than it is let mut result = [0; 16]; let (left, right) = result.split_at_mut(12); left.copy_from_slice(&self.as_bytes_upper()); right.copy_from_slice(&self.as_bytes_lower()); result } fn as_bytes_upper(&self) -> [u8; 12]; fn as_bytes_lower(&self) -> [u8; 4]; } #[derive(Debug, Copy, Clone)] pub enum Item { Weapon(weapon::Weapon), //Armor(armor::Armor), //Shield(shield::Shield), //Unit(Unit), //Mag(Mag), //Tool(tool::Tool), } /* impl Item { fn from_bytes(_cursor: &mut R) -> Result { unimplemented!() } pub fn as_bytes(&self) -> [u8; 16] { match self { Item::Weapon(wep) => wep.as_bytes(), //Item::Armor(armor) => armor.as_bytes(), //Item::Shield(shield) => shield.as_bytes(), //Item::Tool(tool) => tool.as_bytes(), } } pub fn is_stackable(&self) -> bool { match self { Item::Tool(_) => true, _ => false, } } } */