From 0a02e0a7c3a5e4b5b2a945f4dfa5e30924140a36 Mon Sep 17 00:00:00 2001 From: ZeWaka <zewakagamer@gmail.com> Date: Sat, 23 Dec 2023 18:24:18 -0800 Subject: [PATCH 1/2] Add a public list of all dirs in DMI order --- src/icon.rs | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/icon.rs b/src/icon.rs index 644bf02..4b7ce8a 100644 --- a/src/icon.rs +++ b/src/icon.rs @@ -1,3 +1,4 @@ +use crate::dirs::Dirs; use crate::{error, ztxt, RawDmi}; use image::codecs::png; use image::imageops; @@ -8,6 +9,7 @@ use std::io::Cursor; use std::num::NonZeroU32; #[derive(Clone, Default, PartialEq, Debug)] +/// A DMI Icon, which is a collection of [IconState]s. pub struct Icon { pub version: DmiVersion, pub width: u32, @@ -15,6 +17,18 @@ pub struct Icon { pub states: Vec<IconState>, } +/// The ordering of directions within a DMI file. +pub const DIR_ORDERING: [Dirs; 8] = [ + Dirs::SOUTH, + Dirs::NORTH, + Dirs::EAST, + Dirs::WEST, + Dirs::SOUTHEAST, + Dirs::SOUTHWEST, + Dirs::NORTHEAST, + Dirs::NORTHWEST, +]; + impl Icon { pub fn load<R: Read>(reader: R) -> Result<Icon, error::DmiError> { let raw_dmi = RawDmi::load(reader)?; From 17c9c3eeb440044237132581068e89deeb7bcd8b Mon Sep 17 00:00:00 2001 From: ZeWaka <zewakagamer@gmail.com> Date: Sat, 23 Dec 2023 18:26:31 -0800 Subject: [PATCH 2/2] Derive for the dirs bitflags --- src/dirs.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/dirs.rs b/src/dirs.rs index 9146b9d..e8c241e 100644 --- a/src/dirs.rs +++ b/src/dirs.rs @@ -2,6 +2,7 @@ use bitflags::bitflags; bitflags! { /// The possible values for a direction in DM. + #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] pub struct Dirs: u8 { const NORTH = 1 << 0; const SOUTH = 1 << 1;