Update the compilers interface

This commit is contained in:
Omar Abdulla
2025-08-27 22:01:25 +03:00
parent 4b641b947b
commit af1eba0ccf
19 changed files with 502 additions and 912 deletions
+1 -21
View File
@@ -1,5 +1,6 @@
use anyhow::Context;
use regex::Regex;
use revive_dt_common::iterators::EitherIter;
use revive_dt_common::types::{Mode, ModeOptimizerSetting, ModePipeline};
use serde::{Deserialize, Serialize};
use std::collections::HashSet;
@@ -176,27 +177,6 @@ impl ParsedMode {
}
}
/// An iterator that could be either of two iterators.
#[derive(Clone, Debug)]
enum EitherIter<A, B> {
A(A),
B(B),
}
impl<A, B> Iterator for EitherIter<A, B>
where
A: Iterator,
B: Iterator<Item = A::Item>,
{
type Item = A::Item;
fn next(&mut self) -> Option<Self::Item> {
match self {
EitherIter::A(iter) => iter.next(),
EitherIter::B(iter) => iter.next(),
}
}
}
#[cfg(test)]
mod tests {
use super::*;