From 0ad37d6fd259fbc6197d876dc3e45d4ecf83a4c0 Mon Sep 17 00:00:00 2001 From: timeshifter Date: Thu, 12 Jan 2023 15:01:04 +0100 Subject: [PATCH] half-finish backend macro i cannot figure out how procedural macros work actually --- src/backend/macros.rs | 41 ----------------------------------------- src/backend/mod.rs | 21 ++++++--------------- 2 files changed, 6 insertions(+), 56 deletions(-) diff --git a/src/backend/macros.rs b/src/backend/macros.rs index 19030eb..4798151 100644 --- a/src/backend/macros.rs +++ b/src/backend/macros.rs @@ -42,39 +42,6 @@ macro_rules! impl_backend_constants { }; } -// #[macro_export] -// macro_rules! register_backends { -// ($first:ident, $($name:ident),*) => { -// #[derive(Debug, Hash, PartialEq, Eq)] -// pub(crate) enum Backends { -// $first, -// $( -// $name, -// )* -// } -// -// impl Backends { -// pub fn iter() -> BackendIter { -// BackendIter { -// next: Some(Backends::$first), -// } -// } -// fn next(&self) -> Option { -// match self { -// $( -// Self::$name => match $name { -// $( -// _ => Some(Self::$name), -// )* -// _ => None -// }, -// )* -// } -// } -// } -// } -// } - #[macro_export] macro_rules! register_backends { ($first:ident, $($name:ident),*) => { @@ -93,14 +60,6 @@ macro_rules! register_backends { } } - fn next(&self) -> Option { - println!("Some({:?})", Self::$first); - $( - println!("{:?}", Self::$name); - )* - None - } - fn get_backend(&self) -> Box { match self { Self::$first => Box::new($first::new()), diff --git a/src/backend/mod.rs b/src/backend/mod.rs index 2fd09fb..14e094d 100644 --- a/src/backend/mod.rs +++ b/src/backend/mod.rs @@ -23,21 +23,12 @@ pub(crate) use rust::Rust; register_backends!(Pacman, Rust); impl Backends { - // fn next(&self) -> Option { - // match self { - // Self::Pacman => Some(Self::Rust), - // Self::Rust => Some(Self::Pip), - // Self::Pip => None, - // } - // } - - // fn get_backend(&self) -> Box { - // match self { - // Self::Pacman => Box::new(Pacman::new()), - // Self::Rust => Box::new(Rust::new()), - // _ => todo!(), - // } - // } + fn next(&self) -> Option { + match self { + Self::Pacman => Some(Self::Rust), + Self::Rust => None, + } + } } #[derive(Debug)]