1pub fn effect_satisfies(declared: &str, required: &str) -> bool {
6 declared == required
7}
8
9#[cfg(test)]
10mod tests {
11 use super::*;
12
13 #[test]
16 fn exact_match() {
17 assert!(effect_satisfies("Http", "Http"));
18 assert!(effect_satisfies("Console", "Console"));
19 }
20
21 #[test]
22 fn child_does_not_cover_parent() {
23 assert!(!effect_satisfies("Http.get", "Http"));
24 assert!(!effect_satisfies("Disk.read", "Disk"));
25 }
26
27 #[test]
28 fn parent_does_not_cover_child() {
29 assert!(!effect_satisfies("Http", "Http.get"));
30 assert!(!effect_satisfies("Http", "Http.post"));
31 assert!(!effect_satisfies("Disk", "Disk.read"));
32 }
33
34 #[test]
35 fn different_children() {
36 assert!(!effect_satisfies("Http.get", "Http.post"));
37 assert!(!effect_satisfies("Disk.read", "Disk.write"));
38 }
39}