//! `SideTex` type. use crate::{bin::OptU16, err::*}; use super::pnts; /// Reads a `SideTex` object. pub fn read(b: &[u8]) -> ResultS { read_data! { endian: BIG, buf: b, size: 6, start: 0, data { let offs = pnts::read_o[0; 4]; let tex_id = OptU16[4]; } } Ok(SideTex{offs, tex_id}) } /// Writes a `SideTex` object. pub fn write(v: &SideTex) -> Vec { let mut o = Vec::with_capacity(6); o.extend(pnts::write_o(v.offs)); o.extend(&v.tex_id.to_be_bytes()); o } /// The texture of a side segment. #[cfg_attr(feature = "serde_obj", derive(serde::Serialize))] #[derive(Clone, Debug, Eq, PartialEq)] pub struct SideTex { pub offs: pnts::Point, pub tex_id: OptU16, } // EOF