rspack_core 0.100.1

rspack core
Documentation
use std::ops::{Deref, DerefMut};

use rspack_collections::IdentifierMap;
use rspack_error::Diagnostic;

use crate::{ArtifactExt, incremental::IncrementalPasses};

#[derive(Debug, Default, Clone)]
pub struct DependenciesDiagnosticsArtifact(IdentifierMap<Vec<Diagnostic>>);

impl ArtifactExt for DependenciesDiagnosticsArtifact {
  const PASS: IncrementalPasses = IncrementalPasses::FINISH_MODULES;
}

impl DependenciesDiagnosticsArtifact {
  pub fn into_values(self) -> impl Iterator<Item = Vec<Diagnostic>> {
    self.0.into_values()
  }
}

impl Deref for DependenciesDiagnosticsArtifact {
  type Target = IdentifierMap<Vec<Diagnostic>>;

  fn deref(&self) -> &Self::Target {
    &self.0
  }
}

impl DerefMut for DependenciesDiagnosticsArtifact {
  fn deref_mut(&mut self) -> &mut Self::Target {
    &mut self.0
  }
}

impl From<IdentifierMap<Vec<Diagnostic>>> for DependenciesDiagnosticsArtifact {
  fn from(value: IdentifierMap<Vec<Diagnostic>>) -> Self {
    Self(value)
  }
}

impl From<DependenciesDiagnosticsArtifact> for IdentifierMap<Vec<Diagnostic>> {
  fn from(value: DependenciesDiagnosticsArtifact) -> Self {
    value.0
  }
}

impl FromIterator<<IdentifierMap<Vec<Diagnostic>> as IntoIterator>::Item>
  for DependenciesDiagnosticsArtifact
{
  fn from_iter<T: IntoIterator<Item = <IdentifierMap<Vec<Diagnostic>> as IntoIterator>::Item>>(
    iter: T,
  ) -> Self {
    Self(IdentifierMap::from_iter(iter))
  }
}

impl IntoIterator for DependenciesDiagnosticsArtifact {
  type Item = <IdentifierMap<Vec<Diagnostic>> as IntoIterator>::Item;
  type IntoIter = <IdentifierMap<Vec<Diagnostic>> as IntoIterator>::IntoIter;

  fn into_iter(self) -> Self::IntoIter {
    self.0.into_iter()
  }
}