From 8022b659914a93edc59e69e5ef42811cc50e44cc Mon Sep 17 00:00:00 2001 From: Vinzenz Schroeter Date: Sat, 8 Mar 2025 11:32:12 +0100 Subject: [PATCH] move containers into own mod --- src/commands/mod.rs | 6 ----- src/{ => containers}/bit_vec.rs | 0 src/{ => containers}/bitmap.rs | 36 ++++++++++++++----------- src/{ => containers}/brightness_grid.rs | 8 ++---- src/{ => containers}/byte_grid.rs | 0 src/{ => containers}/char_grid.rs | 0 src/{ => containers}/cp437_grid.rs | 4 +-- src/{ => containers}/data_ref.rs | 0 src/containers/mod.rs | 21 +++++++++++++++ src/{ => containers}/value_grid.rs | 5 +--- src/lib.rs | 23 +++------------- 11 files changed, 49 insertions(+), 54 deletions(-) rename src/{ => containers}/bit_vec.rs (100%) rename src/{ => containers}/bitmap.rs (93%) rename src/{ => containers}/brightness_grid.rs (91%) rename src/{ => containers}/byte_grid.rs (100%) rename src/{ => containers}/char_grid.rs (100%) rename src/{ => containers}/cp437_grid.rs (97%) rename src/{ => containers}/data_ref.rs (100%) create mode 100644 src/containers/mod.rs rename src/{ => containers}/value_grid.rs (99%) diff --git a/src/commands/mod.rs b/src/commands/mod.rs index cc3ef52..51d0802 100644 --- a/src/commands/mod.rs +++ b/src/commands/mod.rs @@ -136,12 +136,6 @@ pub enum TryFromPacketError { InvalidUtf8(#[from] std::string::FromUtf8Error), } -macro_rules! packet_to_command_case { - ($T:tt, $packet:ident) => { - paste! {} - }; -} - impl TryFrom for TypedCommand { type Error = TryFromPacketError; diff --git a/src/bit_vec.rs b/src/containers/bit_vec.rs similarity index 100% rename from src/bit_vec.rs rename to src/containers/bit_vec.rs diff --git a/src/bitmap.rs b/src/containers/bitmap.rs similarity index 93% rename from src/bitmap.rs rename to src/containers/bitmap.rs index 2ddfc20..5b2430b 100644 --- a/src/bitmap.rs +++ b/src/containers/bitmap.rs @@ -1,9 +1,5 @@ -use crate::data_ref::DataRef; -use crate::BitVec; use crate::*; -use ::bitvec::order::Msb0; -use ::bitvec::prelude::BitSlice; -use ::bitvec::slice::IterMut; +use ::bitvec::{order::Msb0, prelude::BitSlice, slice::IterMut}; /// A fixed-size 2D grid of booleans. /// @@ -72,12 +68,16 @@ impl Bitmap { /// /// - `width`: size in pixels in x-direction /// - `height`: size in pixels in y-direction - pub fn load(width: usize, height: usize, data: &[u8]) -> Result { + pub fn load( + width: usize, + height: usize, + data: &[u8], + ) -> Result { if width % 8 != 0 { - return Err(LoadBitmapError::InvalidWidth) + return Err(LoadBitmapError::InvalidWidth); } if data.len() != height * width / 8 { - return Err(LoadBitmapError::InvalidDataSize) + return Err(LoadBitmapError::InvalidDataSize); } Ok(Self { width, @@ -94,16 +94,19 @@ impl Bitmap { /// /// In those cases, an Err is returned. /// Otherwise, this returns a [Bitmap] that contains the provided data. - pub fn from_bitvec(width: usize, bit_vec: BitVec) -> Result { + pub fn from_bitvec( + width: usize, + bit_vec: BitVec, + ) -> Result { if width % 8 != 0 { - return Err(LoadBitmapError::InvalidWidth) + return Err(LoadBitmapError::InvalidWidth); } let len = bit_vec.len(); let height = len / width; if len % width != 0 { - return Err(LoadBitmapError::InvalidDataSize) + return Err(LoadBitmapError::InvalidDataSize); } - + Ok(Self { width, height, @@ -236,8 +239,7 @@ impl TryFrom<&ValueGrid> for Bitmap { /// /// Returns Err if the width of `value` is not dividable by 8 fn try_from(value: &ValueGrid) -> Result { - let mut result = Self::new(value.width(), value.height()) - .ok_or(())?; + let mut result = Self::new(value.width(), value.height()).ok_or(())?; for (mut to, from) in result.iter_mut().zip(value.iter()) { *to = *from; } @@ -280,8 +282,10 @@ impl<'t> Iterator for IterRows<'t> { pub enum LoadBitmapError { #[error("The provided width is not divisible by 8.")] InvalidWidth, - #[error("The provided data has an incorrect size for the provided dimensions.")] - InvalidDataSize + #[error( + "The provided data has an incorrect size for the provided dimensions." + )] + InvalidDataSize, } #[cfg(test)] diff --git a/src/brightness_grid.rs b/src/containers/brightness_grid.rs similarity index 91% rename from src/brightness_grid.rs rename to src/containers/brightness_grid.rs index cbbf6fe..8d1f66f 100644 --- a/src/brightness_grid.rs +++ b/src/containers/brightness_grid.rs @@ -1,7 +1,4 @@ -use crate::brightness::Brightness; -use crate::grid::Grid; -use crate::value_grid::ValueGrid; -use crate::ByteGrid; +use crate::{brightness::Brightness, grid::Grid, ByteGrid, ValueGrid}; /// A grid containing brightness values. /// @@ -65,8 +62,7 @@ impl TryFrom for BrightnessGrid { #[cfg(test)] mod tests { - use crate::value_grid::ValueGrid; - use crate::{Brightness, BrightnessGrid, DataRef, Grid}; + use crate::{Brightness, BrightnessGrid, DataRef, Grid, ValueGrid}; #[test] fn to_u8_grid() { diff --git a/src/byte_grid.rs b/src/containers/byte_grid.rs similarity index 100% rename from src/byte_grid.rs rename to src/containers/byte_grid.rs diff --git a/src/char_grid.rs b/src/containers/char_grid.rs similarity index 100% rename from src/char_grid.rs rename to src/containers/char_grid.rs diff --git a/src/cp437_grid.rs b/src/containers/cp437_grid.rs similarity index 97% rename from src/cp437_grid.rs rename to src/containers/cp437_grid.rs index 00a7692..4623add 100644 --- a/src/cp437_grid.rs +++ b/src/containers/cp437_grid.rs @@ -1,9 +1,9 @@ -use crate::Grid; +use crate::{Grid, ValueGrid}; /// A grid containing codepage 437 characters. /// /// The encoding is currently not enforced. -pub type Cp437Grid = crate::value_grid::ValueGrid; +pub type Cp437Grid = ValueGrid; /// The error occurring when loading an invalid character #[derive(Debug, PartialEq, thiserror::Error)] diff --git a/src/data_ref.rs b/src/containers/data_ref.rs similarity index 100% rename from src/data_ref.rs rename to src/containers/data_ref.rs diff --git a/src/containers/mod.rs b/src/containers/mod.rs new file mode 100644 index 0000000..cfe4b6d --- /dev/null +++ b/src/containers/mod.rs @@ -0,0 +1,21 @@ +mod bitmap; +mod bit_vec; +mod brightness_grid; +mod byte_grid; +mod char_grid; +mod cp437_grid; +mod data_ref; +mod value_grid; + + +pub use bit_vec::{bitvec, BitVec}; +pub use bitmap::Bitmap; + +pub use cp437_grid::Cp437Grid; +pub use data_ref::DataRef; +pub use brightness_grid::BrightnessGrid; +pub use byte_grid::ByteGrid; +pub use char_grid::CharGrid; +pub use value_grid::{ + IterGridRows, SetValueSeriesError, TryLoadValueGridError, Value, ValueGrid, +}; diff --git a/src/value_grid.rs b/src/containers/value_grid.rs similarity index 99% rename from src/value_grid.rs rename to src/containers/value_grid.rs index 45be822..3603ba1 100644 --- a/src/value_grid.rs +++ b/src/containers/value_grid.rs @@ -447,10 +447,7 @@ impl<'t, T: Value> Iterator for EnumerateGrid<'t, T> { #[cfg(test)] mod tests { - use crate::{ - value_grid::{SetValueSeriesError, ValueGrid}, - *, - }; + use crate::{SetValueSeriesError, ValueGrid, *}; #[test] fn fill() { diff --git a/src/lib.rs b/src/lib.rs index 4adc573..70c5bde 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -55,47 +55,30 @@ //! connection.send(command).expect("send failed"); //! ``` -pub use crate::bit_vec::{bitvec, BitVec}; -pub use crate::bitmap::Bitmap; pub use crate::brightness::Brightness; -pub use crate::brightness_grid::BrightnessGrid; -pub use crate::byte_grid::ByteGrid; -pub use crate::char_grid::CharGrid; pub use crate::commands::*; pub use crate::compression_code::CompressionCode; pub use crate::connections::*; pub use crate::constants::*; -pub use crate::cp437_grid::Cp437Grid; -pub use crate::data_ref::DataRef; +pub use crate::containers::*; pub use crate::grid::Grid; pub use crate::origin::{Origin, Pixels, Tiles}; pub use crate::packet::{Header, Packet, Payload}; -pub use crate::value_grid::{ - IterGridRows, SetValueSeriesError, TryLoadValueGridError, Value, ValueGrid, -}; -mod bit_vec; -mod bitmap; mod brightness; -mod brightness_grid; -mod byte_grid; -mod char_grid; mod commands; mod command_code; mod compression; mod compression_code; mod connections; mod constants; -mod cp437_grid; -mod data_ref; +mod containers; mod grid; mod origin; mod packet; -mod value_grid; - +mod parser; #[cfg(feature = "cp437")] mod cp437; -mod parser; #[cfg(feature = "cp437")] pub use crate::cp437::Cp437Converter;