@@ -40,7 +40,7 @@ impl ArchitecturalRules<Begin> {
4040}
4141
4242impl ArchitecturalRules < SubjectDefined > {
43- pub fn allow_dependencies_on ( self , dependencies : & [ & str ] ) -> ArchitecturalRules < RulesDefined > {
43+ pub fn may_depend_on ( self , dependencies : & [ & str ] ) -> ArchitecturalRules < RulesDefined > {
4444 let rule = Box :: new ( MayDependOnRule {
4545 subject : self . current_subject . clone ( ) . unwrap ( ) ,
4646 allowed_dependencies : dependencies. iter ( ) . map ( |& s| s. to_string ( ) ) . collect ( ) ,
@@ -57,7 +57,7 @@ impl ArchitecturalRules<SubjectDefined> {
5757 }
5858 }
5959
60- pub fn forbid_dependencies_on ( self , dependencies : & [ & str ] ) -> ArchitecturalRules < RulesDefined > {
60+ pub fn must_not_depend_on ( self , dependencies : & [ & str ] ) -> ArchitecturalRules < RulesDefined > {
6161 let rule = Box :: new ( MustNotDependOnRule {
6262 subject : self . current_subject . clone ( ) . unwrap ( ) ,
6363 forbidden_dependencies : dependencies. iter ( ) . map ( |& s| s. to_string ( ) ) . collect ( ) ,
@@ -89,12 +89,9 @@ impl ArchitecturalRules<SubjectDefined> {
8989 }
9090 }
9191
92- pub fn with_custom_rules (
93- self ,
94- custom_rules : Vec < Box < dyn Rule > > ,
95- ) -> ArchitecturalRules < RulesDefined > {
92+ pub fn and ( self , rule : Box < dyn Rule > ) -> ArchitecturalRules < RulesDefined > {
9693 let mut rules = self . rules ;
97- rules. extend ( custom_rules ) ;
94+ rules. push ( rule ) ;
9895
9996 ArchitecturalRules {
10097 state : PhantomData ,
@@ -105,7 +102,7 @@ impl ArchitecturalRules<SubjectDefined> {
105102}
106103
107104impl ArchitecturalRules < RulesDefined > {
108- pub fn allow_dependencies_on ( self , dependencies : & [ & str ] ) -> ArchitecturalRules < RulesDefined > {
105+ pub fn may_depend_on ( self , dependencies : & [ & str ] ) -> ArchitecturalRules < RulesDefined > {
109106 let rule = Box :: new ( MayDependOnRule {
110107 subject : self . current_subject . clone ( ) . unwrap ( ) ,
111108 allowed_dependencies : dependencies. iter ( ) . map ( |& s| s. to_string ( ) ) . collect ( ) ,
@@ -122,7 +119,7 @@ impl ArchitecturalRules<RulesDefined> {
122119 }
123120 }
124121
125- pub fn forbid_dependencies_on ( self , dependencies : & [ & str ] ) -> ArchitecturalRules < RulesDefined > {
122+ pub fn must_not_depend_on ( self , dependencies : & [ & str ] ) -> ArchitecturalRules < RulesDefined > {
126123 let rule = Box :: new ( MustNotDependOnRule {
127124 subject : self . current_subject . clone ( ) . unwrap ( ) ,
128125 forbidden_dependencies : dependencies. iter ( ) . map ( |& s| s. to_string ( ) ) . collect ( ) ,
@@ -154,12 +151,9 @@ impl ArchitecturalRules<RulesDefined> {
154151 }
155152 }
156153
157- pub fn with_custom_rules (
158- self ,
159- custom_rules : Vec < Box < dyn Rule > > ,
160- ) -> ArchitecturalRules < RulesDefined > {
154+ pub fn and ( self , rule : Box < dyn Rule > ) -> ArchitecturalRules < RulesDefined > {
161155 let mut rules = self . rules ;
162- rules. extend ( custom_rules ) ;
156+ rules. push ( rule ) ;
163157
164158 ArchitecturalRules {
165159 state : PhantomData ,
@@ -198,7 +192,7 @@ mod tests {
198192 #[ rustfmt:: skip]
199193 let rules = ArchitecturalRules :: define ( )
200194 . rules_for_crate ( "application" )
201- . allow_dependencies_on ( & [ "std::fmt" , "domain" ] )
195+ . may_depend_on ( & [ "std::fmt" , "domain" ] )
202196 . build ( ) ;
203197
204198 assert_eq ! ( rules. len( ) , 1 ) ;
@@ -209,7 +203,7 @@ mod tests {
209203 #[ rustfmt:: skip]
210204 let rules = ArchitecturalRules :: define ( )
211205 . rules_for_module ( "domain::services" )
212- . allow_dependencies_on ( & [ "std::sync" , "application" ] )
206+ . may_depend_on ( & [ "std::sync" , "application" ] )
213207 . build ( ) ;
214208
215209 assert_eq ! ( rules. len( ) , 1 ) ;
@@ -220,15 +214,15 @@ mod tests {
220214 #[ rustfmt:: skip]
221215 let rules = ArchitecturalRules :: define ( )
222216 . rules_for_module ( "domain::models" )
223- . forbid_dependencies_on ( & [ "std::sync" , "application" ] )
217+ . must_not_depend_on ( & [ "std::sync" , "application" ] )
224218 . build ( ) ;
225219
226220 assert_eq ! ( rules. len( ) , 1 ) ;
227221 }
228222
229223 #[ test]
230224 fn test_with_custom_rules ( ) {
231- let custom_rule = Box :: new ( crate :: rules :: may_depend_on :: MayDependOnRule {
225+ let custom_rule = Box :: new ( MayDependOnRule {
232226 subject : "my_app" . to_string ( ) ,
233227 allowed_dependencies : vec ! [ ] ,
234228 allowed_external_dependencies : vec ! [ ] ,
@@ -237,8 +231,8 @@ mod tests {
237231 #[ rustfmt:: skip]
238232 let rules = ArchitecturalRules :: define ( )
239233 . rules_for_crate ( "application" )
240- . allow_dependencies_on ( & [ "my_app" , "domain" ] )
241- . with_custom_rules ( vec ! [ custom_rule] )
234+ . may_depend_on ( & [ "my_app" , "domain" ] )
235+ . and ( custom_rule)
242236 . build ( ) ;
243237
244238 assert_eq ! ( rules. len( ) , 2 ) ;
@@ -249,9 +243,9 @@ mod tests {
249243 #[ rustfmt:: skip]
250244 let rules = ArchitecturalRules :: define ( )
251245 . rules_for_crate ( "application" )
252- . allow_dependencies_on ( & [ "std::fmt" , "domain" ] )
246+ . may_depend_on ( & [ "std::fmt" , "domain" ] )
253247 . rules_for_module ( "domain::services" )
254- . allow_dependencies_on ( & [ "std::sync" , "application" ] )
248+ . may_depend_on ( & [ "std::sync" , "application" ] )
255249 . rules_for_module ( "domain::models" )
256250 . must_not_depend_on_anything ( )
257251 . build ( ) ;
0 commit comments