rspack_core/dependency/
context_dependency.rs1use rspack_error::Diagnostic;
2
3use super::FactorizeInfo;
4use crate::{ContextOptions, ContextTypePrefix, Dependency};
5
6pub trait ContextDependency: Dependency {
7 fn request(&self) -> &str;
8 fn options(&self) -> &ContextOptions;
9 fn get_context(&self) -> Option<&str>;
10 fn resource_identifier(&self) -> &str;
11
12 fn get_optional(&self) -> bool {
13 false
14 }
15
16 fn type_prefix(&self) -> ContextTypePrefix;
17
18 fn critical(&self) -> &Option<Diagnostic>;
19 fn critical_mut(&mut self) -> &mut Option<Diagnostic>;
20
21 fn factorize_info(&self) -> &FactorizeInfo;
22 fn factorize_info_mut(&mut self) -> &mut FactorizeInfo;
23}
24
25pub trait AsContextDependency {
26 fn as_context_dependency(&self) -> Option<&dyn ContextDependency> {
27 None
28 }
29
30 fn as_context_dependency_mut(&mut self) -> Option<&mut dyn ContextDependency> {
31 None
32 }
33}
34
35impl<T: ContextDependency> AsContextDependency for T {
36 fn as_context_dependency(&self) -> Option<&dyn ContextDependency> {
37 Some(self)
38 }
39
40 fn as_context_dependency_mut(&mut self) -> Option<&mut dyn ContextDependency> {
41 Some(self)
42 }
43}