Skip to content

Commit

Permalink
fix: unix
Browse files Browse the repository at this point in the history
  • Loading branch information
rfdonnelly committed Aug 1, 2023
1 parent e4daa69 commit 76c8f38
Showing 1 changed file with 20 additions and 15 deletions.
35 changes: 20 additions & 15 deletions src/cli.rs
Original file line number Diff line number Diff line change
Expand Up @@ -130,17 +130,28 @@ impl Cli {
} else {
Ok(())
}

#[cfg(unix)]
Ok(())
}

fn check_route_ids(&self) -> AppResult<()> {
fn ids(&self) -> impl Iterator<Item = &str> {
#[cfg(unix)]
let virtual_ids = self.virtuals.iter().map(|virtual_| &virtual_.id.as_str());
let virtual_ids = self.virtuals.iter().map(|virtual_| virtual_.id.as_str());
#[cfg(not(unix))]
let virtual_ids: &[String] = &[];
let virtual_ids = virtual_ids.iter().map(|virtual_| virtual_.as_str());
let virtual_ids = {
let virtual_ids: &[String] = &[];
virtual_ids.iter()
};
let physical_ids = self.physicals.iter().map(|physical| physical.id.as_str());
let ids = virtual_ids

virtual_ids
.chain(physical_ids)
}

fn check_route_ids(&self) -> AppResult<()> {
let ids = self
.ids()
.collect::<Vec<&str>>();

for route in &self.routes {
Expand All @@ -166,23 +177,17 @@ impl Cli {
}

fn check_duplicate_ids(&self) -> AppResult<()> {
#[cfg(unix)]
let virtual_ids = self.virtuals.iter().map(|virtual_| &virtual_.id);
#[cfg(not(unix))]
let virtual_ids: &[String]= &[];
let virtual_ids = virtual_ids.iter();
let physical_ids = self.physicals.iter().map(|physical| &physical.id);
let ids = virtual_ids.chain(physical_ids);
let duplicate_ids = ids
let duplicate_ids = self
.ids()
.fold(HashMap::new(), |mut map, id| {
*map.entry(id).or_insert(0) += 1;
map
})
.iter()
.filter_map(
|(id, &count)| {
|(&id, &count)| {
if count > 1 {
Some(id.as_str())
Some(id)
} else {
None
}
Expand Down

0 comments on commit 76c8f38

Please sign in to comment.