From caed581a68f5f674ff4d3a798c241258b0412693 Mon Sep 17 00:00:00 2001 From: ozpv <39195175+ozpv@users.noreply.github.com> Date: Fri, 15 May 2026 15:49:19 -0500 Subject: commit --- src/window_size.rs | 77 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 src/window_size.rs (limited to 'src/window_size.rs') diff --git a/src/window_size.rs b/src/window_size.rs new file mode 100644 index 0000000..0c1ef08 --- /dev/null +++ b/src/window_size.rs @@ -0,0 +1,77 @@ +#[derive(Debug, PartialEq)] +pub enum WindowSize { + Size128, + Size256, + Size512, + Size1024, + Size2048, + Size4096, + Size8192, + Size16384, + Size32768, + Custom(usize), +} + +impl From for WindowSize { + fn from(item: usize) -> Self { + match item { + 128 => Self::Size128, + 256 => Self::Size256, + 512 => Self::Size512, + 1024 => Self::Size1024, + 2048 => Self::Size2048, + 4096 => Self::Size4096, + 8192 => Self::Size8192, + 16384 => Self::Size16384, + 32768 => Self::Size32768, + _ => Self::Custom(item), + } + } +} + +impl WindowSize { + pub fn as_str(&self) -> &'static str { + match self { + Self::Size128 => "128", + Self::Size256 => "256", + Self::Size512 => "512", + Self::Size1024 => "1024", + Self::Size2048 => "2048", + Self::Size4096 => "4096", + Self::Size8192 => "8192", + Self::Size16384 => "16384", + Self::Size32768 => "32768", + Self::Custom(_) => "", + } + } + + pub fn value(&self) -> usize { + match self { + Self::Size128 => 128, + Self::Size256 => 256, + Self::Size512 => 512, + Self::Size1024 => 1024, + Self::Size2048 => 2048, + Self::Size4096 => 4096, + Self::Size8192 => 8192, + Self::Size16384 => 16384, + Self::Size32768 => 32768, + Self::Custom(x) => *x, + } + } + + pub fn into_iter() -> impl Iterator { + [ + Self::Size128, + Self::Size256, + Self::Size512, + Self::Size1024, + Self::Size2048, + Self::Size4096, + Self::Size8192, + Self::Size16384, + Self::Size32768, + ] + .into_iter() + } +} -- cgit v1.2.3